mirror of https://gitee.com/bigwinds/arangodb
Essentially the strategy is: A newly created and a newly opened file is advised to be "SEQUENTIAL ACCESS", because we will either write to it or scan it sequentially. As soon as it is sealed, we switch the advice to "RANDOM ACCESS", because this should be the normal pattern and aggressive read-aheads tend to be bad. The collector and the compactor switch a sealed file back to "SEQUENTIAL ACCESS" just before they scan it and back to "RANDOM ACCESS", when they are done. Furthermore, all data files in a collection are advised with "WILLNEED" just before the collection is scanned during loading. Finally, the actual hash table of AssocMulti is advised to be random access, although this is an anonymous map given to us by malloc and not a memory mapped file. |
||
---|---|---|
.. | ||
AllocatorThread.cpp | ||
AllocatorThread.h | ||
CollectorThread.cpp | ||
CollectorThread.h | ||
DocumentOperation.h | ||
Logfile.cpp | ||
Logfile.h | ||
LogfileManager.cpp | ||
LogfileManager.h | ||
Marker.cpp | ||
Marker.h | ||
RecoverState.cpp | ||
RecoverState.h | ||
RemoverThread.cpp | ||
RemoverThread.h | ||
Slot.cpp | ||
Slot.h | ||
Slots.cpp | ||
Slots.h | ||
SyncRegion.h | ||
SynchroniserThread.cpp | ||
SynchroniserThread.h |