3 ms·
Sure, negation and deletion are non-monotonic. And sure, they require coordination and waiting if you really want serializability. But the modern default is sna
by sriram_malhar 6y ago
Sure, negation and deletion are non-monotonic. And sure, they require coordination and waiting if you really want serializability. But the modern default is snapshot isolation, and experience has shown that there are many many applications that are quite willing to live with this weaker level of isolation (eventual consistency). You can get monotonic reads/writes, without having to wait for all of them to respond, which is the point of this paper. Multi-version databases are lattices.
- jupp0r 6y ago> experience has shown that there are many many applications that are quite willing to live with this weaker level of isolation (eventual consistency) My experience has also shown that the effort for getting this right is vastly underestimated, initially and that eventually most of these many many applications end up with a set of bugs triggered by edge cases nobody thought about.
- hinkley 6y agothedailywtf used to be a fun place for seeing people answer the question, "what could go wrong?" but it got too dark or cringey for me (I can find dark without any help, thank you.) There's a whole ecosystem of minor catastrophes that don't quite warrant a blog post. Do we need a name for the Chesterton house on the corner of Dunning Way and Kruger Lane? At the same time, it's really hard to learn why that fence is there until you at least see someone else get injured by ignoring the signs, so in that respect TDWTF probably taught a lot of people about quite a few fences.
- j-pb 6y agoTbh I think you got it backwards. CALM is actually very much about eventual consistency. The gist is basically, that distributed systems are only eventually consistent iff they are logically monotonic. Coordination as used in this article basically means "needs to be decided by an authority". But because of CALM we know that in order to elect an authority/leader, you need a consensus algorithm that actually has monotonicity at it's core, like raft. There's a really great talk on this by Heidi Howard: https://www.youtube.com/watch?v=KTHOwgpMIiU https://www.youtube.com/watch?v=KTHOwgpMIiU I actually don't think that database isolation levels are a good way to talk about this stuff, because they are practical guarantees, not theoretical ones. Snapshot isolation for example also requires a leader. From a theoretical point of view there is no in between (at least none that I can see), either you are eventually consistent or you're not, either you are monotonic or you're not.