1
0
Fork 0
arangodb/arangod/MMFiles
Matthew Von-Maszewski 474f0cde31 Bug fix 3.4/scheduler empty reformat (#7872)
* added check for empty scheduler

* removed log, old is 1 not 0

* require running in this thread

* test

* added isDirect to callback

* signature fixed

* added drain

* added allowDirectHandling

* disabled for testing

* Add ExecContextScope object to direct call.

* try alternate initialization of ExecContextScope

* remove ExecContextScope, no help.  try _fifoSize as part of direct decision.

* strand management to minimize reuse of same strand per listen socket

* blind attempt to address Jenkins shutdown lock up.  may remove quickly.

* add filename and line to existing error log message

* Adjust queueOperation() to stop accepting items once isStopping() becomes true.

* revert previous check-in to MMFilesCollectorThread.cpp

* big reformat

* fixed merge conflicts

* Add CHANGELOG entry.
2019-01-08 20:39:42 +01:00
..
CMakeLists.txt yet more micro optimizations (#7399) 2018-11-21 17:09:16 +01:00
MMFilesAllocatorThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesAllocatorThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCleanupThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCleanupThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollection.cpp Bug fix 3.4/scheduler empty reformat (#7872) 2019-01-08 20:39:42 +01:00
MMFilesCollection.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectionExport.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectionExport.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectionKeys.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectionKeys.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectionWriteLocker.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectorCache.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectorThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCollectorThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCompactionFeature.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCompactionFeature.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCompactionLocker.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesCompactorThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesCompactorThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafile.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafile.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafileHelper.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafileStatistics.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafileStatistics.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafileStatisticsContainer.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesDatafileStatisticsContainer.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDitch.cpp Bug fix 3.4/scheduler empty reformat (#7872) 2019-01-08 20:39:42 +01:00
MMFilesDitch.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDocumentOperation.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesDocumentOperation.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesDocumentPosition.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesEdgeIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesEdgeIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesEngine.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesEngine.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesExportCursor.cpp Bug fix 3.4/scheduler empty reformat (#7872) 2019-01-08 20:39:42 +01:00
MMFilesExportCursor.h Bug fix 3.4/scheduler empty reformat (#7872) 2019-01-08 20:39:42 +01:00
MMFilesFulltextIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesFulltextIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesGeoIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesGeoIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesHashIndex.cpp Bug fix 3.4/scheduler empty reformat (#7872) 2019-01-08 20:39:42 +01:00
MMFilesHashIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesIncrementalSync.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexElement.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexElement.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexFactory.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexFactory.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexLookupContext.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesIndexLookupContext.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesLogfileManager.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesLogfileManager.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesOptimizerRules.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesOptimizerRules.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesPathBasedIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesPathBasedIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndexFeature.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndexFeature.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndexKeyComparator.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesPersistentIndexKeyComparator.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesPrimaryIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesPrimaryIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRemoverThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRemoverThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestCollectionHandler.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestCollectionHandler.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestExportHandler.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestExportHandler.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestHandlers.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestHandlers.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestReplicationHandler.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestReplicationHandler.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestWalHandler.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRestWalHandler.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesRevisionsCache.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesRevisionsCache.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesSkiplist.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesSkiplistIndex.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesSkiplistIndex.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesSynchronizerThread.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesSynchronizerThread.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionCollection.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionCollection.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionContextData.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionContextData.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionManager.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionManager.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionState.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesTransactionState.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesV8Functions.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesV8Functions.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalAccess.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalAccess.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalLogfile.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalLogfile.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalMarker.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalRecoverState.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalRecoverState.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalRecoveryFeature.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalRecoveryFeature.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalSlot.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalSlot.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalSlots.cpp big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalSlots.h big reformat 2018-12-26 00:57:05 +01:00
MMFilesWalSyncRegion.h big reformat 2018-12-26 00:57:05 +01:00
README.md remove transferMarkers from StorageEngine.h 2017-02-21 16:00:37 +01:00
mmfiles-fulltext-common.h move replication-dump into engine 2017-03-21 13:55:57 +01:00
mmfiles-fulltext-index.cpp big reformat 2018-12-26 00:57:05 +01:00
mmfiles-fulltext-index.h big reformat 2018-12-26 00:57:05 +01:00
mmfiles-fulltext-list.cpp big reformat 2018-12-26 00:57:05 +01:00
mmfiles-fulltext-list.h big reformat 2018-12-26 00:57:05 +01:00
mmfiles-fulltext-query.cpp big reformat 2018-12-26 00:57:05 +01:00
mmfiles-fulltext-query.h big reformat 2018-12-26 00:57:05 +01:00
mmfiles-replication-common.cpp big reformat 2018-12-26 00:57:05 +01:00
mmfiles-replication-common.h big reformat 2018-12-26 00:57:05 +01:00
mmfiles-replication-dump.cpp big reformat 2018-12-26 00:57:05 +01:00
mmfiles-replication-dump.h big reformat 2018-12-26 00:57:05 +01:00

README.md

MMFilesEngine

How operations are stored - Overview

All operations like insert or remove are written as markers to a write ahead log (WAL). This WAL consists of files of a certain size and if such a file is full (or is manually flushed), all relevant markers are transferred (transferMarkers()) to the journals of the respective collections. During the transfer any obsolete markers will be thrown away: a sequence of insert, remove, insert on the same document will result in the last insert discarding the previous operations. When a journal file of size (journalSize()) is full, it will be sealed and renamed. By applying these operations it will become a datafile that is read-only. Datafiles will eventually be merged by a compactor thread that does about the same work as the transferMarkers function, reducing the size of the stored data.

Ditches

Ditches are used to pin objects in WAL or journal as long as they are used by other operations.