public RavenFileSystem(InMemoryRavenConfiguration systemConfiguration, string name, TransportState recievedTransportState = null) { this.Name = name; this.systemConfiguration = systemConfiguration; storage = CreateTransactionalStorage(systemConfiguration); search = new IndexStorage(systemConfiguration.FileSystem.IndexStoragePath, systemConfiguration.Settings); sigGenerator = new SigGenerator(); var replicationHiLo = new SynchronizationHiLo(storage); var sequenceActions = new SequenceActions(storage); transportState = recievedTransportState ?? new TransportState(); notificationPublisher = new NotificationPublisher(transportState); fileLockManager = new FileLockManager(); storage.Initialize(); search.Initialize(); var uuidGenerator = new UuidGenerator(sequenceActions); historian = new Historian(storage, replicationHiLo, uuidGenerator); BufferPool = new BufferPool(1024 * 1024 * 1024, 65 * 1024); conflictArtifactManager = new ConflictArtifactManager(storage, search); conflictDetector = new ConflictDetector(); conflictResolver = new ConflictResolver(storage, new CompositionContainer(systemConfiguration.Catalog)); synchronizationTask = new SynchronizationTask(storage, sigGenerator, notificationPublisher, systemConfiguration); storageOperationsTask = new StorageOperationsTask(storage, search, notificationPublisher); metricsCounters = new MetricsCountersManager(); AppDomain.CurrentDomain.ProcessExit += ShouldDispose; AppDomain.CurrentDomain.DomainUnload += ShouldDispose; }
public void Initialize () { this.storage.Initialize(); var replicationHiLo = new SynchronizationHiLo(storage); var sequenceActions = new SequenceActions(storage); var uuidGenerator = new UuidGenerator(sequenceActions); this.historian = new Historian(storage, replicationHiLo, uuidGenerator); this.search.Initialize(this); }
public void Initialize() { var generator = new UuidGenerator(); storage.Initialize(generator, FileCodecs); generator.EtagBase = new SequenceActions(storage).GetNextValue("Raven/Etag"); historian = new Historian(storage, new SynchronizationHiLo(storage)); InitializeTriggersExceptIndexCodecs(); search.Initialize(this); SecondStageInitialization(); synchronizationTask.Start(); }
public void Initialize() { storage.Initialize(FileCodecs); var replicationHiLo = new SynchronizationHiLo(storage); var sequenceActions = new SequenceActions(storage); var uuidGenerator = new UuidGenerator(sequenceActions); historian = new Historian(storage, replicationHiLo, uuidGenerator); search.Initialize(this); InitializeTriggersExceptIndexCodecs(); SecondStageInitialization(); }
public void Initialize() { try { var generator = new UuidGenerator(); storage.Initialize(generator, FileCodecs, storagePath => { if (configuration.RunInMemory) return; var resourceTypeFile = Path.Combine(storagePath, Constants.FileSystem.FsResourceMarker); if (File.Exists(resourceTypeFile) == false) using (File.Create(resourceTypeFile)) { } }); generator.EtagBase = new SequenceActions(storage).GetNextValue("Raven/Etag"); historian = new Historian(storage, new SynchronizationHiLo(storage)); InitializeTriggersExceptIndexCodecs(); search.Initialize(this); SecondStageInitialization(); synchronizationTask.Start(); } catch (Exception e) { Log.ErrorException(string.Format("Could not create file system '{0}'", Name ?? "unknown name"), e); try { Dispose(); } catch (Exception ex) { Log.FatalException("Failed to dispose when already getting an error during file system initialization", ex); } throw; } }