Assignment 3: Using Google Cloud VMs
Due: 2020-10-15

1 Summary

In this assignment, you will be deploy your memcached-lite service on public cloud VMs.

2 What to Implement

  1. Create free tier account
  2. Create ssh key for passwordless login
  3. Launch a small VM
  4. Install your Memcached-lite server
  5. Launch another small VM to act as the client
  6. Run a series of small tests to measure the performance of your server
  7. Compare performance with similar workload but with google's key-value store
  8. Make sure all VMs are turned off and all storage is deleted

3 Report

  1. Operations that you performed
  2. Cost of various operations
  3. Performance of memcached-lite vs. google key-value store

4 What to Submit

You must submit your code, examples, test-cases, and a report.

Your code should run on the SICE Linux servers (sharks, silo, etc.). You should submit all the code in a zip file on canvas. The submission should be self contained as much as possible—if you are using a non-standard library, then try to include it.

It is strongly encouraged to use Makefiles (if required) to compile and run the client and servers. You can use any widely available programming language (C, C++, Python, Java,…), but you must ensure that it compiles and runs on

Think carefully of how you can test the code for correctness, and provide at least one interesting test case.

The report should have describe the design details, and some experimental evaluation (what is the performance of your server? how many concurrent clients have you tested with?, etc). You should also describe the limitations of your server. What are the key and value size limits? Concurrency limits? Kind of errors that you do not handle? Future improvements etc.

Component Weight
Server 50%
Client 30%
Report 20%
Bonus 20%

5 Future Assignment Tasks

These are the improvements you will make to memcached-lite (in future assignments):

  • Deploy on cloud and measure the response time curves
  • Distributed implementation behind load balancer
  • Auto Scaling
  • Distributed strong consistency

Author: Prateek Sharma

Created: 2021-08-18 Wed 13:13