1
0
Fork 0
arangodb/arangod/MMFiles
Max Neunhöffer 328f46e3d6 This merges hotbackup and atomic-db-creation into 3.5. (#9968)
* Squashed commit of feature-3.5/hotbackup_devel.

This puts hotbackup into 3.5.

* Port atomic-database-creation-2 to 3.5.

* Remove some wrongly ported code.

* Fix compilation.

* Fix a manual merge error.

* Remove a feature from the mocks which does not exist in 3.5.

* Add some code which was forgotten in manual merge.

* Fix a problem introduced in a manual merge.

* reuse function

* Address some whitespace issues that came up in review

* aardvark should not create the frontend collection

* create _frontend collection from c++

* recheckAndUpdate Callback in CollectionWatcher

* Wrong author ;)

* rm outdated todo

* Update lib/Basics/VelocyPackHelper.h

Co-Authored-By: Michael Hackstein <michael@arangodb.com>

* use logger unique id, use startup logger

* not needed

* optimized vector shardid method

* do not create _modules collection lazy anymre

* Formatting.

* Assert instead of if/TRI_ASSERT(false)

* Don't use exceptions as control structure

* Re-add READ_LOCKER that got lost in translation

* Fix audit log in case database creation fails early.

* legacy sharding

* Add CHANGELOG entry.

* Retry database cancellation indefinitely

* Do not use exceptions in UpgradeTask

* DropCollection is a FAST_LANE action and should not need much time or else retry.

* Remove superflous addition of LdapFeature

Proudly brought to you by ASAN tests

* Fixed check for distributShardsLike sharding on _system database

* Fixed compile issue on tests

* Removed assertion that seems to be not correct yet on devel.

