Yiming Qiu, a third year Computer Science Ph.D. student at Rice University, has co-authored eight research papers and is the lead author for five of them. Qiu presented the most recent paper – "Synthesizing Runtime Programmable Switch Updates" – at the USENIX Symposium on Networked Systems Design and Implementation (NSDI).
Qiu first enrolled as a student in Rice’s professional master of computer science (MCS) program in fall 2019. He said, “Most of my MCS classmates were busy with job hunting, but Professor Robert ‘Corky’ Cartwright – who taught the algorithms class I took my first semester at Rice – inspired me to look more closely at research.”
Following the advice of several Rice CS Ph.D. students, he approached Ang Chen, a CS faculty member whose research interests overlapped with work Qiu had done as an undergraduate.
“That turned out to be one of the smartest decisions I’ve ever made,” Qiu said. “Ang is so passionate about his research direction, to the point that he easily persuaded me to believe in it and work with him. After collaborating with Ang for several months, we submitted a workshop paper together.”
That paper, published one year after Qiu arrived at Rice, was written while Qiu was re-applying to Rice as a Ph.D. student. Since joining Chen’s lab, Qiu has collaborated on a wide range of projects. He said the encouragement and support of Chen and the other members of the lab enable him to continue trying new things. His most recent ‘new thing’ is the improvement of programmable network devices.
Qiu said, “Network switches can be compared to railroad track switches. In a busy rail yard, multiple switches keep simultaneous trains on track and on time. In networks, switches keep digital traffic moving smoothly. The newest programmable switches for networks are different from traditional switches in that you can define customized logic for these devices. For example, apart from keeping trains on track, we can ask them to do some monitoring – like counting how many trains are from Houston.
“This is very helpful, but what if we decide to count passenger cabins on those trains? Changing the logic on programmable switches is hard. Making a change to the logic means the programmable switch must be reflashed completely, and while we are reworking the switch, it cannot handle traffic correctly. Our lab, in collaboration with NVIDIA, is trying to solve this problem. So, we have developed techniques around a new generation of what we call runtime programmable switches, which allow the users to make changes while handling all the traffic.”
The paper Qiu presented at NSDI reveals FlexPlan, a solution that aims to automatically synthesize runtime programmable switch update plans. With FlexPlan, Qiu and his research collaborators provide formal guarantees to the generated update plans, ensuring they are both feasible and safe. Qiu, who is well-versed in communicating complex ideas, chose a different analogy to illustrate FlexPlan.
He said, “Suppose we work at a small store where we sell two kinds of fruit to our customers. We have been selling apples and pears, but our manager decides to replace them with oranges and bananas. The easiest way to do this is to remove the apples and pears, then fill the empty spaces with oranges and bananas. But in the interim, there is no fruit on the shelf and that violates a company rule requiring us to keep at least two types of fruit on the shelf around the clock.
“Another naïve solution is to just add oranges and bananas beside the existing apples and pears, but this is not always possible, particularly in stores with only three bins for fruit. A multi-step update plan would be to add bananas in the third bin and remove apples; that meets the two fruit minimum requirement and the maximum three bin restriction. Next, add oranges to the empty bin, then remove pears.”
Qiu’s analogy shows how the programmable switches (store employees) take appropriate actions to match defined logic (instructions). He jokes that just about the time the employees are feeling pretty good about their results, they learn there is another restriction they have not yet considered.
“In our analogy, another corporate policy says at least one ‘popular’ fruit must be displayed at all times. The manager tells us apples and oranges are most popular with our customers, so our first step – adding bananas and removing apples means only the least popular fruit – bananas and pears – are displayed. To update the multi-step plan, we must consider the space constraints and conform to the two fruit minimum and the one popular fruit requirements. Using the original configuration of apples and pears, we add oranges, remove pears, add bananas, then remove apples.”
“Now imagine that this is a real store with all different types of groceries and various capacity constraints as well as correlated requirements. Items quickly become untraceable. In our network setting, things are even worse because we need to reason about program behavior, not just the existence of certain items. This complexity has driven us to develop FlexPlan, which leverages formal reasoning for an automated solution.”
Chen said: “Yiming is an extremely talented researcher. He charts his own course even from the earliest days of his Ph.D. program. I’m constantly amazed by how Yiming comes up with new ideas by himself and pushes them forward independently. His heart is in the work and his passion is infectious. It’s been my real privilege working with him!”
The university collaboration includes researchers from Rice University, The University of Texas at Austin, and University of Washington. The group is developing more tools like FlexPlan and offers workshops to introduce their tools to additional users. Their runtime programmable network initiative – the FlexNet Project – is supported by a National Science Foundation (NSF) Computer and Network Systems (CNS) large grant for collaborative research.