The Datacenter Needs an Operating System

Clusters of commodity servers have become a major computing platform, powering not only some of today’s most popular consumer applications—Internet services such as search and social networks—but also a growing number of scientific and enterprise workloads [2]. This rise in cluster computing has even led some to declare that “the datacenter is the new computer” [16, 24]. However, the tools for managing and programming this new computer are still immature. This paper argues that, due to the growing diversity of cluster applications and users, the datacenter increasingly needs an operating system.1 We take a broad view of an operating system as both a software layer that manages and abstracts hardware and a package of tools, such as programming languages and debuggers, that facilitate the use of a computer. Traditional OSes for a single computer play several key roles. First, they enable resource sharing between programs and users, allowing a computer to be used for multiple tasks and to respond interactively to several users. Second, they enable data sharing between programs, through abstractions such as pipes and files, so that users can combine independently written applications to solve problems. Third, they provide programming abstractions that simplify software development. Finally, OSes include system-wide debugging and monitoring facilities. Together, these features have allowed singlecomputer operating systems to foster a rich ecosystem of interoperable applications that we now take for granted. Much like the first computers, the first datacenters ran a small number of applications written by expert users. This situation is changing now, and we believe that datacenters need an OS-like layer for the same reason computers did: a rising diversity of applications and users. On the application side, there is an increasing number of cluster computing frameworks (e.g., MapReduce [10], Dryad [17], Pregel [21]) and storage systems [12, 9, 14], each suited for different use cases. Ideally, an organization should be able to dynamically share resources between these applications, and to easily exchange data between them (e.g., have a job that combines MapReduce

[1]  Andrew R. Cherenson,et al.  The Sprite network operating system , 1988, Computer.

[2]  Robbert van Renesse,et al.  Experiences with the Amoeba distributed operating system , 1990, CACM.

[3]  GhemawatSanjay,et al.  The Google file system , 2003 .

[4]  Sanjay Ghemawat,et al.  MapReduce: Simplified Data Processing on Large Clusters , 2004, OSDI.

[5]  Michael Burrows,et al.  The Chubby Lock Service for Loosely-Coupled Distributed Systems , 2006, OSDI.

[6]  Brett D. Fleisch,et al.  The Chubby lock service for loosely-coupled distributed systems , 2006, OSDI '06.

[7]  Randy H. Katz,et al.  X-Trace: A Pervasive Network Tracing Framework , 2007, NSDI.

[8]  Werner Vogels,et al.  Dynamo: amazon's highly available key-value store , 2007, SOSP.

[9]  Yuan Yu,et al.  Dryad: distributed data-parallel programs from sequential building blocks , 2007, EuroSys '07.

[10]  Albert G. Greenberg,et al.  The cost of a cloud: research problems in data center networks , 2008, CCRV.

[11]  Ravi Kumar,et al.  Pig latin: a not-so-foreign language for data processing , 2008, SIGMOD Conference.

[12]  Wilson C. Hsieh,et al.  Bigtable: A Distributed Storage System for Structured Data , 2006, TOCS.

[13]  David A. Patterson,et al.  Technical perspective: the data center is the computer , 2008, CACM.

[14]  Luiz André Barroso,et al.  The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines , 2009, The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines.

[15]  Andrew V. Goldberg,et al.  Quincy: fair scheduling for distributed computing clusters , 2009, SOSP '09.

[16]  Aart J. C. Bik,et al.  Pregel: a system for large-scale graph processing , 2010, SIGMOD Conference.

[17]  Joseph E. Gonzalez,et al.  GraphLab: A New Parallel Framework for Machine Learning , 2010 .

[18]  Marcos K. Aguilera,et al.  Location, location, location!: modeling data proximity in the cloud , 2010, Hotnets-IX.

[19]  Scott Shenker,et al.  Delay scheduling: a simple technique for achieving locality and fairness in cluster scheduling , 2010, EuroSys '10.

[20]  Scott Shenker,et al.  Spark: Cluster Computing with Working Sets , 2010, HotCloud.

[21]  Anant Agarwal,et al.  An operating system for multicore and clouds: mechanisms and implementation , 2010, SoCC '10.

[22]  Frank Dabek,et al.  Large-scale Incremental Processing Using Distributed Transactions and Notifications , 2010, OSDI.

[23]  Luis Ceze,et al.  Deterministic Process Groups in dOS , 2010, OSDI.

[24]  Randy H. Katz,et al.  Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center , 2011, NSDI.

[25]  Sen Hu,et al.  Efficient system-enforced deterministic parallelism , 2010, OSDI.