memgraph/tests/manual
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
..
antlr_parser.cpp youcompleteme config has been added to the repo 2017-02-20 14:17:41 +01:00
antlr_sigsegv.cpp Prevent double termination signals causing crashes 2017-11-09 10:41:16 +01:00
antlr_tree_pretty_print.cpp Implement expression code generator 2017-03-08 14:10:16 +01:00
binomial.cpp Labels implementation. 2017-04-03 11:50:22 +02:00
bolt_client.cpp Add single_create group to harness 2017-08-28 11:45:12 +02:00
CMakeLists.txt Remove unused stuff from CMakeLists 2017-10-16 13:45:18 +02:00
console_test.cpp Remove Dbms 2017-10-30 12:33:29 +01:00
endinan.cpp examples folder has been removed; src/test folder has been removed; the existing tests were moved to tests folder; StacktraceException has been introduced; query_plan_templated has been moved to query folder; hazard pointers have been deleted because they are not used any more 2017-02-18 18:03:48 +01:00
generate_snapshot.cpp Write-ahead log 2017-11-13 09:51:39 +01:00
query_hash.cpp Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
query_planner.cpp Remove Dbms 2017-10-30 12:33:29 +01:00
sl_position_and_count.cpp GraphDbAccessor - label+property index cardinalities for exact value and value ranges 2017-07-06 10:22:19 +02:00
stripped_timing.cpp Add AST cache 2017-06-14 18:59:31 +02:00
test_antlr_sigsegv Added antlr sigsegv test. 2017-08-03 13:06:18 +02:00
xorshift.cpp Remove traces of custom assert 2017-10-13 09:34:13 +02:00