
Jepsen: Redis-Raft 1b3fbf6 - aphyr
https://jepsen.io/analyses/redis-raft-1b3fbf6
======
benschulz
It'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
One 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!

~~~
Serow225
Has 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
No, we haven't talked yet, but I would like to someday. :)

~~~
e_proxus
Would love for Jepsen to take a stab at Erlang’s Mnesia database as well!

~~~
kungfooguru
Not really worth it since distributed mnesia is basically CA (in terms of CAP)
which shouldn't be a thing, but is in the case of mnesia :)

------
zxexz
Wow, 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
Part 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! ;-)

------
agustif
I'm not even a DBAdmin or something, and I probably get 20% of these, but I
enjoy reading them thoroughly

~~~
rantwasp
20% is better than 0% and having the curiosity to learn about is what’s
essential

------
shay_ker
It'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
The 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.

------
ses1984
Thank you for this, love this work.

------
LeafMeAlone
Interesting 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
Another 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.

------
Rapzid
Not nearly as engaging without the Barbie dolls.

~~~
aphyr
So many people were _very upset_ about the barbies. Now that they're gone, I
get complaints! Folks are never satisfied. :/

~~~
no-s
the barbies underlined that otherworldly air of surrealism you should employ
when experiencing unfalsifiable claims of serialization...

------
ris
So, "work in progress".

~~~
tlhunter
20 of the identified 21 issues have been fixed.

