syllabus      details      course structure      schedule      reading list      miscellaneous     

Examples of Past Projects

Race Condition Prevention for CASQL Database Management Systems

Students: Yiheng Wang and Dailin Liu
Summary: Nowadays, query intensive applications such as social network websites enhance the performance by extending the Relational Database Management System (RDBMS) with a middle-tier cache system. Write through a KVS can leverage main memory effectively and offer ACID consistency using an RDBMS at the same time. An example is Memcached in use by very large well know social network websites like Facebook, Twitter and Youtube. Unfortunately, such caches cannot maintain transactional consistency across the entire system, violating the isolation properties of the underlying database. Gumball Technique (GT) proposed by Shahram Ghandeharizadeh and Jason Yap [1] appears to be a good solution to race condition in Cache Augmented DBMSs(CADBMS), but leaves a key design challenge of when to delete the tombstones making deleted objects. In this paper, we implements Gumball Technique in a open-sourced KVS called Memcached, improves the performance by refining the strategy of managing "gumballs" in the cache system and further evaluates and compares the performance of the system under different workloads.

Analysis and Prediction of Transaction Latency in MySQL

Students: Zichao Fu, Liuyi Wang, and Sen Cai
Summary: In this project, we profiled a MySQL based OLTP system to investigate why different fraction of transactions affects the running latencies and which system calls result in these latency differences. We have conducted a series of experiments and gathered enough data to explore the problems. We found from our data that the percentage of transactions that involve heavy update operations is linearly correlated with the running time and the system calls which involve locking operation contribute most to the increasing running time when running multi-users rather than a single user in an OLTP system. We hope the results of our experiment can give future researchers help and hints to continue the research in analyzing OLTP transaction latencies.

WaferDB: Caching Middleware for JavaScript

Students: Matthew Kneiser, Vijairam Parasuraman, and Balaji Soundararajan
Summary: Modern web applications have strict requirements for low latency and high bandwidth. A lot of the current solutions tackle either one of these requirements, but not both. We propose a new open-source framework that addresses these issues so that developers can build better applications in less time. WaferDB is a JavaScript library that client-side Web appli- cations can use to access a database. From the client’s per- spective, WaferDB is the entire key-value datastore. From the server’s perspective, WaferDB is a caching layer. The database behind WaferDB can either be local to the web server, or a remote cloud service. The main purpose of WaferDB is to provide an easy-to-use client-side API for data access, as well as a layer that reduces latency to clients of a webserver. This layer will cache objects on the client whenever possible and will be backed by a shared, server- side database system. In other words, WaferDB is a caching middleware for JavaScript that allows a client to cache all kinds of data in native JSON format. The server maintains metadata about all the client-side caches and coordinates consistency between the caches. The client-side module first checks its cached datastore before sending requests to the server. The server-side module of WaferDB directly queries the database when it needs to satisfy a request. We have implemented a policy to keep the module independent of the persistent storage of data on the back-end. With minimal effort, users can swap out the database that backs WaferDB. Our evaluations show that WaferDB achieves an average speedup of 2.2x with a maximum speedup of around 44x against conventional JavaScript applications that make use of native XMLHttpRequest calls.