skip to main content
research-article
Public Access

The IX Operating System: Combining Low Latency, High Throughput, and Efficiency in a Protected Dataplane

Published:09 December 2016Publication History
Skip Editorial Notes Section

Editorial Notes

A corrigendum for this article was issued in December 2017. Please refer to https://dl.acm.org/doi/10.1145/3154292

Skip Abstract Section

Abstract

The conventional wisdom is that aggressive networking requirements, such as high packet rates for small messages and μs-scale tail latency, are best addressed outside the kernel, in a user-level networking stack. We present ix, a dataplane operating system that provides high I/O performance and high resource efficiency while maintaining the protection and isolation benefits of existing kernels.

ix uses hardware virtualization to separate management and scheduling functions of the kernel (control plane) from network processing (dataplane). The dataplane architecture builds upon a native, zero-copy API and optimizes for both bandwidth and latency by dedicating hardware threads and networking queues to dataplane instances, processing bounded batches of packets to completion, and eliminating coherence traffic and multicore synchronization. The control plane dynamically adjusts core allocations and voltage/frequency settings to meet service-level objectives.

We demonstrate that ix outperforms Linux and a user-space network stack significantly in both throughput and end-to-end latency. Moreover, ix improves the throughput of a widely deployed, key-value store by up to 6.4× and reduces tail latency by more than 2× . With three varying load patterns, the control plane saves 46%--54% of processor energy, and it allows background jobs to run at 35%--47% of their standalone throughput.

