I’m a Ph.D. student interested in fault-tolerant distributed systems. I believe that, by finding the right abstractions, writing distributed systems can be made just as easy as single-threaded code. Several avenues I’m excited to explore are:
Automatic garbage collection of actors, so they do not need to be terminated manually.
Types and static analysis that alerts the programmer about unexpected race conditions.
Making interaction protocols easier to understand by replacing the event-driven control flow of message-passing with structured programming idioms like loops and exceptions.
One of my main projects is developing a low-overhead garbage collector for networked actor systems. This is still an active research problem because the only general-purpose algorithm known to be performant (implemented in the multicore Pony runtime) depends on causal message delivery, which may impose too high an overhead for networked systems written with Erlang or Akka Cluster.
- Dan Plyukhin and Gul Agha. A scalable algorithm for decentralized actor termination detection. Logical Methods in Computer Science, 2022.
- Dan Plyukhin and Gul Agha. Scalable termination detection for distributed actor systems. In Igor Konnov and Laura Kovács, editors, 31st International Conference on Concurrency Theory, CONCUR 2020, September 1-4, 2020, Vienna, Austria (Virtual Conference), volume 171 of LIPIcs, 11:1–11:23. Schloss Dagstuhl - Leibniz-Zentrum für Informatik, 2020.
- Dan Plyukhin and Gul Agha. Concurrent garbage collection in the actor model. In Proceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control, AGERE 2018, 44–53. New York, NY, USA, 2018. ACM.