David C
- Research Program Mentor
PhD candidate at University of California Berkeley (UC Berkeley)
Expertise
distributed systems, databases
Bio
Hey kids. Distributed systems are cool because 1. Even though it's called "systems", it's actually very theory-focused, so you think a lot about protocols & logic instead of dealing with annoying low-level implementations, and 2. You can see applications of it everywhere in real life! Delegating roles in a group project? Standing in line to order food? Messaging your friends? All distributed systems! I'm a 4th year PhD student researching at UC Berkeley. Outside of research, I love cooking, playing badminton, playing piano, and going to classical music performances. I highly recommend Beethoven's Op. 111.Project ideas
Randomized probabilistic consensus
You just had a massive burger and died. The guards at heaven give you 1 task: find a unique HSN (heaven security number) for yourself. They'll check on everyone in an hour, and anyone who does not have a unique HSN isn't going to heaven. An hour isn't long enough to coordinate with everyone who's died to find a unique HSN, so you go for the next best thing: generating a random one. Turns out, this is very applicable to distributed systems: a bank, for example, needs to decide the order in which transactions happen, ideally without coordinating with all bank computers, which can take a long time. This is the classic problem of consensus: now the question is, can having transactions randomly self-assigning an order reduce the coordination required, which probabilistically guaranteeing the same thing?
Mario online
2 player games are not too hard to make on a single computer. But how do multiplayer online games work? What happens when both players' computers claim the characters are occupying the same block? What happens when 1 computer is always lagging behind the other?