System Architectures Based on Functionality Offloading
Total Page:16
File Type:pdf, Size:1020Kb
SYSTEM ARCHITECTURES BASED ON FUNCTIONALITY OFFLOADING BY ANIRUDDHA BOHRA A dissertation submitted to the Graduate School—New Brunswick Rutgers, The State University of New Jersey in partial fulfillment of the requirements for the degree of Doctor of Philosophy Graduate Program in Computer Science Written under the direction of Liviu Iftode and approved by New Brunswick, New Jersey January, 2008 c 2008 Aniruddha Bohra ALL RIGHTS RESERVED ABSTRACT OF THE DISSERTATION System Architectures Based on Functionality Offloading by Aniruddha Bohra Dissertation Director: Liviu Iftode Offloading to hardware components that support the primary task of a system enables sep- aration of concerns and allows both the primary and offloaded components of a system to be easy to understand, manage, and evolve independent of other components. In this dissertation, we explore the software mechanisms required to effectively offload functionality to idle processing elements. We present the design, implementation, and evalua- tion of three system architectures – TCPServers, Orion, and FileWall, which offload functional- ity for improving performance (TCPServers), improving availability (Orion), and for extending functionality (FileWall). We explore software mechanisms to offload functionality to a subset of processors in an Symmetric Multiprocessor (SMP) system, a programmable network inter- face, and an interposing network middlebox to realize the three system architectures. TCPServers is a system architecture that offloads network processing to a subset of proces- sors in an SMP system. Network processing imposes direct and indirect overheads on server systems. It directly affects system performance since it executes at a higher priority than ap- plication tasks and prevents other components of the system from executing simultaneously on the processors. It indirectly affects performance by causing cache pollution and Trans- lation Lookaside Buffer (TLB) flushes, which lead to degraded memory system performance. Through offloading, TCPServers isolates the network processing and eliminates the direct over- heads. We also present mechanisms for increasing network stack concurrency and connection ii scheduling, which significantly improve the performance in a multi-threaded network stack. Orion is a system architecture that enables Remote Healing, where the monitoring and healing actions are performed externally, by offloading such functionality to external hardware. Fine grained monitoring of computer systems for performance anomalies, intrusion detection, and failure detection imposes significant overhead on the target system. Performance critical systems, where such fine grained monitoring is essential, cannot be subjected to these over- heads. Orion offloads the healing functionality to a programmable network interface, which provides an alternate path to the memory of the target system. Using Orion, monitoring and healing actions can be performed nonintrusively, without involving the processors of the target system. We present the design and implementation of mechanisms for remote monitoring and remote repair of damaged OS state using Orion. FileWall is a system architecture that enables extension of network file system functionality. Network file system evolution is constrained by the tight binding between clients and servers. This binding limits the evolution of file system protocols and hinders deployment of file system or protocol extensions. For example, current network file systems have limited support for implementing file access policies. We propose message transformation as a mechanism to separate the client and server systems for protocol enhancement. FileWall offloads message transformation and policy enforcement to an interposing network element on the client-server path. We have used FileWall to implement file access policies and present experimental results showing policy enforcement at FileWall imposes minimal overheads on the base file system protocol. The main conclusion of our research is that system architectures based on functionality of- floading can be realized simply and effectively through efficient software mechanisms, using only commodity off the shelf hardware. With the availability of resources at idle processing cores in a multiprocessor system, intelligent peripherals, and unused nodes in a cluster, of- floading is a practical solution for improving performance and introducing new functionality in computer systems and networks. iii Acknowledgements This dissertation would not be possible without the help, support, and guidance of my family, teachers, and friends - I want to thank them for all their efforts. I want to thank my advisor, Liviu Iftode, and my committee members - Ricardo Bianchini, Rich Martin, S. Muthukrishnan, and Jason Nieh, for valuable suggestions that made this dissertation better. The last-minute help from Rich actually made the dissertation possible. Several professors at Rutgers, whose courses I have taken and whose talks I have attended, helped me understand how little I know and how much I need to learn. I thank them all for their efforts and help through the years. My advisor, Liviu Iftode, has been a firm believer in me and my work, more than I ever was. He has been a source of energy and ideas, many of which were wasted on me, but he has never given up. Through the years, Liviu has been a part of hundreds of arguments with me, some where I had something useful and productive to contribute, others where I was argumentative and foolish. I thank him for never discouraging me and helping me grow as a researcher and as a person. Ricardo has been as much a professor and teacher to me as a friend and mentor. He has given valuable advice whenever I went up to him (and it was often). His enthusiasm and focus on the soccer field as much as in research has been an inspiration. I cannot imagine staying on in graduate school without his support and help. Over the years, I have worked on projects with many people. At the beginning of my graduate study, Florin Sultan took me under his wing and made me realize the importance of patience, perseverance, and attention to detail. I still hear his words, “Don’t jump!”, whenever I am chasing bugs and getting nowhere. To him I owe more than I can thank him for. Stephen Smaldone has been a friend and my partner in the research through the last six years. He never lets me forget what the goal is in work as well as in life. It has been a pleasure working with Steve and I am honored to be his friend. Members of Discolab, especially Murali Rangarajan, iv Cristian Borcea, Pascal Gallard, Iulian Neamtiu, Yufei Pan, Porlin Kang, and Arati Baliga, who over the years have contributed ideas, participated in discussions, and even helped with building systems and running experiments, have been a crucial part of my years at Rutgers. Lu Han and Tzvika Chumash gave valuable feedback and help during the final days before my defense. The long nights in the lab were always an interesting time due to all of them. I have been lucky to have many friends who made the long time away from home enjoyable and interesting. Unfortunately, I cannot possibly thank each one of you here. I have known Budha and Hari for more than a decade and have always had a great time with them discussing science, cricket, history, politics, and everything else under the sun. I also want to acknowledge the colleagues at NEC Labs, who were understanding and supportive of me continuing to work on my dissertation while working there. This dissertation would not have been possible without Kavitha, who through her support and continuous encouragement has kept me going. She is also responsible for introducing me to the pleasure of having pets, and for enriching my life with Mishki, Puff, Ollie, and Nicky. Together they have suffered my absences and handled the ups and downs of this journey. Finally, my parents and my brother are responsible for all that is good in me, the faults are all mine. Thank you all! v Dedication To my parents vi Table of Contents Abstract ::::::::::::::::::::::::::::::::::::::::: ii Acknowledgements ::::::::::::::::::::::::::::::::::: iv Dedication :::::::::::::::::::::::::::::::::::::::: vi List of Tables :::::::::::::::::::::::::::::::::::::: ix List of Figures :::::::::::::::::::::::::::::::::::::: x List of Abbreviations :::::::::::::::::::::::::::::::::: xii 1. Introduction ::::::::::::::::::::::::::::::::::::: 1 1.1. Thesis . 1 1.2. Offloading Functionality in Computer Systems . 1 1.3. Offloading Architectures . 2 1.4. The Offloading Debate: Opportunity and Challenges . 8 1.5. Summary of Dissertation Contributions . 16 1.6. Contributors to the Dissertation . 18 1.7. Organization of the Dissertation . 18 2. TCPServers: Offloading for Improved Network Performance :::::::::: 19 2.1. Problem Statement . 19 2.2. Network Processing Overview . 20 2.3. TCPServers Architecture . 25 2.4. TCPServers Design . 26 2.5. Prototype Implementation . 34 2.6. Evaluation . 36 2.7. Related Work . 42 vii 2.8. Summary . 50 3. Orion: Offloading Monitoring for Improved Availability ::::::::::::: 51 3.1. Problem Statement . 51 3.2. Operating System and Application Monitoring . 53 3.3. Orion Architecture . 56 3.4. Orion Design . 58 3.5. Case Studies . 69 3.6. Prototype Implementation . 76 3.7. Evaluation . 78 3.8. Related Work . 83 3.9. Summary . 88 4. FileWall: Offloading Policy Enforcement in Network File Systems :::::::: 89 4.1. Problem Statement . 89 4.2. FileWall Model . 91 4.3. FileWall Design . 98 4.4. FileWall Policy Templates . 102 4.5.