Comp150CPA: Clouds and Power-Aware Computing
Classroom Exercise 5
Scalability and elasticity
Spring 2011

group member 1: ____________________________ login: ______________

group member 2: ____________________________ login: ______________

group member 3: ____________________________ login: ______________

group member 4: ____________________________ login: ______________

group member 5: ____________________________ login: ______________

In class we have studied the concepts of server scaling and service switching, and how they relate to AppEngine development caveats. Let's explore a bit more about these concepts.

  1. List the disadvantages of flow-based switching that motivate a flowless switching model.

  2. Draw a time-space diagram of a service that makes two queries into the datastore, and mark the parts that service switching can control.
  3. In the (strongly consistent) AppEngine datastore, writes don't block. Draw a time-space diagram of a service that only writes data into the datastore and does not read anything back from the datastore. What parts of this diagram can be controlled via service switching?

  4. Is an array of 10 server instances with flowless service switching about "twice as fast" as an array of 5 server instances that host the same services? Why or why not?

  5. (Advanced) Suppose that you have a datastore that exhibits eventual consistency, combined with a flowless service switch. If the datastore is not strongly consistent, how can the application be written so that subsequent interactions with the datastore (e.g., service requests to fetch the results of a prior transaction) retrieve strongly consistent data?