* Sort out google cloud storage as remote. (#9918)

* Add successful method to ClusterCommResult.
* Improve error forwarding for cluster internal communication.

* Feature/hotbackup list retries (#9924)

* retry hot backup listing for 2 minutes in cluster before giving up

* Enable api by default.

* fix broken list of non existing id (#9957)

* Fix compilation after manual merge.

* Fix another compilation problem.

* Yet more fixes for compilation.

* More compilation fixes.
2019-09-11 13:13:54 +03:00
..
CMakeLists.txt Refactorings from cluster trx improvement branch (#8391) 2019-03-14 23:13:17 +01:00
MMFilesAllocatorThread.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesAllocatorThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCleanupThread.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesCleanupThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollection.cpp Bug fix 3.5/issue #9612 (#9778) 2019-08-21 17:59:59 +03:00
MMFilesCollection.h Bug fix 3.5/issue #9612 (#9778) 2019-08-21 17:59:59 +03:00
MMFilesCollectionExport.cpp Bug fix/cleanup 31032019 (#8632) 2019-04-01 17:14:11 +02:00
MMFilesCollectionExport.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollectionKeys.cpp Bug fix/optimizations 18022019 (#8180) 2019-02-19 19:24:04 +01: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 big reformat 2018-12-26 00:54:03 +01:00
MMFilesCollectorThread.cpp Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
MMFilesCollectorThread.h Bug fix/cleanup 31032019 (#8632) 2019-04-01 17:14:11 +02:00
MMFilesCompactionFeature.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesCompactionFeature.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCompactionLocker.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesCompactorThread.cpp Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
MMFilesCompactorThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesDatafile.cpp Bug fix/cleanup system includes (#8962) 2019-05-15 15:12:59 +02:00
MMFilesDatafile.h add std:: (#9115) 2019-05-27 20:47:03 +02:00
MMFilesDatafileHelper.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesDatafileStatistics.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01: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 big reformat 2018-12-26 00:54:03 +01:00
MMFilesDitch.cpp fix a rare recovery error, add diagnostic output (#8931) 2019-05-08 14:24:26 +02:00
MMFilesDitch.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesDocumentOperation.cpp Reduce # of memcpy from storage engine layer (#8685) 2019-04-08 22:43:29 +02:00
MMFilesDocumentOperation.h Reduce # of memcpy from storage engine layer (#8685) 2019-04-08 22:43:29 +02:00
MMFilesDocumentPosition.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesEdgeIndex.cpp clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesEdgeIndex.h make the comparison functions unambiguous (#9349) 2019-07-01 16:35:28 +02:00
MMFilesEngine.cpp bug-fix/internal-issue-#609 (#9464) (#9520) 2019-07-19 14:01:33 +03:00
MMFilesEngine.h This merges hotbackup and atomic-db-creation into 3.5. (#9968) 2019-09-11 13:13:54 +03:00
MMFilesExportCursor.cpp Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
MMFilesExportCursor.h make ownership a bit more transparent, API-wise (#8653) 2019-04-03 18:47:04 +02:00
MMFilesFulltextIndex.cpp refactor index APIs (#9145) 2019-05-31 11:12:39 +02:00
MMFilesFulltextIndex.h remove some containers from common.h (#9223) 2019-06-07 13:27:24 +02:00
MMFilesGeoIndex.cpp Merge 3.5.1 back to 3.5 (#9713) 2019-08-14 20:24:47 +03:00
MMFilesGeoIndex.h refactor index APIs (#9145) 2019-05-31 11:12:39 +02:00
MMFilesHashIndex.cpp Bug fix 3.5/issue #9612 (#9778) 2019-08-21 17:59:59 +03:00
MMFilesHashIndex.h clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesIncrementalSync.h Bug fix/add shard id to replication client identifier (#9366) 2019-07-08 14:03:42 +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 big reformat 2018-12-26 00:54:03 +01:00
MMFilesIndexFactory.cpp Forbid indexes on _id (#9337) 2019-06-28 11:11: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 Bug fix/rearm cursors (#8363) 2019-03-12 15:28:33 +01:00
MMFilesLogfileManager.cpp This merges hotbackup and atomic-db-creation into 3.5. (#9968) 2019-09-11 13:13:54 +03:00
MMFilesLogfileManager.h bug-fix/internal-issue-#609 (#9464) (#9520) 2019-07-19 14:01:33 +03:00
MMFilesOptimizerRules.cpp refactoring (#9411) 2019-07-09 11:15:52 +02:00
MMFilesOptimizerRules.h refactoring (#9411) 2019-07-09 11:15:52 +02:00
MMFilesPathBasedIndex.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesPathBasedIndex.h support db._explain with all plans (#7895) 2019-01-08 18:06:46 +01:00
MMFilesPersistentIndex.cpp don't unfairly favor the edge index when comparing it to more specialized indexes on `_from`/`_to` plus other attributes (#9362) 2019-07-01 16:32:42 +02:00
MMFilesPersistentIndex.h clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesPersistentIndexFeature.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01: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 clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesPrimaryIndex.h make the comparison functions unambiguous (#9349) 2019-07-01 16:35:28 +02:00
MMFilesRemoverThread.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesRemoverThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestCollectionHandler.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestCollectionHandler.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestExportHandler.cpp make ownership a bit more transparent, API-wise (#8653) 2019-04-03 18:47:04 +02:00
MMFilesRestExportHandler.h big reformat 2018-12-26 00:54:03 +01: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 Bug fix 3.5/clean replication api wal tracking (#9503) 2019-07-18 19:38:31 +03:00
MMFilesRestReplicationHandler.h Bug fix 3.5/min replication factor (#9524) 2019-07-22 17:48:34 +03:00
MMFilesRestWalHandler.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesRestWalHandler.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesRevisionsCache.cpp big reformat 2018-12-26 00:54:03 +01:00
MMFilesRevisionsCache.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesSkiplist.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesSkiplistIndex.cpp clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesSkiplistIndex.h clean up usage costs (#9237) 2019-06-26 17:01:22 +02:00
MMFilesSynchronizerThread.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesSynchronizerThread.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesTransactionCollection.cpp Bug fix/pass on error messages (#8690) 2019-04-10 12:34:25 +02:00
MMFilesTransactionCollection.h Bug fix/pass on error messages (#8690) 2019-04-10 12:34:25 +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
MMFilesTransactionState.cpp 3.5 -- intermediate commit stats (#9780) 2019-08-26 16:56:21 +03:00
MMFilesTransactionState.h bug-fix/internal-issue-#609 (#9464) (#9520) 2019-07-19 14:01:33 +03:00
MMFilesTtlIndex.cpp Bug fix 3.5/make ttl indexes behave like others (#9547) 2019-07-23 15:46:50 +03:00
MMFilesTtlIndex.h Bug fix 3.5/make ttl indexes behave like others (#9547) 2019-07-23 15:46:50 +03:00
MMFilesV8Functions.cpp Feature/upgrade v8 7.1.302.28 (#8088) 2019-02-19 11:15:34 +01: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 apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesWalLogfile.h apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesWalMarker.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalRecoverState.cpp Harden database creation against spurious "duplicate name" errors (#9950) 2019-09-09 21:34:17 +03:00
MMFilesWalRecoverState.h bug-fix/internal-issue-#609 (#9464) (#9520) 2019-07-19 14:01:33 +03:00
MMFilesWalRecoveryFeature.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesWalRecoveryFeature.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalSlot.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesWalSlot.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalSlots.cpp apply unique log ids (#8561) 2019-03-25 20:26:51 +01:00
MMFilesWalSlots.h big reformat 2018-12-26 00:54:03 +01:00
MMFilesWalSyncRegion.h big reformat 2018-12-26 00:54:03 +01:00
README.md
mmfiles-fulltext-common.h
mmfiles-fulltext-index.cpp Bug fix/cleanup system includes (#8962) 2019-05-15 15:12:59 +02:00
mmfiles-fulltext-index.h remove some containers from common.h (#9223) 2019-06-07 13:27:24 +02:00
mmfiles-fulltext-list.cpp big reformat 2018-12-26 00:54:03 +01:00
mmfiles-fulltext-list.h remove some containers from common.h (#9223) 2019-06-07 13:27:24 +02:00
mmfiles-fulltext-query.cpp Feature/ttl index (#8169) 2019-02-19 14:12:21 +01:00
mmfiles-fulltext-query.h big reformat 2018-12-26 00:54:03 +01: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 Bug fix/vpack update (#8875) 2019-04-30 12:33:26 +02:00
mmfiles-replication-dump.h big reformat 2018-12-26 00:54:03 +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.