Have you considered using this as a test bed to explore alternative architectures and approaches? The classical Volcano architecture used here has been established for many decades, and it could be fun exercise to see what can be done to improve on it, while remaining true to the original goal of having something that's purely for educational purposes.
It’s the first productionization of leaderless consensus protocols. It merges strict serializable transactions into the consensus layer (in 1RTT on the fast path), and has sharding built-in including cross-shard transactions.
It doesn’t support interactive transactions though, so it’s not a drop-in for SQL systems (but I don’t think they are suitable in modern systems anyway, given the latency cost). And it requires quorum reads, since it can’t use leader leases (for obvious reasons), so reads may end up being too slow for many georeplicated setups. But it’s a neat design.
Super cool project and the code is delightfully readable as well!
I had the pleasure of having Erik advise me for my thesis on distributed databases a few years ago. I’m very lucky to have had the chance to tap into his knowledge on all things distributed systems. On top of being super knowledgeable he’s also a terrific teacher!
It's been abandoned for some years, the author was working on a new engine for it and in the last 5 days they started working again on sled proper. However, it's pretty good the way it is (the 0.34.7 release from 2021 https://crates.io/crates/sled), despite the beta warnings
It already uses a key/value store for on-disk storage, but you’ll have to write the server API and client yourself, along with a Raft state machine layer. It’s not a big lift though, and could make a fun weekend project.
Have you considered using this as a test bed to explore alternative architectures and approaches? The classical Volcano architecture used here has been established for many decades, and it could be fun exercise to see what can be done to improve on it, while remaining true to the original goal of having something that's purely for educational purposes.
reply