Latency vs. Linearizability
October 29, 2018
For this week in our distributed systems class, we read the Spanner and RIFL papers. Again, it feels like we’re ocillating between two types of papers; the theory papers that prove correctness and then quibble over latency numbers using synthetic datasets, and industry papers that demonstrate peformance under real, significant load, but can’t prove much of anything. In this post, we’ll explore both RIFL and Spanner in a bit more depth.
Slightly More Consistent
October 28, 2018
Over the last few weeks, we’ve spent a lot of time with eventual consistency. Therefore it’s useful to revisit causal consistency, which while still a “weak” consistency model, is stronger than eventual because everyone within the system agrees on the order of operations that are causally-related. However, causal consistency does not impose order on concurrent operations.
Sinfonia and Dynamo
October 23, 2018
An exploration of alternative approaches to building distributed systems, including Sinfonia’s object-oriented approach, and Dynamo’s highly available key-value store.
Global Data Storage and Distributed Hashing
October 21, 2018
In the late nineties and early 2000’s, the question of how best to support decentralized filesystems became a very hot and relevant topic. From Napster to Gnutella to Limewire and Kazaa, it suddenly became clear that data storage was a problem of social network behaviors just as much as it was one of hardware efficiencies. In the Chord and OceanStore papers, we get some insight into academia’s algorithmic responses to the p2p revolution.
Bolt-on Availability with Salt
October 16, 2018
A number of the papers we’ve read and the implementations we’ve been discussing so far in 818 have concerned systems that favored availability over consistency; in these papers, the discussion has been about how to achieve an acceptable amount of consistency in an AP system. The “Salt: Combining ACID and BASE in a Distributed Database” takes a different tack; in this paper, Xie et al assume a traditional transactional RDBMS as the starting point, and introduce a bolt-on approach to availability.