3 ms·
We've been designing TigerBeetle [1], a distributed financial accounting database, from the beginning with the ultimate goal that the whole architecture of:
by _vvhw 4y ago
We've been designing TigerBeetle [1], a distributed financial accounting database, from the beginning with the ultimate goal that the whole architecture of:
* global consensus layer (Viewstamped Replication) [2], and the
* local storage engine (a high-performance storage fault-tolerant LSM-tree over io_uring) [3],
* which can all be deterministically simulated and fuzzed,
can eventually be used as a distributed library that gives you not only consensus but storage, all in one, kind of like “a DistSys Iron Man suit”—you put in your own state machine and business logic [4] inside it, and get all the replication and fault-tolerance around that, out of the box.
TigerBeetle is based on some of the latest research around storage faults, how to recover safely and maximize high availability, and we've been heavily inspired by the deterministic simulation testing of FoundationDB [5].
[1] https://github.com/coilhq/tigerbeetle https://github.com/coilhq/tigerbeetle
[2] https://github.com/coilhq/tigerbeetle/blob/main/src/vsr/replica.zig#L624-L647 https://github.com/coilhq/tigerbeetle/blob/main/src/vsr/repl...
[3] https://www.hytradboi.com/2022/tigerbeetles-lsm-forest https://www.hytradboi.com/2022/tigerbeetles-lsm-forest
[4] https://github.com/coilhq/tigerbeetle/blob/main/src/state_machine.zig#L277-L303 https://github.com/coilhq/tigerbeetle/blob/main/src/state_ma...
[5] https://www.youtube.com/watch?v=OJb8A6h9jQQ https://www.youtube.com/watch?v=OJb8A6h9jQQ — “How I Learned to Stop Worrying and Trust the Database”