This page contains a collection of ideas for research projects that could potentially turn into nice PhD dissertations.

Large-scale low-latency RPC

The overall question is: what is the right software architecture for network communication in large-scale low-latency datacenters of the future?

The current RAMCloud RPC system is just the first step in answering this question, but it is primitive and lacking in several areas. Here are some issues that are worth exploring:

Higher-level data model

The current RAMCloud data model is quite low-level: key-value store. We would like to explore higher-level mechanisms, to understand if they can be implemented without sacrificing the scale and latency required for RAMCloud. Here are some possible features:

There are many questions to be answered, such as:

Cluster management

RAMCloud currently has almost no facilities whatsoever for cluster management. Here are some of the important issues that need to be understood:

Tail latency

Measure RAMCloud in action to understand how much variation there is in the latency for basic operations such as reads and writes (preliminary evidence suggests that there is a significant issue with tail latency). Then figure out what is causing tail latency (this is likely to involve the Linux kernel as well as RAMCloud) and develop mechanisms to improve it.

Notification

Sooner or later, every storage system needs a notification mechanism: some clients want to know when certain elements of the storage system are modified. For example, databases have triggers. Design and implement a notification mechanism for RAMCloud:

Memory Hierarchy

Storing all data in memory is expensive, but storing some on flash and disk raises a ton of questions.