1
0
Fork 0
arangodb/arangod/MMFiles
Andrey Abramov 7541b4d5e6
Bug fix/internal issue #647 (#10292)
* extend replication tests

* ensure proper replication order

* fix tests

* address review comments

* address test failures

* extend dump tests

* fix analyzers tests

* more fixes

* extend tests

* enhance tests

* adjust tests

* use enum instead of flags (part 1)

* cleanup

* use enum instead of flags (part 2)

* get rid of flags for views

* get rid of flags for collections

* completely get rid of collection flags

* fix replication test

* refactor index flags

* fix tests and move AnalyzerPool out of class scope

* fix tests

* adjust log levels

* add tests

* remove debug logging

* remove noexcept from `equalAanalyzer`

* extend cluster tests

* fix cluster tests

* add tests for views and smart graphs

* address jslint errors
2019-10-29 12:09:04 +03:00
..
CMakeLists.txt Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
MMFilesAllocatorThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesAllocatorThread.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCleanupThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCleanupThread.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCollection.cpp Bug fix/internal issue #647 (#10292) 2019-10-29 12:09:04 +03:00
MMFilesCollection.h Remove invokeOnAllElements (#10212) 2019-10-10 14:03:13 +02:00
MMFilesCollectionExport.cpp Remove invokeOnAllElements (#10212) 2019-10-10 14:03:13 +02:00
MMFilesCollectionExport.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollectionKeys.cpp upgrade vpack library (#10314) 2019-10-25 11:04:16 +02:00
MMFilesCollectionKeys.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollectionWriteLocker.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollectorCache.h Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesCollectorThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCollectorThread.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCompactionFeature.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCompactionFeature.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesCompactionLocker.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCompactorThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesCompactorThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesDatafile.cpp Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesDatafile.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesDatafileHelper.h Feature/cleanup ccpcheck (#9665) 2019-08-12 11:11:49 +02:00
MMFilesDatafileStatistics.cpp Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesDatafileStatistics.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesDatafileStatisticsContainer.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesDatafileStatisticsContainer.h Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesDitch.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesDitch.h Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesDocumentOperation.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesDocumentOperation.h Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesDocumentPosition.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesEdgeIndex.cpp Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesEdgeIndex.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesEngine.cpp Bug fix/internal issue #647 (#10292) 2019-10-29 12:09:04 +03:00
MMFilesEngine.h more vocbase clean up (#10247) 2019-10-15 12:05:02 +02:00
MMFilesExportCursor.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesExportCursor.h make ownership a bit more transparent, API-wise (#8653) 2019-04-03 18:47:04 +02:00
MMFilesFulltextIndex.cpp Bug fix/fix suspicous stuff (#10273) 2019-10-17 15:34:22 +02:00
MMFilesFulltextIndex.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesGeoIndex.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesGeoIndex.h refactor index APIs (#9145) 2019-05-31 11:12:39 +02:00
MMFilesHashIndex.cpp Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesHashIndex.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesIncrementalSync.h Remove invokeOnAllElements (#10212) 2019-10-10 14:03:13 +02:00
MMFilesIndex.cpp Refactoring index interface (#7971) 2019-01-17 16:33:46 +01:00
MMFilesIndex.h refactor index APIs (#9145) 2019-05-31 11:12:39 +02:00
MMFilesIndexElement.cpp Bug fix/rearm cursors (#8363) 2019-03-12 15:28:33 +01:00
MMFilesIndexElement.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesIndexFactory.cpp Bug fix/fix suspicous stuff (#10273) 2019-10-17 15:34:22 +02:00
MMFilesIndexFactory.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesIndexLookupContext.cpp Reduce # of memcpy from storage engine layer (#8685) 2019-04-08 22:43:29 +02:00
MMFilesIndexLookupContext.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesLogfileManager.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesLogfileManager.h bug-fix/internal-issue-#609 (#9464) 2019-07-19 11:10:56 +03:00
MMFilesOptimizerRules.cpp Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesOptimizerRules.h one shard db - devel (#9395) 2019-09-23 15:48:37 +02:00
MMFilesPathBasedIndex.cpp Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesPathBasedIndex.h support db._explain with all plans (#7895) 2019-01-08 18:06:46 +01:00
MMFilesPersistentIndex.cpp Bug fix/fix suspicous stuff (#10273) 2019-10-17 15:34:22 +02:00
MMFilesPersistentIndex.h clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesPersistentIndexFeature.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesPersistentIndexFeature.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesPersistentIndexKeyComparator.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesPersistentIndexKeyComparator.h Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
MMFilesPrimaryIndex.cpp Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesPrimaryIndex.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesRemoverThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRemoverThread.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestCollectionHandler.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestCollectionHandler.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestExportHandler.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestExportHandler.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestHandlers.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestHandlers.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestReplicationHandler.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestReplicationHandler.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestWalHandler.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRestWalHandler.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesRevisionsCache.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesRevisionsCache.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesSkiplistIndex.cpp use C++17 [[fallthrough]] (#10280) 2019-10-19 18:14:26 +02:00
MMFilesSkiplistIndex.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesSynchronizerThread.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesSynchronizerThread.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesTransactionCollection.cpp Bug fix/pass on error messages (#8690) 2019-04-10 12:34:25 +02:00
MMFilesTransactionCollection.h Move containers into their own folder and namespace. (#10244) 2019-10-14 10:55:55 +02:00
MMFilesTransactionContextData.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesTransactionContextData.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesTransactionManager.cpp Feature/hotbackup devel (#9495) 2019-08-02 11:39:46 +02:00
MMFilesTransactionManager.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesTransactionState.cpp Debug segfault reimplementation (#9940) 2019-09-09 23:07:45 +03:00
MMFilesTransactionState.h bug-fix/internal-issue-#609 (#9464) 2019-07-19 11:10:56 +03:00
MMFilesTtlIndex.cpp Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesTtlIndex.h make TTL indexes behave like other indexes on creation (#9546) 2019-07-23 13:53:58 +02:00
MMFilesV8Functions.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesV8Functions.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalAccess.cpp Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
MMFilesWalAccess.h port of replication improvements from 3.4 (#8308) 2019-03-11 13:37:18 +01:00
MMFilesWalLogfile.cpp Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesWalLogfile.h Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
MMFilesWalMarker.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesWalRecoverState.cpp abort write transactions (#10248) 2019-10-23 15:49:47 +02:00
MMFilesWalRecoverState.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesWalRecoveryFeature.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesWalRecoveryFeature.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02:00
MMFilesWalSlot.cpp Feature/set environment (#9688) 2019-08-13 09:18:16 +02:00
MMFilesWalSlot.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalSlots.cpp Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesWalSlots.h Refactor ApplicationServer stack (#9965) 2019-09-25 17:31:59 +02:00
MMFilesWalSyncRegion.h Use explicit default destructors where possible (#10166) 2019-10-04 15:58:30 +02: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 remove unused code (#10043) 2019-09-19 12:25:25 +02:00
mmfiles-fulltext-index.h remove unused code (#10043) 2019-09-19 12:25:25 +02:00
mmfiles-fulltext-list.cpp remove unused code (#10043) 2019-09-19 12:25:25 +02:00
mmfiles-fulltext-list.h remove unused code (#10043) 2019-09-19 12:25:25 +02:00
mmfiles-fulltext-query.cpp Decentralize includes (#9623) 2019-08-06 15:32:09 +02:00
mmfiles-fulltext-query.h remove unused code (#10043) 2019-09-19 12:25:25 +02:00
mmfiles-replication-common.cpp big reformat 2018-12-26 00:54:03 +01:00
mmfiles-replication-common.h big reformat 2018-12-26 00:54:03 +01:00
mmfiles-replication-dump.cpp Feature/cleanup ccpcheck (#9665) 2019-08-12 11:11:49 +02:00
mmfiles-replication-dump.h Feature/comm task refactor (#9426) 2019-07-16 09:43:25 +02: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.