public CassandraSchemeActualizer(ICassandraCluster cassandraCluster, ICassandraMetadataProvider cassandraMetadataProvider, ICassandraInitializerSettings cassandraInitializerSettings)
 {
     this.cassandraCluster             = cassandraCluster;
     this.cassandraMetadataProvider    = cassandraMetadataProvider;
     this.cassandraInitializerSettings = cassandraInitializerSettings;
     cassandraSchemaActualizer         = new CassandraSchemaActualizer(cassandraCluster, eventListener: null, Logger.Instance);
 }
        public TaskMetaStorage(ICassandraCluster cassandraCluster, ISerializer serializer, IRtqSettings rtqSettings, ILog logger)
        {
            this.serializer = serializer;
            var settings = new TimeBasedBlobStorageSettings(rtqSettings.QueueKeyspace, largeBlobsCfName, regularBlobsCfName);

            timeBasedBlobStorage = new TimeBasedBlobStorage(settings, cassandraCluster, logger.ForContext(nameof(TaskMetaStorage)));
        }
Ejemplo n.º 3
0
 public ScopedPersistentStorage(
     ColumnFamilyFullName columnFamilyFullName,
     ICassandraCluster cassandraCluster,
     ISerializer serializer)
     : base(columnFamilyFullName, cassandraCluster, serializer, new ScopedCassandraObjectIdConverter <T>())
 {
 }
 public SchemeActualizer(ICassandraCluster cassandraCluster, ICassandraActualizerEventListener eventListener, ILog logger)
 {
     this.cassandraCluster = cassandraCluster;
     this.logger           = logger;
     this.eventListener    = eventListener ?? EmptyCassandraActualizerEventListener.Instance;
     columnFamilyComparer  = new ColumnFamilyEqualityByPropertiesComparer();
 }
Ejemplo n.º 5
0
        public RemoteTaskQueue(ILog logger,
                               ISerializer serializer,
                               IGlobalTime globalTime,
                               ICassandraCluster cassandraCluster,
                               IRtqSettings rtqSettings,
                               IRtqTaskDataRegistry taskDataRegistry,
                               IRtqProfiler rtqProfiler)
        {
            QueueKeyspace    = rtqSettings.QueueKeyspace;
            TaskTtl          = rtqSettings.TaskTtl;
            Logger           = logger.ForContext("CassandraDistributedTaskQueue");
            Serializer       = serializer;
            GlobalTime       = globalTime;
            TaskDataRegistry = taskDataRegistry;
            enableContinuationOptimization = rtqSettings.EnableContinuationOptimization;
            minTicksHolder             = new RtqMinTicksHolder(cassandraCluster, rtqSettings);
            TaskMinimalStartTicksIndex = new TaskMinimalStartTicksIndex(cassandraCluster, serializer, rtqSettings, new OldestLiveRecordTicksHolder(minTicksHolder), Logger);
            var taskMetaStorage = new TaskMetaStorage(cassandraCluster, serializer, rtqSettings, Logger);

            EventLogRepository       = new EventLogRepository(serializer, cassandraCluster, rtqSettings, minTicksHolder);
            childTaskIndex           = new ChildTaskIndex(cassandraCluster, rtqSettings, serializer, taskMetaStorage);
            HandleTasksMetaStorage   = new HandleTasksMetaStorage(taskMetaStorage, TaskMinimalStartTicksIndex, EventLogRepository, GlobalTime, childTaskIndex, taskDataRegistry, Logger);
            TaskDataStorage          = new TaskDataStorage(cassandraCluster, rtqSettings, Logger);
            TaskExceptionInfoStorage = new TaskExceptionInfoStorage(cassandraCluster, serializer, rtqSettings, Logger);
            HandleTaskCollection     = new HandleTaskCollection(HandleTasksMetaStorage, TaskDataStorage, TaskExceptionInfoStorage, rtqProfiler);
            lazyRemoteLockCreator    = new Lazy <IRemoteLockCreator>(() =>
            {
                var remoteLockImplementationSettings = CassandraRemoteLockImplementationSettings.Default(rtqSettings.QueueKeyspace, RtqColumnFamilyRegistry.LocksColumnFamilyName);
                var remoteLockImplementation         = new CassandraRemoteLockImplementation(cassandraCluster, serializer, remoteLockImplementationSettings);
                var remoteLockerMetrics = new RemoteLockerMetrics($"{rtqSettings.QueueKeyspace}_{RtqColumnFamilyRegistry.LocksColumnFamilyName}");
                return(new RemoteLocker(remoteLockImplementation, remoteLockerMetrics, Logger));
            });
            Profiler = rtqProfiler;
        }
 public ChildTaskIndex(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings, ISerializer serializer, ITaskMetaStorage taskMetaStorage)
 {
     this.cassandraCluster = cassandraCluster;
     this.rtqSettings      = rtqSettings;
     this.serializer       = serializer;
     this.taskMetaStorage  = taskMetaStorage;
 }
