![]() |
Vivek PaiAssociate Professor& Associate Chair |
35 Olden Street Princeton, NJ 08540 off: 609-258-2086 fax: 609-258-1771 vivek@cs.princeton.edu |
Graduate School Applications |
Research |
Publications |
Students |
Teaching |
Brief Bio |
Long Bio
Network Server Design & Performance
Operating Systems
Networking
High-Performance Applications
Content Distribution Networks
Robustness, performance under load
Security, fault tolerance
The CoDeeN Content Distribution Network
CoDNS - a reliable name lookup service
CoBlitz and CoDeploy - scalable large file transfer and update
CoMon and CoTop - monitoring tools
My recent publications are available in the publications section of Princeton's Network Systems Group pages.
My older publications are available separately.
My current PhD-track students:
Anirudh Badam
Sunghwan Ihm
Wonho Kim
Michael Golightly
My former students:
Lindsey Poole, now at Amazon
KyoungSoo Park, PhD, now at University of Pittsburgh
Limin Wang, PhD (shared with Larry Peterson), now at AT&T
Yaoping Ruan, PhD, now at IBM TJ Watson
Other students I've worked with:
Ming Zhang, PhD (advised by Randy Wang), now at Microsoft Research
|
Fall 2008 - COS 217
Introduction to Programming Systems |
Spring 2009 - COS 598C
Systems Support for Developing Regions |
|
Fall 2007 - CoBlitz
Sabbatical |
Spring 2008 - CoBlitz
Sabbatical |
|
Fall 2006 - Multiple
COS 126 Preceptor - General Computer Science COS 561 Co-Teacher - Advanced Computer Networks COS 397/497/JIW/SRT - Independent Work |
Spring 2007
COS 397/497/JIW/SRT - Independent Work |
|
Fall 2005 - COS 518
Advanced Operating Systems |
Spring 2006 - COS 217
Introduction to Programming Systems |
|
Fall 2004 - COS 518
Advanced Operating Systems |
|
|
Fall 2003 - COS 518
Advanced Operating Systems |
Spring 2004 - COS 461
Computer Networks |
|
Fall 2002 - COS 318
Operating Systems |
Spring 2003 - COS 461
Computer Networks |
|
Fall 2001 - COS 318
Operating Systems |
Spring 2002 - COS 598B
Scale & Performance in Network Servers |
|
Fall 2000 - COS 318
Operating Systems |
Spring 2001
On leave at iMimic Networking |
|
Spring 2000 - COS 598F
Scale & Performance in Network Servers |
Please read this page before asking me questions about applying to graduate school. It contains answers to some of the questions I receive most often, and it saves everyone involved much time and effort. Following the directions shows that you value my time just as I would hope that you would like others to value yours.
Before joining Princeton in Spring 2000, Vivek Pai received his PhD from Rice University in 2000, under the direction of Willy Zwaenepoel and Peter Druschel. His research focused on OS, application, and cluster-level techniques for improving server performance. At Princeton, he continues working in server performance, but has also addressed issues related to security and reliability in wide-area systems, such as content distribution networks. He is one of the founders of iMimic Networking, where he helped architect and develop the fastest Web proxy server in the world.
Most of my research revolves around making better use of networked systems, such as Web/DNS/proxy servers, and the clients that use them. All of my research aims to be practical and historically has made its way to live systems within a few years. Working in the same general area over a number of years also means that various pieces of originally unrelated work have come together nicely in various ways.
Most of my original work was related to improving Web server performance. In this vein, I developed a high-performance research Web server, known as Flash, which separated in-memory request processing from on-disk request processing. At the time of its development, it was one of the fastest Web servers in the world. Since then, virtually every new high-performance server has implemented an architecture similar to what Flash used. In recent work, Yaoping Ruan and I updated Flash to scale better on large systems and handle much more demanding workloads, such as SpecWeb99.
I also developed techniques for spreading requests within a cluster of Web servers, and OS-level techniques for improving performance by reducing buffer copying. The cluster work, known as Locality-Aware Request Distribution, is available on a number of commercial load balancers in some form or another. The OS improvements and the performance achieved by them help motivate the use of zero-copy data transfer in various systems.
While I still do some work on server design and performance, most of my time recently has shifted to PlanetLab-related projects, mostly centered around the CoDeeN content distribution network. This project was one of the earliest high-traffic projects on PlanetLab, attracting millions of requests daily as early as 2003. Now, some 20+ billion requests later, it receives over 25 million requests per day, making it the busiest service on PlanetLab by request rate. The underlying proxy CoDeeN uses was one I developed at a startup I founded, iMimic Networking. This proxy was licensed to roughly a dozen OEMs, and it broke virtually every record for Web proxy servers, including raw throughput, latency, price/performance, performance per rack, disk performance, etc. On some of these metrics, it performed 5-10 times better than some of our much larger competitors. I also developed a lightweight interface that allows people to program the proxy server, which is what CoDeeN uses to make life easier. iMimic was acquired in 2005, and our acquirer was then acquired by Cisco.
Using CoDeeN as a basis, we (most definitely in the collective sense) developed a number of other services:
CoDNS applies CDN principles to DNS lookups, and provides much higher DNS lookup performance and reliability, with a fraction of the overhead used by other approaches. It was operational and handling thousands of requests daily by Fall 2003, when we first presented it at a PlanetLab meeting at RPI. It now provides the fastest, most reliable, and most widespread DNS lookup service on PlanetLab.
PlanetSeer quietly monitors CoDeeN traffic, looking for network-level anomalies. When it finds them, it launches active probing, attempting to confirm and pinpoint the anomaly. This approach has led it to confirm anomalies at a rate 100 times higher than previous work, using only 3 times as much probe traffic.
CoBlitz provides scalable large-file transfer from PlanetLab machines to the general public. It runs on top of CoDeeN, but splits large files to spread them across the CDN. In this manner, we can easily serve files as large as several gigabytes, without having to worry about overloading nodes or re-fetching the entire file when nodes leave PlanetLab. This system and its predecessor, CoDeploy, have been in operation since April 2004. It is currently used by CiteSeer, and also serves as a Fedora Core mirror. A number of other PlanetLab projects also use it to distribute their software and perform updates.
Throughout all of this, I have been pleased to work with a number of really good students. For them, it has undoubtedly been challenging to perform research and also build usuable systems instead of just paper designs and simulations. However, in the end, I think they've all come out of the process better for it. I look forward to seeing what they'll be doing a decade from now.