tags : Distributed Systems, Eventual Consistency, Clocks

What?

  • Consistency As Logical Monotonicity
  • Provide a way to reason through the behavior of systems under Eventual Consistency
  • Provide a path to data structures with behavior that’s easier to reason about than last-writer-wins

Resources

  • CALM (see, for example, “Keeping CALM: when distributed consistency is easy”, https://arxiv.org/pdf/1901.01930.pdf) is one of the most useful theoretical ideas in distributed systems. Monotonicity is a super powerful tool for thinking about the kinds of calculations and updates that can be done without coordination, which is useful for stuff like this (reasoning about readers in an eventually consistent database), and for related problems like HPC and writing multithreaded programs.
    • The work in this paper interests me because, while CRDTs provide a really nice mental model for writers and for what happens in the database at rest, its much less clear what they mean for readers and what happens in the database during an interleaved stream of updates and reads. There’s been some other work on this (e.g. somebody pointed me at ElectricSQL, which I haven’t looked at yet), but I really like this angle.
    • See crdt