Low latency data processing

Big data is everywhere, and the underlying platforms must be able to support efficient data query and movement. This requires redesigning different layers of the data processing stack to extract…

Causality in distributed systems

Diagnosing problems in large systems has always been a challenging problem due to their complexity. Our project designs abstractions for tracking causal relationships between system states and their changes, and …

ML for systems software

Today’s systems are filled with diversifying applications. Theoretically, application performance could be optimized by leveraging target specific software frameworks and domain specific hardware. However, these attempts rely on domain expertise …

Programmable in-network security

Our vision is to transform a programmable network into a “programmable defense infrastructure”, which supports security as naturally as it does routing. In this design, a switch not only forwards …

Runtime programmable networks

Programmable network devices are reconfigurable without hardware upgrades. However, deploying new network features requires expensive maintenance procedures (e.g., to isolate, reflash, and redeploy network devices), which take careful planning over …