1
0
Fork 0
arangodb/arangod/MMFiles
Jan Christoph Uhde 234180c08b wip - drop database 2017-04-03 16:52:21 +02:00
..
CMakeLists.txt move engine sources into their own cmake files 2017-03-28 11:38:45 +02:00
MMFilesAllocatorThread.cpp
MMFilesAllocatorThread.h
MMFilesAqlFunctions.cpp fix handling of externals 2017-03-30 17:37:09 +02:00
MMFilesAqlFunctions.h
MMFilesCleanupThread.cpp
MMFilesCleanupThread.h
MMFilesCollection.cpp Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-03-31 15:06:21 +02:00
MMFilesCollection.h pass trx into numberDocuments 2017-03-31 11:33:16 +02:00
MMFilesCollectionExport.cpp pass trx into numberDocuments 2017-03-31 11:33:16 +02:00
MMFilesCollectionExport.h
MMFilesCollectionKeys.cpp refactor some code to make use of arangodb::Result 2017-03-30 09:39:21 +02:00
MMFilesCollectionKeys.h
MMFilesCollectionReadLocker.h
MMFilesCollectionWriteLocker.h
MMFilesCollectorCache.h
MMFilesCollectorThread.cpp refactor some code to make use of arangodb::Result 2017-03-30 09:39:21 +02:00
MMFilesCollectorThread.h
MMFilesCompactionLocker.h
MMFilesCompactorThread.cpp pass trx into numberDocuments 2017-03-31 11:33:16 +02:00
MMFilesCompactorThread.h
MMFilesDatafile.cpp warn before we run out of file descriptors 2017-03-29 02:35:46 +02:00
MMFilesDatafile.h
MMFilesDatafileHelper.h
MMFilesDatafileStatistics.cpp
MMFilesDatafileStatistics.h
MMFilesDatafileStatisticsContainer.cpp
MMFilesDatafileStatisticsContainer.h
MMFilesDitch.cpp
MMFilesDitch.h
MMFilesDocumentOperation.cpp
MMFilesDocumentOperation.h
MMFilesDocumentPosition.h
MMFilesEdgeIndex.cpp de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesEdgeIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesEngine.cpp wip - drop database 2017-04-03 16:52:21 +02:00
MMFilesEngine.h wip - drop database 2017-04-03 16:52:21 +02:00
MMFilesExportCursor.cpp
MMFilesExportCursor.h
MMFilesFulltextIndex.cpp
MMFilesFulltextIndex.h
MMFilesGeoIndex.cpp de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesGeoIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesHashIndex.cpp Merge branch 'engine-api' of https://github.com/arangodb/arangodb into engine-api 2017-03-31 11:29:47 +02:00
MMFilesHashIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesIndexElement.cpp
MMFilesIndexElement.h
MMFilesIndexFactory.cpp
MMFilesIndexFactory.h
MMFilesLogfileManager.cpp honor feature optionality 2017-03-29 12:53:05 +02:00
MMFilesLogfileManager.h
MMFilesOptimizerRules.cpp
MMFilesOptimizerRules.h
MMFilesPathBasedIndex.cpp Path based enumerator 2017-03-29 17:33:02 +02:00
MMFilesPathBasedIndex.h Path based enumerator 2017-03-29 17:33:02 +02:00
MMFilesPersistentIndex.cpp de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesPersistentIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesPersistentIndexFeature.cpp
MMFilesPersistentIndexFeature.h
MMFilesPersistentIndexKeyComparator.cpp
MMFilesPersistentIndexKeyComparator.h
MMFilesPrimaryIndex.cpp de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesPrimaryIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesRemoverThread.cpp
MMFilesRemoverThread.h
MMFilesRestExportHandler.cpp
MMFilesRestExportHandler.h
MMFilesRestHandlers.cpp
MMFilesRestHandlers.h
MMFilesRestWalHandler.cpp
MMFilesRestWalHandler.h
MMFilesRevisionsCache.cpp
MMFilesRevisionsCache.h
MMFilesSkiplist.h
MMFilesSkiplistIndex.cpp de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesSkiplistIndex.h de-constified lookupKey 2017-03-31 10:16:14 +02:00
MMFilesSynchronizerThread.cpp
MMFilesSynchronizerThread.h
MMFilesToken.h
MMFilesTransactionCollection.cpp
MMFilesTransactionCollection.h
MMFilesTransactionContextData.cpp
MMFilesTransactionContextData.h
MMFilesTransactionState.cpp refactor some code to make use of arangodb::Result 2017-03-30 09:39:21 +02:00
MMFilesTransactionState.h refactor some code to make use of arangodb::Result 2017-03-30 09:39:21 +02:00
MMFilesV8Functions.cpp refactor some code to make use of arangodb::Result 2017-03-30 09:39:21 +02:00
MMFilesV8Functions.h
MMFilesView.cpp
MMFilesView.h
MMFilesWalLogfile.cpp
MMFilesWalLogfile.h
MMFilesWalMarker.h
MMFilesWalRecoverState.cpp Merge branch 'devel' of https://github.com/arangodb/arangodb into engine-api 2017-03-31 09:34:06 +02:00
MMFilesWalRecoverState.h
MMFilesWalRecoveryFeature.cpp
MMFilesWalRecoveryFeature.h
MMFilesWalSlot.cpp
MMFilesWalSlot.h
MMFilesWalSlots.cpp
MMFilesWalSlots.h
MMFilesWalSyncRegion.h
README.md
mmfiles-fulltext-common.h
mmfiles-fulltext-handles.cpp
mmfiles-fulltext-handles.h
mmfiles-fulltext-index.cpp
mmfiles-fulltext-index.h
mmfiles-fulltext-list.cpp
mmfiles-fulltext-list.h
mmfiles-fulltext-query.cpp
mmfiles-fulltext-query.h
mmfiles-fulltext-result.cpp
mmfiles-fulltext-result.h
mmfiles-geo-index.cpp
mmfiles-geo-index.h
mmfiles-replication-dump.cpp
mmfiles-replication-dump.h

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.