So far, we’ve assumed data are read-only
Life gets more complicated when the data can change
Takes 30 ms for light to make round trip Canada/Europe
A user in Vancouver adds a comment to an article while another user in Budapest comments on the same article
We have users accessing a database from Halifax and Surrey. What happens if the cross-country backbone temporarily degrades?
Once again, we have users in Halifax and Surrey. Suppose we store Surrey user’s data in Surrey and Halifax user’s data in Halifax.
Durability alone might require us to distribute our data, even when it is only used locally.
Takada: Availability is the proportion of time a system is in a functioning condition. If a user cannot access the system, it is said to be unavailable.
Assume message unreliability:
What happens when messages are delayed or lost between two nodes?
How do you coordinate updates when you have multiple copies of a database?
Different grades of consistency
Read Distributed systems for fun and profit, Chapter 1, from “What we want to achieve: Scalability and other good things”, up to and including, “What prevents us from achieving good things?”.
This book is a good introduction to the issues of designing cloud systems. The book’s title refers to “Distributed Systems” but as he states in the Introduction,
This text is focused on distributed programming and systems concepts you’ll need to understand commercial systems in the data center.
This reading defines the vocabulary he will be using in later readings. It is review but the concepts are worth considering again.