My only requirement for your project is that it contain some relevant new contribution over what we (as a society) currently know. Your contribution need not be ``big;’’ in fact, I recommend that you limit the scope of your project drastically. Below are a few sample project ideas. However, I expressly encourage you to think of your own ideas. If you have a problem that’s bothering you, think of how you could build a system to solve it. Chances are that you’ll end up with a distributed system :).
If you’re interested in researching new data protection abstractions for large-scale machine learning systems, come talk with me. I have many exciting projects looking for a leader.
If not, here are a few example ideas:
Profile the performance or scalability of an open-source distributed system you’re interested in. Choose your methodology and workloads carefully. Build the profiling infrastructure well.
Analyze the consistency properties of some existing system, either live or open-source. Here are links to some cool projects that evaluate semantics of various distributed systems with failures: jepsen project, jepsen talk.
Related to the preceding two ideas – do you have a cool open-source distributed system of which you’ve heard recently, and which you’d like to check out? You can turn that into a project for this class! Just get it running, build some applications or workloads on top, and evaluate it from some perspective.
Build a distributed storage system (or extend an existing one) that minimizes the amount of data that is accessible at any point in time to the minimum required by a particular applications running on top.
Add the ability to track the flow of information in a distributed computation system, such as Spark or Velox.
For those of you more driven by applications and application development, you could develop some new data-driven Internet-of-Things (IoT) applications. If you could collect any kind of data about the users, what cool applications would you build to solve some interesting problem in a new way?
Other topics that have attracted students in the past have been around building storage systems with some new feature or data model; in-browser peer-to-peer computation; detecting personalized portions of web pages automatically (awesome project!).
Here are some links to other interesting lists of projects from where you could get inspiration:
Remember that your ideas are also greatly appreciated!