Week 7, Monday (February 24, 2014)

S…tuff gets real

So far, we’ve assumed data are read-only

Life gets more complicated when the data can change

Example 1: Geographic time lag

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?

Example 3: Machine failure

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.

Availability

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.

Partitioning

What happens when messages are delayed or lost between two nodes?

Consistency

How do you coordinate updates when you have multiple copies of a database?

Guide to reading for next class

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.