DOC PREVIEW
UW-Madison CS 739 - Manageability, Availability, and Performance in Porcupine

This preview shows page 1-2-16-17-18-34-35 out of 35 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 35 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Manageability, Availability, andPerformance in Porcupine: A HighlyScalable, Cluster-Based Mail ServiceYASUSHI SAITO, BRIAN N. BERSHAD, and HENRY M. LEVYUniversity of WashingtonThis paper describes the motivation, design, and performance of Porcupine, a scalable mailserver. The goal of Porcupine is to provide a highly available and scalable electronic mailservice using a large cluster of commodity PCs. We designed Porcupine to be easy to manageby emphasizing dynamic load balancing, automatic configuration, and graceful degradation inthe presence of failures. Key to the system’s manageability, availability, and performance isthat sessions, data, and underlying services are distributed homogeneously and dynamicallyacross nodes in a cluster.Categories and Subject Descriptors: C.2.4 [Computer-Communication Networks]: Distrib-uted Systems—Distributed applications; C.4 [Performance of Systems]: Reliability, Avail-ability, and Serviceability; C.5.5 [Computer System Implementation]: Servers; D.4.5[Operating Systems]: Reliability—Fault-tolerance; H.3.4 [Information Storage and Re-trieval]: Systems and Software—Distributed systems; H.4.3 [Information Storage andRetrieval]: Communications Applications—Electronic mailGeneral Terms: Algorithms, Performance, Management, ReliabilityAdditional Key Words and Phrases: Distributed systems, email, cluster, group membershipprotocol, replication, load balancing1. INTRODUCTIONThe growth of the Internet has led to the need for highly scalable andhighly available services. This paper describes the Porcupine scalableelectronic mail service. Porcupine achieves scalability by clustering manysmall machines (PCs), enabling them to work together in an efficientThis work is supported by DARPA Grant F30602-97-2-0226 and by National Science Founda-tion Grant # EIA-9870740.An earlier version appeared at the 17th ACM Symposium on Operating Systems Principles(SOSP), Kiawah Island Resort, SC, Dec., 1999.The Porcupine project web page is at http://porcupine.cs.washington.edu.Authors’ address: MBOX 352350, Department of Computer Science and Engineering, Univer-sity of Washington, Seattle, WA 98195; email: {yasushi,bershad,levy}@cs.washington.edu.Permission to make digital/hard copy of part or all of this work for personal or classroom useis granted without fee provided that the copies are not made or distributed for profit orcommercial advantage, the copyright notice, the title of the publication, and its date appear,and notice is given that copying is by permission of the ACM, Inc. To copy otherwise, torepublish, to post on servers, or to redistribute to lists, requires prior specific permissionand/or a fee.© 2000 ACM 0734-2071/00/0800–0298 $05.00ACM Transactions on Computer Systems, Vol. 18, No. 3, August 2000, Pages 298–332.manner. In this section, we describe system requirements for Porcupineand relate the rationale for choosing a mail application as our target.1.1 System RequirementsPorcupine defines scalability in terms of three essential system aspects:manageability, availability, and performance. Requirements for each fol-low:(1) Manageability requirements. Although a system may be physicallylarge, it should be easy to manage. In particular, the system mustself-configure with respect to load and data distribution and self-healwith respect to failure and recovery. A system manager can simply addmore machines or disks to improve throughput and replace them whenthey break. Over time, a system’s nodes will perform at differingcapacities, but these differences should be masked (and managed) bythe system.(2) Availability requirements. With so many nodes, it is likely that somewill be down at any given time. Despite component failures, the systemshould deliver good service to all of its users at all times. In practice,the failure of one or more nodes may prevent some users from accessingsome of their mail. However, we strive to avoid failure modes in whichwhole groups of users find themselves without any mail service for evena short period.(3) Performance requirements. Porcupine’s single-node performanceshould be competitive with other single-node systems; its aggregateperformance should scale linearly with the number of nodes in thesystem. For Porcupine, we target a system that scales to hundreds ofmachines, which is sufficient to service a few billion mail messages perday with today’s commodity PC hardware and system area networks.Porcupine meets these requirements uniquely. The key principle thatpermeates the design of Porcupine is functional homogeneity. That is, anynode can execute part or all of any transaction, e.g., for the delivery orretrieval of mail. Based on this principle, Porcupine uses three techniquesto meet our scalability goals. First, every transaction is dynamicallyscheduled to ensure that work is uniformly distributed across all nodes inthe cluster. Second, the system automatically reconfigures whenever nodesare added or removed, even transiently. Third, system and user data areautomatically replicated across a number of nodes to ensure availability.Figure 1 shows the relationships among our goals and key features ortechniques used in the system. For example, dynamic scheduling andautomatic reconfiguration make the system manageable, since changes tothe size or the quality of machines, user population, and workload arehandled automatically. Similarly, automatic reconfiguration and replica-tion improve availability by making email messages, user profiles, andother auxiliary data structures survive failures.Manageability, Availability, and Performance in Porcupine • 299ACM Transactions on Computer Systems, Vol. 18, No. 3, August 2000.Today, Porcupine runs on a cluster of 30 PCs connected by a high-speednetwork, although we show that it is designed to scale well beyond that.Performance is linear with respect to the number of nodes in the cluster.The system adapts automatically to changes in workload, node capacity,and node availability. Data are available despite the presence of failures.1.2 Rationale for a Mail ApplicationAlthough Porcupine is a mail system, its underlying services and architec-ture are appropriate for other systems in which data are frequentlywritten, and where good performance, availability, and manageability athigh volume are demanded. For example, Usenet news, community bulletinboards, and large-scale calendar services are good candidates for deploy-ment using Porcupine. Indeed, we have configured


View Full Document

UW-Madison CS 739 - Manageability, Availability, and Performance in Porcupine

Download Manageability, Availability, and Performance in Porcupine
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Manageability, Availability, and Performance in Porcupine and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Manageability, Availability, and Performance in Porcupine 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?