Summary: My dear fellow Memgraphians. It's friday afternoon, and I am as ready to pop as WAL is to get reviewed... What's done: - Vertices and Edges have global IDs, stored in `VersionList`. Main storage is now a concurrent map ID->vlist_ptr. - WriteAheadLog class added. It's based around buffering WAL::Op objects (elementraly DB changes) and periodically serializing and flusing them to disk. - Snapshot recovery refactored, WAL recovery added. Snapshot format changed again to include necessary info. - Durability testing completely reworked. What's not done (and should be when we decide how): - Old WAL file purging. - Config refactor (naming and organization). Will do when we discuss what we want. - Changelog and new feature documentation (both depending on the point above). - Better error handling and recovery feedback. Currently it's all returning bools, which is not fine-grained enough (neither for errors nor partial successes, also EOF is reported as a failure at the moment). - Moving the implementation of WAL stuff to .cpp where possible. - Not sure if there are transactions being created outside of `GraphDbAccessor` and it's `BuildIndex`. Need to look into. - True write-ahead logic (flag controlled): not committing a DB transaction if the WAL has not flushed it's data. We can discuss the gain/effort ratio for this feature. Reviewers: buda, mislav.bradac, teon.banek, dgleich Reviewed By: dgleich Subscribers: mtomic, pullbot Differential Revision: https://phabricator.memgraph.io/D958
30 lines
712 B
Plaintext
30 lines
712 B
Plaintext
# MEMGRAPH DEFAULT TESTING CONFIG
|
|
|
|
# NOTE: all paths are relative to the run folder
|
|
# (where the executable is run)
|
|
|
|
# directory to the folder with snapshots
|
|
--snapshot-directory=snapshots
|
|
|
|
# cleaning cycle interval
|
|
# if set to -1 the GC will not run
|
|
--gc-cycle-sec=30
|
|
|
|
# snapshot cycle interval
|
|
# if set to -1 the snapshooter will not run
|
|
--snapshot-cycle-sec=-1
|
|
|
|
# create snapshot disabled on db exit
|
|
--snapshot-on-exit=false
|
|
|
|
# disable WAL
|
|
--wal-flush-interval-millis=-1
|
|
|
|
# max number of snapshots which will be kept on the disk at some point
|
|
# if set to -1 the max number of snapshots is unlimited
|
|
--snapshot-max-retained=-1
|
|
|
|
# database recovering is disabled by default
|
|
--snapshot-recover-on-startup=false
|
|
|