Title: Type-Aware Programming Models for Distributed Applications

Advisors: Luis Ceze and Mark Oskin

Supervisory Committee: Luis Ceze (co-Chair), Mark Oskin (co-Chair), Eric Klavins (GSR, EE), and Dan Ports

Abstract: Modern applications are distributed: from the simplest interactive web applications to social networks with massive datacenters around the world. In order to scale services and handle turbulent internet traffic, developers of distributed applications constantly balance fundamental tradeoffs between parallelism and locality, replication and synchronization, consistency and availability. Many layers of abstraction allow the complex ecosystem of servers, databases, and caches to operate independently but prevent them from optimizing for the needs of individual applications. Developers need systems that can help make those tradeoffs, but systems need to know more about the application first.

With new programming models, we can use type systems and abstract data types to communicate application semantics to distributed systems. The techniques we explored include: a compiler analysis called Alembic that uses knowledge of remote data accesses to automatically move computation closer to data, distributed data structures that allow threads to cooperate rather than contend, a datastore called Claret that uses knowledge of ADT semantics to expose concurrency between transactions, and a type system and runtime, IPA, that helps trading off accuracy for performance while ensuring consistency safety. By exposing concurrency and efficiency optimizations, these techniques contribute to the toolkit available to distributed application developers, making their lives easier and their software more robust.
 
Place: 
CSE 403
When: 
Friday, August 12, 2016 - 16:00 to 17:30