References

  1. Mohammad Alizadeh, Albert G. Greenberg, David A. Maltz, Jitendra Padhye, Parveen Patel, Balaji Prabhakar, Sudipta Sengupta, and Murari Sridharan. 2010. Data center TCP (DCTCP). In Proceedings of the ACM SIGCOMM 2010 Conference. 63--74. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Thomas E. Anderson, Brian N. Bershad, Edward D. Lazowska, and Henry M. Levy. 1992. Scheduler activations: Effective kernel support for the user-level management of parallelism. ACM Trans. Comput. Syst. 10, 1 (1992), 53--79. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Berk Atikoglu, Yuehai Xu, Eitan Frachtenberg, Song Jiang, and Mike Paleczny. 2012. Workload analysis of a large-scale key-value store. In Proceedings of the 2012 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems. 53--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Luiz Andre Barroso. 2014. Three things that must be done to save the data center of the future (ISSCC 2014 Keynote). http://www.theregister.co.uk/Print/2014/02/11/google_research_three_things_that_must_be_done_to_save_the_data_center_of_the_future/.Google ScholarGoogle Scholar
  5. Luiz André Barroso, Jimmy Clidaras, and Urs Hölzle. 2013. The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines (2nd ed.). Morgan & Claypool Publishers. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Luiz André Barroso and Urs Hölzle. 2007. The case for energy-proportional computing. IEEE Comput. 40, 12 (2007), 33--37. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Arkaprava Basu, Jayneel Gandhi, Jichuan Chang, Mark D. Hill, and Michael M. Swift. 2013. Efficient virtual memory for big memory servers. In Proceedings of the 40th International Symposium on Computer Architecture (ISCA’13). 237--248. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Andrew Baumann, Paul Barham, Pierre-Évariste Dagand, Timothy L. Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. 2009. The multikernel: A new OS architecture for scalable multicore systems. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP’09). 29--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Adam Belay, Andrea Bittau, Ali José Mashtizadeh, David Terei, David Mazières, and Christos Kozyrakis. 2012. Dune: Safe user-level access to privileged CPU features. In Proceedings of the 10th Symposium on Operating System Design and Implementation (OSDI’12). 335--348. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Adam Belay, George Prekas, Ana Klimovic, Samuel Grossman, Christos Kozyrakis, and Edouard Bugnion. 2014. IX: A protected dataplane operating system for high throughput and low latency. In Proceedings of the 11th Symposium on Operating System Design and Implementation (OSDI’14). 49--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Steven M. Bellovin. 2004. A look back at “security problems in the TCP/IP protocol suite.” In Proceedings of the 20th Annual Computer Security Applications Conference (ACSAC’04). 229--249. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Edouard Bugnion, Scott Devine, Kinshuk Govil, and Mendel Rosenblum. 1997. Disco: Running commodity operating systems on scalable multiprocessors. ACM Trans. Comput. Syst. 15, 4 (1997), 412--447. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Edouard Bugnion, Scott Devine, Mendel Rosenblum, Jeremy Sugerman, and Edward Y. Wang. 2012. Bringing virtualization to the x86 architecture with the original VMware workstation. ACM Trans. Comput. Syst. 30, 4 (2012), 12. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Hsiao-Keng Jerry Chu. 1996. Zero-copy TCP in solaris. In Proceedings of the 1996 USENIX Annual Technical Conference (ATC’96). 253--264. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert Tappan Morris, and Eddie Kohler. 2013. The scalable commutativity rule: Designing scalable software for multicore processors. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP’13). 1--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Tudor David, Rachid Guerraoui, and Vasileios Trigonakis. 2013. Everything you always wanted to know about synchronization but were afraid to ask. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP’13). 33--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jeffrey Dean and Luiz André Barroso. 2013. The tail at scale. Commun. ACM 56, 2 (2013), 74--80. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Christina Delimitrou and Christos Kozyrakis. 2014. Quality-of-service-aware scheduling in heterogeneous data centers with paragon. IEEE Micro 34, 3 (2014), 17--30.Google ScholarGoogle ScholarCross RefCross Ref
  19. Mihai Dobrescu, Norbert Egi, Katerina J. Argyraki, Byung-Gon Chun, Kevin R. Fall, Gianluca Iannaccone, Allan Knies, Maziar Manesh, and Sylvia Ratnasamy. 2009. RouteBricks: Exploiting parallelism to scale software routers. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP’09). 15--28. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Aleksandar Dragojevic, Dushyanth Narayanan, Miguel Castro, and Orion Hodson. 2014. FaRM: Fast remote memory. In Proceedings of the 11th Symposium on Networked Systems Design and Implementation (NSDI’14). 401--414. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Adam Dunkels. 2001. Design and implementation of the lwIP TCP/IP stack. Swedish Inst. Comput. Sci. 2 (2001), 77.Google ScholarGoogle Scholar
  22. Dawson R. Engler, M. Frans Kaashoek, and James O’Toole. 1995. Exokernel: An operating system architecture for application-level resource management. In Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP’95). 251--266. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Bin Fan, David G. Andersen, and Michael Kaminsky. 2013. MemC3: Compact and concurrent MemCache with dumber caching and smarter hashing. In Proceedings of the 10th Symposium on Networked Systems Design and Implementation (NSDI’13). 371--384. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Mike Fisk and W. Feng. 2000. Dynamic Adjustment of TCP Window Sizes. Technical Report. Los Alamos Unclassified Report (LAUR) 00-3221, Los Alamos National Laboratory.Google ScholarGoogle Scholar
  25. Sally Floyd and Van Jacobson. 1993. Random early detection gateways for congestion avoidance. IEEE/ACM Trans. Netw. 1, 4 (1993), 397--413. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Robert Graham. 2013. The C10M Problem. Retrieved from http://c10m.robertgraham.com.Google ScholarGoogle Scholar
  27. Sangjin Han, Scott Marshall, Byung-Gon Chun, and Sylvia Ratnasamy. 2012. MegaPipe: A new programming interface for scalable network I/O. In Proceedings of the 10th Symposium on Operating System Design and Implementation (OSDI’12). 135--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Tim Harris, Martin Maas, and Virendra J. Marathe. 2014. Callisto: Co-scheduling parallel runtime systems. In Proceedings of the 2014 EuroSys Conference. 24:1--24:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Benjamin Hindman, Andy Konwinski, Matei Zaharia, Ali Ghodsi, Anthony D. Joseph, Randy H. Katz, Scott Shenker, and Ion Stoica. 2011. Mesos: A platform for fine-grained resource sharing in the data center. In Proceedings of the 8th Symposium on Networked Systems Design and Implementation (NSDI’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Chang-Hong Hsu, Yunqi Zhang, Michael A. Laurenzano, David Meisner, Thomas F. Wenisch, Jason Mars, Lingjia Tang, and Ronald G. Dreslinski. 2015. Adrenaline: Pinpointing and reining in tail queries with quick voltage boosting. In Proceedings of the 21st IEEE Symposium on High-Performance Computer Architecture (HPCA’15). 271--282.Google ScholarGoogle Scholar
  31. Ram Huggahalli, Ravi R. Iyer, and Scott Tetrick. 2005. Direct cache access for high bandwidth network I/O. In Proceedings of the 32nd International Symposium on Computer Architecture (ISCA’05). 50--59. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Intel Corp. 2013. Open Source Kernel Enhancements for Low Latency Sockets Using Busy Poll. Retrieved from http://www.intel.com/content/dam/www/public/us/en/documents/white-papers/open-source-kernel-enhancements-paper.pdf.Google ScholarGoogle Scholar
  33. Intel Corp. 2014a. Intel 82599 10 GbE Controller Datasheet. Retrieved from http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf.Google ScholarGoogle Scholar
  34. Intel Corp. 2014b. Intel Ethernet Controller XL710 Datasheet. Retrieved from http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/xl710-10-40-controller-datasheet.pdf.Google ScholarGoogle Scholar
  35. IX on GitHub 2016. The IX Project. https://github.com/ix-project/.Google ScholarGoogle Scholar
  36. EunYoung Jeong, Shinae Woo, Muhammad Jamshed, Haewon Jeong, Sunghwan Ihm, Dongsu Han, and KyõungSoo Park. 2014a. mTCP source code release, v. of 2014-02-26. Retrieved from https://github.com/eunyoung14/mtcp.Google ScholarGoogle Scholar
  37. Eunyoung Jeong, Shinae Woo, Muhammad Asim Jamshed, Haewon Jeong, Sunghwan Ihm, Dongsu Han, and KyoungSoo Park. 2014b. mTCP: A highly scalable user-level TCP stack for multicore systems. In Proceedings of the 11th Symposium on Networked Systems Design and Implementation (NSDI’14). 489--502. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Jithin Jose, Hari Subramoni, Miao Luo, Minjia Zhang, Jian Huang, Md. Wasi ur Rahman, Nusrat S. Islam, Xiangyong Ouyang, Hao Wang, Sayantan Sur, and Dhabaleswar K. Panda. 2011. Memcached design on high performance RDMA capable interconnects. In Proceedings of the 2011 International Conference on Parallel Processing (ICPP’11). 743--752. Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. Rishi Kapoor, George Porter, Malveeka Tewari, Geoffrey M. Voelker, and Amin Vahdat. 2012. Chronos: Predictable low latency for data center applications. In Proceedings of the 2012 ACM Symposium on Cloud Computing (SOCC’12). 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. Wonyoung Kim, Meeta Sharma Gupta, Gu-Yeon Wei, and David M. Brooks. 2008. System level analysis of fast, per-core DVFS using on-chip switching regulators. In Proceedings of the 14th IEEE Symposium on High-Performance Computer Architecture (HPCA’08). 123--134.Google ScholarGoogle Scholar
  41. Avi Kivity. 2007. KVM: The linux virtual machine monitor. In Proceedings of the 2007 Ottawa Linux Symposium (OLS’07). 225--230.Google ScholarGoogle Scholar
  42. Eddie Kohler, Robert Morris, Benjie Chen, John Jannotti, and M. Frans Kaashoek. 2000. The click modular router. ACM Trans. Comput. Syst. 18, 3 (2000), 263--297. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. Andrew Krioukov, Prashanth Mohan, Sara Alspaugh, Laura Keys, David E. Culler, and Randy H. Katz. 2011. NapSAC: Design and implementation of a power-proportional web cluster. Comput. Commun. Rev. 41, 1 (2011), 102--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Jacob Leverich. 2014. Mutilate: High-Performance Memcached Load Generator. Retrieved from https://github.com/leverich/mutilate.Google ScholarGoogle Scholar
  45. Jacob Leverich and Christos Kozyrakis. 2014. Reconciling high server utilization and sub-millisecond quality-of-service. In Proceedings of the 2014 EuroSys Conference. 4:1--4:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. Philip Levis, Samuel Madden, David Gay, Joseph Polastre, Robert Szewczyk, Alec Woo, Eric A. Brewer, and David E. Culler. 2004. The emergence of networking abstractions and techniques in TinyOS. In Proceedings of the 1st Symposium on Networked Systems Design and Implementation (NSDI’04). 1--14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  47. Jing Li, Kunal Agrawal, Sameh Elnikety, Yuxiong He, I.-Ting Angelina Lee, Chenyang Lu, and Kathryn S. McKinley. 2016. Work stealing for interactive services to meet target latency. In Proceedings of the 21st ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP’16). 14:1--14:13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. Jialin Li, Naveen Kr. Sharma, Dan R. K. Ports, and Steven D. Gribble. 2014. Tales of the tail: Hardware, OS, and application-level sources of tail latency. In Proceedings of the 2014 ACM Symposium on Cloud Computing (SOCC’14). 9:1--9:14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  49. Hyeontaek Lim, Dongsu Han, David G. Andersen, and Michael Kaminsky. 2014. MICA: A holistic approach to fast in-memory key-value storage. In Proceedings of the 11th Symposium on Networked Systems Design and Implementation (NSDI’14). 429--444. Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. David Lo, Liqun Cheng, Rama Govindaraju, Luiz Andre Barroso, and Christos Kozyrakis. 2014. Towards energy proportionality for large-scale latency-critical workloads. In Proceedings of the 41st International Symposium on Computer Architecture (ISCA’14). 301--312. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. David Lo, Liqun Cheng, Rama Govindaraju, Parthasarathy Ranganathan, and Christos Kozyrakis. 2015. Heracles: Improving resource efficiency at scale. In Proceedings of the 42nd International Symposium on Computer Architecture (ISCA’15). 450--462. Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. Anil Madhavapeddy, Richard Mortier, Charalampos Rotsos, David J. Scott, Balraj Singh, Thomas Gazagnaire, Steven Smith, Steven Hand, and Jon Crowcroft. 2013. Unikernels: Library operating systems for the cloud. In Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS-XVIII’13). 461--472. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. Ilias Marinos, Robert N. M. Watson, and Mark Handley. 2014. Network stack specialization for performance. In Proceedings of the ACM SIGCOMM 2014 Conference. 175--186. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. Jason Mars, Lingjia Tang, Kevin Skadron, Mary Lou Soffa, and Robert Hundt. 2012. Increasing utilization in modern warehouse-scale computers using bubble-up. IEEE Micro 32, 3 (2012), 88--99. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Paul E. McKenney and John D. Slingwine. 1998. Read-copy update: Using execution history to solve concurrency problems. In Parallel and Distributed Computing and Systems. 509--518.Google ScholarGoogle Scholar
  56. David Meisner, Brian T. Gold, and Thomas F. Wenisch. 2011a. The PowerNap server architecture. ACM Trans. Comput. Syst. 29, 1 (2011), 3. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. David Meisner, Christopher M. Sadler, Luiz André Barroso, Wolf-Dietrich Weber, and Thomas F. Wenisch. 2011b. Power management of online data-intensive services. In Proceedings of the 38th International Symposium on Computer Architecture (ISCA’11). 319--330. Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. memcached 2014. memcached -- A distributed memory object caching system. Retrieved from http://memcached.org.Google ScholarGoogle Scholar
  59. Microsoft Corp. 2014. Receive Side Scaling. http://msdn.microsoft.com/library/windows/hardware/ff556942.aspx.Google ScholarGoogle Scholar
  60. Christopher Mitchell, Yifeng Geng, and Jinyang Li. 2013. Using one-sided RDMA reads to build a fast, CPU-efficient key-value store. In Proceedings of the 2013 USENIX Annual Technical Conference (ATC’13). 103--114. Google ScholarGoogle ScholarDigital LibraryDigital Library
  61. Jeffrey C. Mogul and K. K. Ramakrishnan. 1997. Eliminating receive livelock in an interrupt-driven kernel. ACM Trans. Comput. Syst. 15, 3 (1997), 217--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Luca Niccolini, Gianluca Iannaccone, Sylvia Ratnasamy, Jaideep Chandrashekar, and Luigi Rizzo. 2012. Building a power-proportional software router. In Proceedings of the 2012 USENIX Annual Technical Conference (ATC’12). 89--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Rajesh Nishtala, Hans Fugal, Steven Grimm, Marc Kwiatkowski, Herman Lee, Harry C. Li, Ryan McElroy, Mike Paleczny, Daniel Peek, Paul Saab, David Stafford, Tony Tung, and Venkateshwaran Venkataramani. 2013. Scaling memcache at facebook. In Proceedings of the 10th Symposium on Networked Systems Design and Implementation (NSDI’13). 385--398. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. John K. Ousterhout, Arjun Gopalan, Ashish Gupta, Ankita Kejriwal, Collin Lee, Behnam Montazeri, Diego Ongaro, Seo Jin Park, Henry Qin, Mendel Rosenblum, Stephen M. Rumble, Ryan Stutsman, and Stephen Yang. 2015. The RAMCloud storage system. ACM Trans. Comput. Syst. 33, 3 (2015), 7. Google ScholarGoogle ScholarDigital LibraryDigital Library
  65. Vivek S. Pai, Peter Druschel, and Willy Zwaenepoel. 2000. IO-lite: A unified I/O buffering and caching system. ACM Trans. Comput. Syst. 18, 1 (2000), 37--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  66. Aleksey Pesterev, Jacob Strauss, Nickolai Zeldovich, and Robert Tappan Morris. 2012. Improving network connection locality on multicore systems. In Proceedings of the 2012 EuroSys Conference. 337--350. Google ScholarGoogle ScholarDigital LibraryDigital Library
  67. Simon Peter, Jialin Li, Irene Zhang, Dan R. K. Ports, Doug Woos, Arvind Krishnamurthy, Thomas E. Anderson, and Timothy Roscoe. 2016. Arrakis: The operating system is the control plane. ACM Trans. Comput. Syst. 33, 4 (2016), 11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  68. George Prekas, Adam Belay, Mia Primorac, Ana Klimovic, Samuel Grossman, Marios Kogias, Bernard Gütermann, Christos Kozyrakis, and Edouard Bugnion. 2016. IX Open-source Version 1.0 -- Deployment and Evaluation Guide. Technical Report. EPFL Technical Report 218568.Google ScholarGoogle Scholar
  69. George Prekas, Mia Primorac, Adam Belay, Christos Kozyrakis, and Edouard Bugnion. 2015. Energy proportionality and workload consolidation for latency-critical applications. In Proceedings of the 2015 ACM Symposium on Cloud Computing (SOCC’15). 342--355. Google ScholarGoogle ScholarDigital LibraryDigital Library
  70. Niels Provos and Nick Mathewson. 2003. libevent: an event notification library. Retrieved from http://libevent.org.Google ScholarGoogle Scholar
  71. K. Ramakrishnan, S. Floyd, and D. Black. 2001. The Addition of Explicit Congestion Notification (ECN) to IP. IETF Network Working Group, RFC3168, September 2001. https://tools.ietf.org/html/rfc3168. Google ScholarGoogle ScholarDigital LibraryDigital Library
  72. Luigi Rizzo. 2012. Revisiting network I/O APIs: The netmap framework. Commun. ACM 55, 3 (2012), 45--51. Google ScholarGoogle ScholarDigital LibraryDigital Library
  73. Efraim Rotem, Alon Naveh, Avinash Ananthakrishnan, Eliezer Weissmann, and Doron Rajwan. 2012. Power-management architecture of the intel microarchitecture code-named sandy bridge. IEEE Micro 32, 2 (2012), 20--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  74. Stephen M. Rumble, Diego Ongaro, Ryan Stutsman, Mendel Rosenblum, and John K. Ousterhout. 2011. It’s time for low latency. In Proceedings of the 13th Workshop on Hot Topics in Operating Systems (HotOS-XIII’11). Google ScholarGoogle ScholarDigital LibraryDigital Library
  75. Constantine P. Sapuntzakis, David Brumley, Ramesh Chandra, Nickolai Zeldovich, Jim Chow, Monica S. Lam, and Mendel Rosenblum. 2003. Virtual appliances for deploying and maintaining software. In Proceedings of the 17th Large Installation System Administration Conference (LISA’03). 181--194. Google ScholarGoogle ScholarDigital LibraryDigital Library
  76. Malte Schwarzkopf, Andy Konwinski, Michael Abd-El-Malek, and John Wilkes. 2013. Omega: Flexible, scalable schedulers for large compute clusters. In Proceedings of the 2013 EuroSys Conference. 351--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  77. Quinn O. Snell, Armin R. Mikler, and John L. Gustafson. 1996. Netpipe: A network protocol independent performance evaluator. In Proceedings of the IASTED International Conference on Intelligent Information Management and Systems, Vol. 6.Google ScholarGoogle Scholar
  78. Livio Soares and Michael Stumm. 2010. FlexSC: Flexible system call scheduling with exception-less system calls. In Proceedings of the 9th Symposium on Operating System Design and Implementation (OSDI’10). 33--46. Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Solarflare Communications. 2011. Introduction to OpenOnload: Building Application Transparency and Protocol Conformance into Application Acceleration Middleware. Retrieved from http://www.solarflare.com/content/userfiles/documents/solarflare_openonload_intropaper.pdf.Google ScholarGoogle Scholar
  80. Ryan Stutsman and John K. Ousterhout. 2013. Toward common patterns for distributed, concurrent, fault-tolerant code. In Proceedings of the 14th Workshop on Hot Topics in Operating Systems (HotOS-XIV’13). Google ScholarGoogle ScholarDigital LibraryDigital Library
  81. Chandramohan A. Thekkath, Thu D. Nguyen, Evelyn Moy, and Edward D. Lazowska. 1993. Implementing network protocols at user level. In Proceedings of the ACM SIGCOMM 1993 Conference. 64--73. Google ScholarGoogle ScholarDigital LibraryDigital Library
  82. Rich Uhlig, Gil Neiger, Dion Rodgers, Amy L. Santoni, Fernando C. M. Martins, Andrew V. Anderson, Steven M. Bennett, Alain Kägi, Felix H. Leung, and Larry Smith. 2005. Intel virtualization technology. IEEE Comput. 38, 5 (2005), 48--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  83. Guido Urdaneta, Guillaume Pierre, and Maarten van Steen. 2009. Wikipedia workload analysis for decentralized hosting. Comput. Netw. 53, 11 (2009), 1830--1845. Google ScholarGoogle ScholarDigital LibraryDigital Library
  84. George Varghese and Anthony Lauck. 1987. Hashed and hierarchical timing wheels: Data structures for the efficient implementation of a timer facility. In Proceedings of the 11th ACM Symposium on Operating Systems Principles (SOSP’87). 25--38. Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Vijay Vasudevan, Amar Phanishayee, Hiral Shah, Elie Krevat, David G. Andersen, Gregory R. Ganger, Garth A. Gibson, and Brian Mueller. 2009. Safe and effective fine-grained TCP retransmissions for datacenter communication. In Proceedings of the ACM SIGCOMM 2009 Conference. 303--314. Google ScholarGoogle ScholarDigital LibraryDigital Library
  86. Abhishek Verma, Luis Pedrosa, Madhukar Korupolu, David Oppenheimer, Eric Tune, and John Wilkes. 2015. Large-scale cluster management at Google with borg. In Proceedings of the 2015 EuroSys Conference. 18:1--18:17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  87. Werner Vogels. 2008. Beyond server consolidation. ACM Queue 6, 1 (2008), 20--26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  88. J. Robert von Behren, Jeremy Condit, Feng Zhou, George C. Necula, and Eric A. Brewer. 2003. Capriccio: Scalable threads for internet services. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP’03). 268--281. Google ScholarGoogle ScholarDigital LibraryDigital Library
  89. Matt Welsh, David E. Culler, and Eric A. Brewer. 2001. SEDA: An architecture for well-conditioned, scalable internet services. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP’01). 230--243. Google ScholarGoogle ScholarDigital LibraryDigital Library
  90. WhatsApp Inc. 2012. 1 million is so 2011. Retrieved from https://blog.whatsapp.com/index.php/2012/01/1-million-is-so-2011.Google ScholarGoogle Scholar
  91. David A. Wheeler. 2001. SLOCCount, v2.26. Retrieved from http://www.dwheeler.com/sloccount/.Google ScholarGoogle Scholar
  92. Hailong Yang, Alex D. Breslow, Jason Mars, and Lingjia Tang. 2013. Bubble-flux: Precise online QoS management for increased utilization in warehouse scale computers. In Proceedings of the 40th International Symposium on Computer Architecture (ISCA’13). 607--618. Google ScholarGoogle ScholarDigital LibraryDigital Library
  93. Xiao Zhang, Eric Tune, Robert Hagmann, Rohit Jnagal, Vrigo Gokhale, and John Wilkes. 2013. CPI2: CPU performance isolation for shared compute clusters. In Proceedings of the 2013 EuroSys Conference. 379--391. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. The IX Operating System: Combining Low Latency, High Throughput, and Efficiency in a Protected Dataplane

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader
        About Cookies On This Site

        We use cookies to ensure that we give you the best experience on our website.

        Learn more

        Got it!