Preface

Do you have a book on stable marriages?”, I asked her with a straight face1. It was the first book I was told to read at Stanford, and I knew full well where I could find it. But the moment of humor was there, waiting to be exploited. She looked at me as only a nineteen-year-old girl could — simultaneously playfully, flabbergasted, and unimpressed ...

Why is it hard to build high-speed routers? Because high-speed routers are like marriages: they are unpredictable, provide no guarantees, and become vulnerable in adversity. Not that I’m asking you to allow a 31-year-old unmarried male to lecture you about marriage — thankfully, this thesis makes no attempt to comment on human marriage, a topic about which the author is clueless.

This thesis is about solving the memory performance bottlenecks in building high-speed routers. More specifically, it is about managing and resolving the preferences and contention for memory between packets from participating inputs and outputs in a router.

“But no one really reads a thesis ...”, is a lament2 one often hears in academia. It’s a remark that is neither very motivating or useful for a grad student to hear. We humans are driven by the proud notion that the work we do (e.g., writing a thesis) has a point. I would like to challenge the notion that a thesis is not intended to be read. To that end, I have tried to structure the chapters so that they can be read independently.

Almost all the research pertaining to this thesis was done in the High Performance Network Group at Stanford University. The thesis was then written over ten months from October 2007 to July 2008, and is now being completed after four years of development and deployment of some of the academic ideas expounded herein (initially at Nemo Systems, and currently in the Network Memory Group at Cisco Systems).

My industry experience benefitted me tremendously, by giving me a sense of what is practical. Working in industry before finishing my thesis helped me ground my ideas in reality. It also enabled me to write from an insider’s perspective, which I hope to convey to you, the reader. While aging four years hasn’t made me any faster, I believe it may have improved the quality of the writing — you be the judge.

If you should find typos or errors of fact, please contact me: sundaes@cs.stanford.edu. Oh, and if you find mistakes in the proofs — you know what to do ...“Mum’s the word!” I hope that you will enjoy your reading, and that you’ll take away something of value. So long, and thanks for all the pisces ...

— Stanford, CA
July 2008

1Mathematical and Computer Sciences Library, Stanford University. See Chapter 4 for its application to networking.
2... If the work is interesting, they can always read your papers”.