* added tests for revokeCollection and revokeDatabase * optimized user permission test * ui selection bugfix * fixed ldap ui login * login view * Authentication refactoring * localstorage fallback if user config is not available * Fixing permission resolution test * Adding missing import * local storage queries now supported * disabled collection task check for ldap * added internal ldapEnabled function and ldap config to the ui * more db creation tests * removed console logs * render fix * Various authentication related fixes * exec ldap test also for cluster * Adding support to refresh user rights from external auth sources * ldap test howto comment * Handling roles more correctly * jwt * login view * First part of rework of LDAP documentation. * test roles in a ldap environment * Changing role handling * Finish revision of the LDAP chapter in the manual. * Fixing user header * Fixing some slight issues with LDAP users and roles * Removing unused code * Removing unused code * added ldap test * fixing a bug in restuserhandler * more ldap tests * ldap tests * ldap tests * optimized ldap testing, added cluster support, fixed some auth tests * ldap cleanup test * ldap tests * auth tests * ldap test * Changing permission defaults * revert change * updated user helper test * rm of try catch block connection * Removing FeatureCacheFeature * Changed permission resolution according to discussion * updated the docs to clarify the permission resolution and the intricacies of LDAP users * Fixing wrong permissions check in handling of PUT in ResUserHandler * Using revision ID when replacing users * Adding basic replace test * tests * Fixing some outstanding issues * Fixing test setup, optimizing some stuff * Fixing permission resolution rules, testsuite setup, etc * Fix deadlock * Adding error message for keyspace, slightly changing test setup * Removing remaining mentions of FeatureCacheFeature * Fix jslint * Fixing some failed tests * Fixing cluster authentication issue, red tests * Fixing ldap testsuite, adding trace logging * Fixint ldap tesuite setup and LDAP recognition * Fixing an assert * Cleanup, adding changelog entry * fix typo * Fixing dump_authentication test * improvements found during code review * oops * updated CHANGELOG * Fixing broken handling, disallowing adding of local users when disabled * added tests for ldap search mode * Fixing testInvalidGrants (cherry picked from commit bc7ea2aaa29a9ed0974898f487e8a318f24912f1) * Removing undefined auth level externally (cherry picked from commit 70859f43ae6fd694fdbf70f669fbfdafc58e7913) * Fixing previous commit (cherry picked from commit 2fbcffd2ed657862ef9fb5e6d45201a6ec8ada69) * more use of sessionstorage * intentionally removed `after` methods from tests because they are executed before the tests start no cleanup is performed right now after the authentication tests however, a cleanup is done at start of every test * ldap tests all modes * fix LDAP test invocation * Added roles transformation to ldap test suite * Fix compilation of community version. * Imrpved the ldap testsuites by unifying their options * fix permission problems for system collections * Improved LDAP configuration documentation. * Grunt. * fixed some ro/rw display issues * fixed some ro/rw display issues part 2 * grunt build * bump version number * Fixed typos in LDAP manual |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
MMFilesAllocatorThread.cpp | ||
MMFilesAllocatorThread.h | ||
MMFilesAqlFunctions.cpp | ||
MMFilesAqlFunctions.h | ||
MMFilesCleanupThread.cpp | ||
MMFilesCleanupThread.h | ||
MMFilesCollection.cpp | ||
MMFilesCollection.h | ||
MMFilesCollectionExport.cpp | ||
MMFilesCollectionExport.h | ||
MMFilesCollectionKeys.cpp | ||
MMFilesCollectionKeys.h | ||
MMFilesCollectionReadLocker.h | ||
MMFilesCollectionWriteLocker.h | ||
MMFilesCollectorCache.h | ||
MMFilesCollectorThread.cpp | ||
MMFilesCollectorThread.h | ||
MMFilesCompactionFeature.cpp | ||
MMFilesCompactionFeature.h | ||
MMFilesCompactionLocker.h | ||
MMFilesCompactorThread.cpp | ||
MMFilesCompactorThread.h | ||
MMFilesDatafile.cpp | ||
MMFilesDatafile.h | ||
MMFilesDatafileHelper.h | ||
MMFilesDatafileStatistics.cpp | ||
MMFilesDatafileStatistics.h | ||
MMFilesDatafileStatisticsContainer.cpp | ||
MMFilesDatafileStatisticsContainer.h | ||
MMFilesDitch.cpp | ||
MMFilesDitch.h | ||
MMFilesDocumentOperation.cpp | ||
MMFilesDocumentOperation.h | ||
MMFilesDocumentPosition.h | ||
MMFilesEdgeIndex.cpp | ||
MMFilesEdgeIndex.h | ||
MMFilesEngine.cpp | ||
MMFilesEngine.h | ||
MMFilesExportCursor.cpp | ||
MMFilesExportCursor.h | ||
MMFilesFulltextIndex.cpp | ||
MMFilesFulltextIndex.h | ||
MMFilesGeoIndex.cpp | ||
MMFilesGeoIndex.h | ||
MMFilesHashIndex.cpp | ||
MMFilesHashIndex.h | ||
MMFilesIncrementalSync.h | ||
MMFilesIndex.h | ||
MMFilesIndexElement.cpp | ||
MMFilesIndexElement.h | ||
MMFilesIndexFactory.cpp | ||
MMFilesIndexFactory.h | ||
MMFilesLogfileManager.cpp | ||
MMFilesLogfileManager.h | ||
MMFilesOptimizerRules.cpp | ||
MMFilesOptimizerRules.h | ||
MMFilesPathBasedIndex.cpp | ||
MMFilesPathBasedIndex.h | ||
MMFilesPersistentIndex.cpp | ||
MMFilesPersistentIndex.h | ||
MMFilesPersistentIndexFeature.cpp | ||
MMFilesPersistentIndexFeature.h | ||
MMFilesPersistentIndexKeyComparator.cpp | ||
MMFilesPersistentIndexKeyComparator.h | ||
MMFilesPrimaryIndex.cpp | ||
MMFilesPrimaryIndex.h | ||
MMFilesRemoverThread.cpp | ||
MMFilesRemoverThread.h | ||
MMFilesRestExportHandler.cpp | ||
MMFilesRestExportHandler.h | ||
MMFilesRestHandlers.cpp | ||
MMFilesRestHandlers.h | ||
MMFilesRestReplicationHandler.cpp | ||
MMFilesRestReplicationHandler.h | ||
MMFilesRestWalHandler.cpp | ||
MMFilesRestWalHandler.h | ||
MMFilesRevisionsCache.cpp | ||
MMFilesRevisionsCache.h | ||
MMFilesSkiplist.h | ||
MMFilesSkiplistIndex.cpp | ||
MMFilesSkiplistIndex.h | ||
MMFilesSynchronizerThread.cpp | ||
MMFilesSynchronizerThread.h | ||
MMFilesTransactionCollection.cpp | ||
MMFilesTransactionCollection.h | ||
MMFilesTransactionContextData.cpp | ||
MMFilesTransactionContextData.h | ||
MMFilesTransactionManager.cpp | ||
MMFilesTransactionManager.h | ||
MMFilesTransactionState.cpp | ||
MMFilesTransactionState.h | ||
MMFilesV8Functions.cpp | ||
MMFilesV8Functions.h | ||
MMFilesView.cpp | ||
MMFilesView.h | ||
MMFilesWalAccess.cpp | ||
MMFilesWalAccess.h | ||
MMFilesWalLogfile.cpp | ||
MMFilesWalLogfile.h | ||
MMFilesWalMarker.h | ||
MMFilesWalRecoverState.cpp | ||
MMFilesWalRecoverState.h | ||
MMFilesWalRecoveryFeature.cpp | ||
MMFilesWalRecoveryFeature.h | ||
MMFilesWalSlot.cpp | ||
MMFilesWalSlot.h | ||
MMFilesWalSlots.cpp | ||
MMFilesWalSlots.h | ||
MMFilesWalSyncRegion.h | ||
README.md | ||
mmfiles-fulltext-common.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-geo-index.cpp | ||
mmfiles-geo-index.h | ||
mmfiles-replication-common.cpp | ||
mmfiles-replication-common.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.