These are notes taken during CMSC 818e: Distributed And Cloud-Based Storage Systems. Course webpage and syllabus here.
The readings for class today:
These readings are “postcards from the front” of applications – two readings about Facebook’s distributed system implemention
Sharding - have a big table but don’t want to have to search through all the rows; so put some of the rows in some places and others in other places. Sharding is a form of horizontal partitioning. Sharding across multiple schemas (which in this case means different combinations of tables from a database).
“Local consistency” in the case of the Existential Consistency paper means composable - defined at the object level; all accesses to ‘x’ are linearizable. Can be enforced at a single replica (causal consistency is an example of local consistency). Only looking at a small subset of the vertices - in other words, local by definition.
Local sequential consistency - all accesses conform to a single total ordering. But, that ordering doesn’t have to conform to reality.
98% reads, so not many anomalies because not many writes. But, likely undercounted anomalies by adjusting for clock skew. Nevertheless, the cost of anomalies is nothing in the case of Facebook, so there wouldn’t be much benefit to implementing strong consistency.