Ejemplo n.º 7
0
 public CassandraRemoteLockImplementation(ICassandraCluster cassandraCluster, ISerializer serializer, CassandraRemoteLockImplementationSettings settings)
 {
     LockTtl = settings.LockTtl;
     KeepLockAliveInterval   = settings.KeepLockAliveInterval;
     changeLockRowThreshold  = settings.ChangeLockRowThreshold;
     timestampProvider       = settings.TimestampProvider;
     baseOperationsPerformer = new CassandraBaseLockOperationsPerformer(cassandraCluster, serializer, settings);
 }
 public PersistentBlobStorage(ColumnFamilyFullName columnFamilyFullName, ICassandraCluster cassandraCluster, ISerializer serializer, ICassandraObjectIdConverter <T, TId> cassandraObjectIdConverter)
 {
     this.cassandraCluster           = cassandraCluster;
     this.serializer                 = serializer;
     this.cassandraObjectIdConverter = cassandraObjectIdConverter;
     keyspaceName     = columnFamilyFullName.KeyspaceName;
     columnFamilyName = columnFamilyFullName.ColumnFamilyName;
 }
Ejemplo n.º 9
0
 public EventLogRepository(ISerializer serializer,
                           ICassandraCluster cassandraCluster,
                           IRtqSettings rtqSettings,
                           IMinTicksHolder minTicksHolder)
 {
     this.serializer     = serializer;
     this.minTicksHolder = minTicksHolder;
     cfConnection        = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);
 }
Ejemplo n.º 10
0
 public EventStorage(
     ColumnFamilyFullName columnFamilyFullName,
     IEventLogPointerCreator eventLogPointerCreator,
     ICassandraCluster cassandraCluster,
     ISerializer serializer)
 {
     this.eventLogPointerCreator = eventLogPointerCreator;
     this.serializer             = serializer;
     columnFamilyConnection      = cassandraCluster.RetrieveColumnFamilyConnection(columnFamilyFullName.KeyspaceName, columnFamilyFullName.ColumnFamilyName);
 }
Ejemplo n.º 11
0
 public CassandraBaseLockOperationsPerformer(ICassandraCluster cassandraCluster, ISerializer serializer, CassandraRemoteLockImplementationSettings settings)
 {
     this.cassandraCluster = cassandraCluster;
     this.serializer       = serializer;
     timestampProvider     = settings.TimestampProvider;
     keyspaceName          = settings.KeyspaceName;
     columnFamilyName      = settings.ColumnFamilyName;
     lockTtl         = settings.LockTtl;
     lockMetadataTtl = settings.LockMetadataTtl;
 }
 public SinglePartitionTimeBasedBlobStorage([NotNull] string keyspaceName,
                                            [NotNull] string columnFamilyName,
                                            ICassandraCluster cassandraCluster,
                                            ILog logger)
 {
     this.keyspaceName     = keyspaceName;
     this.columnFamilyName = columnFamilyName;
     this.cassandraCluster = cassandraCluster;
     this.logger           = logger.ForContext(nameof(SinglePartitionTimeBasedBlobStorage));
 }
 public EventRepositoryFactory(
     ISerializer serializer,
     ICassandraCluster cassandraCluster,
     IEventTypeIdentifierProvider eventTypeIdentifierProvider,
     ILog logger)
 {
     this.serializer                  = serializer;
     this.cassandraCluster            = cassandraCluster;
     this.eventTypeIdentifierProvider = eventTypeIdentifierProvider;
     this.logger = logger.ForContext("CassandraPrimitives.EventLog");
 }
 public TaskMinimalStartTicksIndex(ICassandraCluster cassandraCluster,
                                   ISerializer serializer,
                                   IRtqSettings rtqSettings,
                                   IOldestLiveRecordTicksHolder oldestLiveRecordTicksHolder,
                                   ILog logger)
 {
     this.cassandraCluster            = cassandraCluster;
     this.serializer                  = serializer;
     this.oldestLiveRecordTicksHolder = oldestLiveRecordTicksHolder;
     this.logger  = logger.ForContext(nameof(TaskMinimalStartTicksIndex));
     keyspaceName = rtqSettings.QueueKeyspace;
 }
 public EventLoggerAdditionalInfoRepository(
     ICassandraCluster cassandraCluster,
     ISerializer serializer,
     IRemoteLockCreator remoteLockCreator,
     ColumnFamilyFullName additionalInfoColumnFamily,
     ColumnFamilyFullName eventLogColumnFamily)
 {
     this.eventLogColumnFamily = eventLogColumnFamily;
     this.serializer           = serializer;
     this.remoteLockCreator    = remoteLockCreator;
     columnFamilyConnection    = cassandraCluster.RetrieveColumnFamilyConnection(additionalInfoColumnFamily.KeyspaceName, additionalInfoColumnFamily.ColumnFamilyName);
 }
        public TestCounterRepository(ILog log,
                                     ICassandraCluster cassandraCluster,
                                     ISerializer serializer,
                                     IGlobalTime globalTime,
                                     IRtqSettings rtqSettings)
        {
            this.serializer = serializer;
            this.globalTime = globalTime;
            var keyspaceName = rtqSettings.QueueKeyspace;

            cfConnection = cassandraCluster.RetrieveColumnFamilyConnection(keyspaceName, ColumnFamilyName);
            var remoteLockImplementationSettings = CassandraRemoteLockImplementationSettings.Default(keyspaceName, RtqColumnFamilyRegistry.LocksColumnFamilyName);
            var remoteLockImplementation         = new CassandraRemoteLockImplementation(cassandraCluster, serializer, remoteLockImplementationSettings);

            remoteLockCreator = new RemoteLocker(remoteLockImplementation, new RemoteLockerMetrics(keyspaceName), log);
        }
