Jepsen: RethinkDB 2.2.3 reconfiguration
Whoaaaa. Membership is where things get nasty, this is awesome. Punting on dynamic membership due to it's extreme difficulty to get right is usually a good idea for many projects.I'm still struggling to understand what happens in a RethinkDB "reconfigure", especially around this epoch timestamp. Where does the wall-clock time come from, the raft leader of the shard?[0] I also need to read more and understand these value's necessity over any other generation id/sequence number type thing, I'm not sure I follow why they are used given the linked bug report[1]Also, after embarrassing myself earlier in the week[2], I'm trying my best to read every link in a post before making absurd claims. It's my much deserved penance. It seems there is one link that is broken in the post that I was curious to see due to my ignorance around Rethink's epoch timestamp stuff[3].[0]: https://github.com/rethinkdb/rethinkdb/blob/a90bb08051603621...[1]: https://github.com/rethinkdb/rethinkdb/issues/5289#issuecomm...[2]: https://lobste.rs/s/cnthlp/the_verification_of_a_distributed...[3]: https://aphyr.com/data/posts/330/link