7 ms·
Jepsen: Redis-Raft 1b3fbf6
- ses1984 6y agoThank you for this, love this work.
- agustif 6y agoI'm not even a DBAdmin or something, and I probably get 20% of these, but I enjoy reading them thoroughly
- rantwasp 6y ago20% is better than 0% and having the curiosity to learn about is what’s essential
- LeafMeAlone 6y agoInteresting read as always! Small typo, I believe the link in the sentence Tangentially, we were surprised to discover that Redis Enterprise’s claim of “full ACID compliance”... was copy/pasted incorrectly
- tlhunter 6y agoAnother typo is: > In future work, we believe it be prudent to explore other types of operations: GET and PUT, perhaps, or operations on sets. Should say GET and SET.
- benschulz 6y agoIt's unbelievable how hard to grasp distributed systems are. I recently implemented Paxos in Rust and at certain points I literally thought I was losing my mind. When you read Paxos Made Simple it really all seems so, well, simple. But then you get inconsistent commits and look at the traces of what happened and just go "How?!"
- aphyr 6y agoOne of the things that surprised me about this analysis was just how many bugs we found that had to do with the actual Raft implementation. Usually when I test Raft-based systems the bugs are at the edges--like the coupling of the system to the Raft library, treating it like an externally-queryable log rather than the driver of a state machine, and so on. We found integration bugs here too, but also a fair number of issues in the Raft library itself--and this is despite Redis-Raft having existing integration tests! This stuff is hard!
- Diggsey 6y agoWas the C Raft implementation in use a pre-existing library, or was it developed specifically for Redis-Raft?
- aphyr 6y agoPre-existing! It's a fork of willamt's https://github.com/willemt/raft/ https://github.com/willemt/raft/, which has been around since 2013, and has property-based fuzz testing! It really does look like it's got its own extensive tests; I'm surprised we found issues.
- anentropic 6y agothis is kind of terrifying
- Serow225 6y agoHas anyone approached Jepsen about running an analysis on the Erlang Ra implementation? I believe they've been running Jepsen tests internally, just curious if they're thinking about getting an official analysis at some point. Thanks for all that you folks do!! * https://github.com/rabbitmq/ra https://github.com/rabbitmq/ra
- aphyr 6y agoNo, we haven't talked yet, but I would like to someday. :)
- shay_ker 6y agoIt's awesome to see this being done in the development phase. There's so much to learn, even just from the feedback cycle between aphyr and RedisLabs.
- DevKoala 6y agoThe scrutiny this release is going through makes me confident that the Redis Labs team will deliver in the end. Also, if you are looking for a linearly scalable distributed pub-sub with strong guarantees around consensus and message persistence, it might be worth looking at Apache Pulsar.
- ris 6y agoSo, "work in progress".
- tlhunter 6y ago20 of the identified 21 issues have been fixed.
- zxexz 6y agoWow, Aphyr is on a roll! Mongo, PostgreSQL and Redis-Raft analyses all published in a window of ~5 weeks! I really enjoy the Jepsen analyses and they've made me think a lot harder about distributed systems. Thanks!
- aphyr 6y agoPart of this is release timing--the Dgraph and Redis analyses were mainly done in Q1 of this year, and I was able to write and release the Mongo & PostgreSQL reports on my own schedule. Wish I were that productive! ;-)
- Rapzid 6y agoNot nearly as engaging without the Barbie dolls.