1
0
Fork 0

add high-level documentation for some features of MMFilesEngine

This commit is contained in:
Jan Christoph Uhde 2017-02-21 15:44:50 +01:00
parent d73d25a310
commit ebbfeaead9
1 changed files with 23 additions and 0 deletions

23
arangod/MMFiles/README.md Normal file
View File

@ -0,0 +1,23 @@
MMFilesEngine
=============
How operations are Stored - Overview
------------------------------------
All operations like insert or delete are written as markers to a write ahead
log (WAL). This WAL consists of slices of a certain size and if such a slice is
full for is manually flushed all relevant markers are transferred
(transferMarkers()) to the journals of the respective collections. During the
transfer 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 this operations it will become a
datafile, that is read only. Datafiles will eventually be merged by a compactor
task/thread, that does the 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.