Comp150CPA: Clouds and Power-Aware Computing
Classroom Quiz 1 Review
Spring 2010
group member 1: ____________________________ login: ______________
group member 2: ____________________________ login: ______________
group member 3: ____________________________ login: ______________
group member 4: ____________________________ login: ______________
group member 5: ____________________________ login: ______________
Quizzes will (of course, given our format) closely follow lectures and
in-class
exercises. Problems will be similar to those on the exercises. My
quizzes -- by definition -- concentrate on "what things mean" and not
on broader impacts; you will not see a so-called "advanced"
question on the quiz! I will be emphasizing the following issues:
- Basics of clouds
- Kinds of clouds
- Strong and eventual consistency.
- Strong and weak concurrency.
- Google AppEngine
- Inside a client and a server.
- Asynchronous interaction.
- Constraints of AppEngine programming.
- JDO and distributed persistence.
- Cloud architecture
- SLAs and SLOs
- Scalability and elasticity.
- Virtualization and deployment.
- The timing diagram of a service request.
- Relationship between timing and load.
Remember that while this is a group experience, on the quiz, you will
be alone. No books, notes, or electronic devices are allowed.
Here are some sample questions of the kind I am planning:
- Consider the program in hw01 and suppose you run it (or something
equivalent) in an unknown cloud. What experiment can you do to tell for
yourself whether a cloud environment has strong or eventual consistency?
What would change about hw01's behavior in each case?
- Suppose that in Google AppEngine your synchronous interface for a
service is:
public interface PersistentThingService extends RemoteService {
Foo doSomething(Bar s);
}
Please fill in the blanks so that the following represents its asynchronous
interface:
public interface PersistentThingServiceAsync {
________________ doSomething(________________ t, AsyncCallback<________________> callback);
}
- Considering Hw01, if you multiply the number of servers running your
service by three, what aspects of performance change, and by about how much?
- Why can't the high watermark for a service be set at the SLA limit?
- Compute the load average for the following schedule:
thread 1 |
computing |
ready |
-------- |
computing |
--------- |
thread 2 |
ready |
computing |
-------- |
computing |
computing |
thread 3 |
-------- |
-------- |
-------- |
ready |
computing |
- Based upon the above schedule, how many cores must the CPU have?
- While the schedule above has a well-defined load average, it cannot
happen in practice. Why?
- What is bad about allowing services to store local data
in a server instance?
- Suppose you create a persistence-capable object e and then call
pm.makePersistent(e). What is the difference in behavior of the
object before and after the makePersistent call? Do you handle the
object differently when modifying it?
- Please fill in the blanks to complete the sentence: The difference between an SLA and an SLO is that the SLA specifies ________________ while the SLO just specifies desires.