1
0
Fork 0
arangodb/arangod/MMFiles
Frank Celler a5a25754ed Feature/reduce extraction to projection (#2792)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule

* cppcheck

* try to fix compile error on MacOS

* bug fix for MacOSX

* missing namespace (in Windows compile)
2017-07-14 08:40:29 +02:00
..
CMakeLists.txt optimize away own transaction management for RocksDB engine 2017-05-04 23:16:53 +02:00
MMFilesAllocatorThread.cpp
MMFilesAllocatorThread.h
MMFilesAqlFunctions.cpp
MMFilesAqlFunctions.h
MMFilesCleanupThread.cpp removing unused and unimplemented methods 2017-05-10 18:25:41 +02:00
MMFilesCleanupThread.h
MMFilesCollection.cpp Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesCollection.h Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesCollectionExport.cpp move common code into its own file 2017-05-22 17:46:12 +02:00
MMFilesCollectionExport.h move common code into its own file 2017-05-22 17:46:12 +02:00
MMFilesCollectionKeys.cpp removing unused and unimplemented methods 2017-05-10 18:25:41 +02:00
MMFilesCollectionKeys.h
MMFilesCollectionReadLocker.h
MMFilesCollectionWriteLocker.h
MMFilesCollectorCache.h
MMFilesCollectorThread.cpp Bug fix/small issues (#2696) 2017-07-01 00:30:45 +02:00
MMFilesCollectorThread.h
MMFilesCompactionLocker.h
MMFilesCompactorThread.cpp removing unused and unimplemented methods 2017-05-10 18:25:41 +02:00
MMFilesCompactorThread.h
MMFilesDatafile.cpp do not include our datafiles in core files (#2630) 2017-06-22 12:34:27 +02:00
MMFilesDatafile.h fix WAL file tick updating (happened too late before) (#2762) 2017-07-10 17:41:08 +02:00
MMFilesDatafileHelper.h
MMFilesDatafileStatistics.cpp
MMFilesDatafileStatistics.h
MMFilesDatafileStatisticsContainer.cpp
MMFilesDatafileStatisticsContainer.h
MMFilesDitch.cpp
MMFilesDitch.h
MMFilesDocumentOperation.cpp
MMFilesDocumentOperation.h
MMFilesDocumentPosition.h
MMFilesEdgeIndex.cpp cleanup error codes a bit 2017-06-09 14:50:05 +02:00
MMFilesEdgeIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesEngine.cpp change init order of mmfiles logfile manager and database feature (#2697) 2017-07-01 08:47:57 +02:00
MMFilesEngine.h Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesExportCursor.cpp move common code into its own file 2017-05-22 17:46:12 +02:00
MMFilesExportCursor.h
MMFilesFulltextIndex.cpp unify index struct return values in cluster and non-cluster for fulltext and geo indexes (#2534) 2017-06-08 13:35:00 +02:00
MMFilesFulltextIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesGeoIndex.cpp Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesGeoIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesHashIndex.cpp Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesHashIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesIncrementalSync.h Bug fix/adjust agency comm timeouts (#2765) 2017-07-13 00:44:28 +02:00
MMFilesIndexElement.cpp
MMFilesIndexElement.h
MMFilesIndexFactory.cpp Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesIndexFactory.h
MMFilesLogfileManager.cpp Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesLogfileManager.h change init order of mmfiles logfile manager and database feature (#2697) 2017-07-01 08:47:57 +02:00
MMFilesOptimizerRules.cpp Working geo index + tests 2017-05-09 15:04:51 +02:00
MMFilesOptimizerRules.h Working geo index + tests 2017-05-09 15:04:51 +02:00
MMFilesPathBasedIndex.cpp added "deduplicate" attribute for array indexes (#2644) 2017-06-30 17:53:50 +02:00
MMFilesPathBasedIndex.h added "deduplicate" attribute for array indexes (#2644) 2017-06-30 17:53:50 +02:00
MMFilesPersistentIndex.cpp added "deduplicate" attribute for array indexes (#2644) 2017-06-30 17:53:50 +02:00
MMFilesPersistentIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesPersistentIndexFeature.cpp Bug fix/fix rocksdb options (#2702) 2017-07-02 23:13:42 +02:00
MMFilesPersistentIndexFeature.h
MMFilesPersistentIndexKeyComparator.cpp
MMFilesPersistentIndexKeyComparator.h
MMFilesPrimaryIndex.cpp Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesPrimaryIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesRemoverThread.cpp
MMFilesRemoverThread.h
MMFilesRestExportHandler.cpp move common code into its own file 2017-05-22 17:46:12 +02:00
MMFilesRestExportHandler.h move common code into its own file 2017-05-22 17:46:12 +02:00
MMFilesRestHandlers.cpp
MMFilesRestHandlers.h
MMFilesRestReplicationHandler.cpp Bug fix/adjust agency comm timeouts (#2765) 2017-07-13 00:44:28 +02:00
MMFilesRestReplicationHandler.h
MMFilesRestWalHandler.cpp issue #2505 2017-05-29 10:29:47 +02:00
MMFilesRestWalHandler.h
MMFilesRevisionsCache.cpp
MMFilesRevisionsCache.h
MMFilesSkiplist.h
MMFilesSkiplistIndex.cpp Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
MMFilesSkiplistIndex.h Changed several index/collection APIs to provide better context messages. 2017-06-06 12:27:08 -04:00
MMFilesSynchronizerThread.cpp
MMFilesSynchronizerThread.h
MMFilesToken.h
MMFilesTransactionCollection.cpp slightly less allocations for MMFiles transaction ops 2017-06-07 00:30:18 +02:00
MMFilesTransactionCollection.h slightly less allocations for MMFiles transaction ops 2017-06-07 00:30:18 +02:00
MMFilesTransactionContextData.cpp
MMFilesTransactionContextData.h
MMFilesTransactionManager.cpp optimize away own transaction management for RocksDB engine 2017-05-04 23:16:53 +02:00
MMFilesTransactionManager.h optimize away own transaction management for RocksDB engine 2017-05-04 23:16:53 +02:00
MMFilesTransactionState.cpp improve waitForSync performance for mmfiles 2017-06-06 12:44:39 +02:00
MMFilesTransactionState.h added tests for intermediate commits 2017-05-30 12:03:58 +02:00
MMFilesV8Functions.cpp
MMFilesV8Functions.h
MMFilesView.cpp
MMFilesView.h
MMFilesWalLogfile.cpp
MMFilesWalLogfile.h
MMFilesWalMarker.h
MMFilesWalRecoverState.cpp Added recovery tests for views and fixed a few related bugs. (#2682) 2017-06-29 17:09:43 +02:00
MMFilesWalRecoverState.h
MMFilesWalRecoveryFeature.cpp
MMFilesWalRecoveryFeature.h
MMFilesWalSlot.cpp fix WAL file tick updating (happened too late before) (#2762) 2017-07-10 17:41:08 +02:00
MMFilesWalSlot.h fix WAL file tick updating (happened too late before) (#2762) 2017-07-10 17:41:08 +02:00
MMFilesWalSlots.cpp fix WAL file tick updating (happened too late before) (#2762) 2017-07-10 17:41:08 +02:00
MMFilesWalSlots.h fix WAL file tick updating (happened too late before) (#2762) 2017-07-10 17:41:08 +02:00
MMFilesWalSyncRegion.h
README.md
mmfiles-fulltext-common.h
mmfiles-fulltext-handles.cpp
mmfiles-fulltext-handles.h
mmfiles-fulltext-index.cpp fix invalid new/free pairings 2017-06-07 13:21:41 +02:00
mmfiles-fulltext-index.h cppcheck 2017-05-10 18:24:34 +02:00
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 Squashed commit of the following: 2017-05-12 23:22:22 +02:00
mmfiles-replication-dump.h Bug fix/cleanup stuff (#2734) 2017-07-05 19:34:16 +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.