Ejemplo n.º 17
0
 public EventLogger(
     ICassandraCluster cassandraCluster,
     ISerializer serializer,
     ColumnFamilyFullName eventLogColumnFamily,
     IEventLogPointerCreator eventLogPointerCreator,
     Func <IQueueRaker> createQueueRaker,
     IEventLoggerAdditionalInfoRepository eventLoggerAdditionalInfoRepository,
     IEventLogProfiler profiler,
     ILog logger)
 {
     this.serializer             = serializer;
     this.eventLogPointerCreator = eventLogPointerCreator;
     this.createQueueRaker       = createQueueRaker;
     this.eventLoggerAdditionalInfoRepository = eventLoggerAdditionalInfoRepository;
     this.profiler          = profiler;
     this.logger            = logger;
     columnFamilyConnection = cassandraCluster.RetrieveColumnFamilyConnection(eventLogColumnFamily.KeyspaceName, eventLogColumnFamily.ColumnFamilyName);
 }
Ejemplo n.º 18
0
        public void Setup()
        {
            var serviceCollection = new ServiceCollection();
            var configuration     = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", optional: false)
                                    .Build();

            serviceCollection.Configure <CassandraOptions>(configuration.GetSection("Cassandra"));
            serviceCollection.AddSingleton <ICassandraCluster, CassandraCluster>();
            serviceCollection.AddSingleton <ICassandraSession, CassandraSession>();
            serviceCollection.AddSingleton <IMedicalRegistrationRepository, MedicalRegistrationRepository>();
            serviceCollection.AddSingleton <IMeetingRepository, MeetingRepository>();
            serviceCollection.AddSingleton <IStatusChangeRepository, StatusChangeRepository>();
            serviceCollection.AddSingleton <IUserRepository, UserRepository>();
            ServiceProvider = serviceCollection.BuildServiceProvider();

            CassandraSession = ServiceProvider.GetService <ICassandraSession>();
            cassandraCluster = ServiceProvider.GetService <ICassandraCluster>();
        }
 public CassandraSession(ICassandraCluster cassandraCluster)
 {
     Session = cassandraCluster.Cluster.Connect();
 }
        public RtqMinTicksHolder(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
        {
            var minTicksCfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);

            minTicksHolder = new MinTicksHolder(minTicksCfConnection);
        }
 public TaskExceptionInfoStorage(ICassandraCluster cassandraCluster, ISerializer serializer, IRtqSettings rtqSettings, ILog logger)
 {
     this.serializer      = serializer;
     timeBasedBlobStorage = new SinglePartitionTimeBasedBlobStorage(rtqSettings.QueueKeyspace, timeBasedCfName, cassandraCluster, logger.ForContext(nameof(TaskExceptionInfoStorage)));
 }
Ejemplo n.º 22
0
        public GlobalTimeProxy(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
        {
            var maxTicksCfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);

            globalTime = new GlobalTime(maxTicksCfConnection);
        }
 public CassandraSchemaActualizer(ICassandraCluster cassandraCluster, ICassandraActualizerEventListener eventListener, ILog logger)
 {
     this.cassandraCluster = cassandraCluster;
     this.logger           = logger.ForContext("CassandraThriftClient");
     this.eventListener    = eventListener ?? EmptyCassandraActualizerEventListener.Instance;
 }
 public FailedCassandraCluster(ICassandraCluster cassandraCluster, double failProbability)
 {
     this.cassandraCluster = cassandraCluster;
     this.failProbability  = failProbability;
 }
 public CatalogueCassandraClusterWithLongWrites(ICassandraCluster cluster, TimeSpan columnFamilyConnectionTimeout)
 {
     this.cluster = cluster;
     this.columnFamilyConnectionTimeout = columnFamilyConnectionTimeout;
 }
 public TimeBasedBlobStorage(TimeBasedBlobStorageSettings settings, ICassandraCluster cassandraCluster, ILog logger)
 {
     this.settings         = settings;
     this.cassandraCluster = cassandraCluster;
     this.logger           = logger.ForContext(nameof(TimeBasedBlobStorage));
 }
Ejemplo n.º 27
0
 public TestTaskLogger(ICassandraCluster cassandraCluster, IRtqSettings rtqSettings)
 {
     cfConnection = cassandraCluster.RetrieveColumnFamilyConnection(rtqSettings.QueueKeyspace, ColumnFamilyName);
 }