memgraph/tools
florijan 1e0ac8ab8f Write-ahead log
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
2017-11-13 09:51:39 +01:00
..
apollo Add edge creation and bfs parallel tests 2017-11-10 16:03:06 +01:00
gdb-plugins Improve pointer handling in operator_tree gdb plugin 2017-08-22 10:13:49 +02:00
src Write-ahead log 2017-11-13 09:51:39 +01:00
tests Write-ahead log 2017-11-13 09:51:39 +01:00
.gitignore Make csv_to_snapshot more user friendly 2017-10-26 09:37:56 +02:00
CMakeLists.txt Make csv_to_snapshot more user friendly 2017-10-26 09:37:56 +02:00
mg_import_csv.dockerfile Make csv_to_snapshot more user friendly 2017-10-26 09:37:56 +02:00
neo_to_memgraph.py Upgraded neo2memgraph script 2017-07-14 17:13:08 +02:00
plot_gbench_json GBench plot tool improvement 2017-09-07 11:24:03 +02:00
plot_ldbc_latency LDBC plot script update 2017-10-08 14:23:53 +01:00
plot_througput Add medium sized pokec scenario 2017-09-25 13:20:08 +02:00
requirements.txt Refactor long running benchmark 2017-09-20 10:36:51 +02:00
setup Replace Python csv_to_snapshot with C++ 2017-09-22 13:59:42 +02:00