hashicorp / raft-wal

experimental raft storage
Mozilla Public License 2.0
86 stars 8 forks source link

V2 WAL implementation #11

Closed banks closed 1 year ago

banks commented 2 years ago

This is effectively a new "initial commit" for the v2 rewrite of this library. The design is similar in many ways to Mahmood's original design, although some details changed and the overall code structure was abstracted more to allow for simpler testing of layers in separation and simulation of failures.

I'd like to thank Mahmood for pioneering this work and Nick Cabatoff, Dan Upton and probably others who contributed tests etc. This WAL design owes a lot to all of your work!

The README includes design details and rationale for the assumptions made.

There is basic CI setup via Github Actions.

This is still not quite ready for release though - we'll be doing much more testing and then introducing it into our products as an experimental option before we call this production ready.

ALICE

This fork has ALICE tests in /alice that cover all the major types of mutation. They caught a couple of implementation bugs where the code didn't match the planned design for crash recovery which is great!

banks commented 1 year ago

Merging to become the new WAL implementation. This library isn't used so far so this is low risk and this branch has now had much more active attention.