private void SyncEnvironment(EnvSyncReq req)
        {
            var storageEnvironment = req.Env;

            if (storageEnvironment == null || storageEnvironment.Disposed)
            {
                return;
            }

            if (storageEnvironment.LastSyncCounter > req.LastKnownSyncCounter)
            {
                return; // we already a sync after this was scheduled
            }
            try
            {
                using (var operation = new WriteAheadJournal.JournalApplicator.SyncOperation(storageEnvironment.Journal.Applicator))
                {
                    operation.SyncDataFile();
                }
            }
            catch (Exception e)
            {
                if (_log.IsOperationsEnabled)
                {
                    _log.Operations($"Failed to sync data file for {storageEnvironment.Options.BasePath}", e);
                }
                storageEnvironment.Options.SetCatastrophicFailure(ExceptionDispatchInfo.Capture(e));
            }
        }
Пример #2
0
        private void SyncEnvironment(EnvSyncReq req)
        {
            var storageEnvironment = req.Env;

            if (storageEnvironment == null || storageEnvironment.Disposed || storageEnvironment.Options.ManualSyncing)
            {
                return;
            }

            try
            {
                using (var operation = new WriteAheadJournal.JournalApplicator.SyncOperation(storageEnvironment.Journal.Applicator))
                {
                    operation.SyncDataFile();
                }
            }
            catch (Exception e)
            {
                if (_log.IsOperationsEnabled)
                {
                    _log.Operations($"Failed to sync data file for {storageEnvironment.Options.BasePath}", e);
                }
                storageEnvironment.Options.SetCatastrophicFailure(ExceptionDispatchInfo.Capture(e));
            }
        }