Programming Languages

My Dissertation is Now Available!

My dissertation is now available [here](/files/thesis.pdf)

Mixing Consistency with MixT: Technical Report Available!

Presenting MixT, our language for sanely mixing distinct consistency levels within a single transaction. Now in Tech Report form!

Gallifrey: a New Language for Distributed Programming

Gallifrey is a new programming language for distributed wide-area applications. Gallifrey programs share state via replication, granting fast access to data without introducing mandatory synchronization points, all while maintaining sequential consistency by default. Gallifrey aims to be easy-to-use, requiring a minimal annotation overhead atop an otherwise Java-like language.

Programming Replicated, Distributed Systems

Distributed Languages frequently either fail to capture replication, or insist in high-latency lockstep state machine replication. Storage systems which avoid both pitfalls often do so by weakening consistency. We try to rein in weak consistency and capture replication and concurrency, all while constructively avoiding races and allowing safe, loosely-synchronized replication.

Derecho: Programming the Datacenter

Derecho is a new framework for building replicated, fault-tolerant distributed systems within a datacenter. It provides a best-in-class consistent multicast abstraction, and is easy to use via user-defined replicated objects and RPC.