Grapevine Distributed Mail System CS4513 Distributed Systems Hugh
Grapevine Distributed Mail System CS-4513 Distributed Systems Hugh C. Lauer Slides include materials from Modern Operating Systems, 3 rd ed. , by Tannenbaum, Operating System Concepts, 7 th ed. , by Silbershatz, Galvin, & Gagne, Distributed Systems: Principles & Paradigms, 2 nd ed. By Tanenbaum and Van Steen, and Distributed Systems: Concepts and Design, 4 th ed. , by Coulouris, et. al. CS-4513, B-Term 2010 Grapevine Distributed Mail System 1
Grapevine • A distributed system for e-mail and other distributed activities • Implemented at Xerox PARC in ~1978 -80 • Deployed throughout company • Productized in Xerox 8000 series office systems • Predates most Internet mail systems • Including naming of users • Embodies many principles of distributed computing systems • … CS-4513, B-Term 2010 Grapevine Distributed Mail System 2
Grapevine – Assigned Reading • … • Birrell, et. al. , “Grapevine: An Exercise in Distributed Computing, ” Communications of ACM, vol. 25, #4, April 1982, pp 260 -274. (pdf) • Schroeder, et. al. , “Experience with Grapevine: The Growth of a Distributed System, ” ACM Transactions on Computer Systems, vol. 2, #1, Feb 1984, pp 3 -23. (pdf) CS-4513, B-Term 2010 Grapevine Distributed Mail System 3
Goals • Delivery mechanism for large, dispersed email system • Previous e-mail systems were time-sharing systems • (now) Familiar model • • • Senders Recipients Distribution lists Buffered delivery Independent clients (e-mail agents) CS-4513, B-Term 2010 Grapevine Distributed Mail System 4
Design Goals • No assumptions about … • Message content • Client correctness • Message delivery guarantee • If a message was accepted, it would be delivered to recipient’s inbox • or … returned with error • Failure of server unavailability of service • Decentralized administration CS-4513, B-Term 2010 Grapevine Distributed Mail System 5
Key Components • Registration (i. e. naming) Data Base • Distributed • Replicated • Recursively implemented • Message Delivery System • • Transports, buffers, delivers Expands distribution lists Distributed Replicated CS-4513, B-Term 2010 Grapevine Distributed Mail System 6
Issues Exposed by Grapevine • • • Reliable Transport and Storage Synchronizing and Ordering of Operations Fault-tolerance Consistency and Replication Security and Authentication … • Naming is at the center of everything CS-4513, B-Term 2010 Grapevine Distributed Mail System 7
Registration Database • {RName, value} pairs • Two types of entry • Individual • Group entry • value = list of RNames — i. e. , the group members • May be distribution list, resource list, access control list, etc. • Individual entry • May be names of human users, servers, etc. • value = [authenticator, ordered inbox list, connect site, …] CS-4513, B-Term 2010 Grapevine Distributed Mail System 8
Organization • Registry • Subset of the registration database entries • Organizational, geographic, or other convenient partition • RName – two-part name Name. R • R is the name of a registry • Name is a unique name within that particular registry • (Easily expandable to three part names or more) CS-4513, B-Term 2010 Grapevine Distributed Mail System 9
Functions Provided by Grapevine Service E-mail delivery services: – • Accept message: • [sender, password, recipients, message-body] ok • Message polling: • [individual] {empty, non-empty} • Retrieve messages: • [name, password] sequence of messages ok • … CS-4513, B-Term 2010 Grapevine Distributed Mail System 10
Functions Provided by Grapevine Service (continued) Registry services: – • Authenticate: • [individual, password] {authentic, bogus} • Membership: • [name, group] {member, non-member} • Resource location: • [group] members • [individual] connect site • [individual] ordered list of inbox sites • … CS-4513, B-Term 2010 Grapevine Distributed Mail System 11
Grapevine Server • Contains both Registration and Message servers • Independent of each other • Communicate only by internet protocols • Registration server • Contains replicas of one or more Registries • Can accept change request for any of its registries • Propagates changes to other replicas of Registry • Message server • Accepts any message for delivery • Stores inboxes for some individuals • (Individuals typically have more than one inbox) CS-4513, B-Term 2010 Grapevine Distributed Mail System 12
Grapevine “User Package” • Library code for Grapevine client programs • E-mail clients • Other kinds of distributed applications • Handles all naming and addressing issues • Client programs never need to know name or address of any Grapevine server • Servers optimized based on “User Package” CS-4513, B-Term 2010 Grapevine Distributed Mail System 13
Grapevine Operation • User P. Q sends message to user X. Y • User X. Y wants authenticated access to server E CS-4513, B-Term 2010 Grapevine Distributed Mail System 14
Message Delivery • Find Message service • Present [sender, password, recipients] to service • Authenticates sender • Validates recipients • (Assume valid if recipient registry not available) • Construct envelope (aka property list) • Sender Name, Return-to, recipient list, postmark – Postmark = [server internet address, server time stamp] • Accept message-body • Store envelope & message body in reliable storage • Acknowledge receipt of message CS-4513, B-Term 2010 Grapevine Distributed Mail System 15
Message Delivery (continued) Transport system • Recursively enumerate groups in destination list • Find inbox server contact for each recipient • Sort by server, transmit one copy to each server with list of recipient names • Duplicate elimination done at receiving server – E. g. , an individual a member of more than one group • Queue if all servers down or inaccessible • Receiving client polls all its inboxes – Downloads from each – Message deleted from inbox only after receipt is acknowledged CS-4513, B-Term 2010 Grapevine Distributed Mail System 16
Replication in Message Delivery • Any server can accept a message for delivery • Individuals typically have more than one inbox • However, – Crashes can delay messages in transit. CS-4513, B-Term 2010 Grapevine Distributed Mail System 17
Registration Database • gv registry • Replicated in all registration servers • Groups in gv • Names of registries • Members are RNames of registration servers holding replicas of the group registry • I. e. , • reg is a Registry iff there is a group reg. gv • Server holds a replica of reg iff its name is in reg. gv CS-4513, B-Term 2010 Grapevine Distributed Mail System 18
Registration Database (continued) • gv. gv is a group in gv registry • Its members are RNames of all registration servers • Adding a registration server adding a member to gv. gv • Adding a new registry r adding a new group entry r. gv to gv registry • Members of r. gv are a subset of gv. gv CS-4513, B-Term 2010 Grapevine Distributed Mail System 19
Registration Database (continued) • Used to locate resources – Service is a group in the database • – Servers are individuals in the database • • Members are RNames of servers connect site is internet address of server To find foo. bar 1. Contact local Grapevine server, ask for bar. gv 2. Enumerate members, contact one of them, and ask for foo. bar CS-4513, B-Term 2010 Grapevine Distributed Mail System 20
Finding the first Grapevine Server • Ask another name service (e. g. , DNS) for Grapevine. RServer • Returns a list of addresses • List changes very infrequently or • Broadcast to well-known socket on LAN • Local Grapevine servers listen on socket • Usually quicker CS-4513, B-Term 2010 Grapevine Distributed Mail System 21
Summary • Names in Grapevine • • People Services Servers Anything else you want them to be • Registry maps names to … • Groups (i. e. , a list of other names) • Individuals (something with an address and/or other properties) CS-4513, B-Term 2010 Grapevine Distributed Mail System 22
Summary (continued) • Highly replicated • • Registries exist in multiple servers Individuals have more than one mailbox Mail can be delivered to anywhere for any recipient Registry used to manage itself! • Distributed System issues to be addressed • • Synchronizing and Ordering of Operations Fault-tolerance Consistency and Replication Security and Authentication CS-4513, B-Term 2010 Grapevine Distributed Mail System 23
References • Birrell, et. al. , “Grapevine: An Exercise in Distributed Computing, ” Communications of ACM, vol. 25, #4, April 1982, pp 260 -274. (pdf) • Schroeder, et. al. , “Experience with Grapevine: The Growth of a Distributed System, ” ACM Transactions on Computer Systems, vol. 2, #1, Feb 1984, pp 3 -23. (pdf) • Note: – Global Name Service (by Lampson) is descendant of Grapevine. • See Coulouris, et al, § 9. 4 CS-4513, B-Term 2010 Grapevine Distributed Mail System 24
Questions? CS-4513, B-Term 2010 Grapevine Distributed Mail System 25
Issues Exposed by Grapevine • • • Reliable Transport and Storage Synchronizing and Ordering of Operations Fault-tolerance Consistency and Replication Security and Authentication … • Naming is at the center of everything CS-4513, B-Term 2010 Grapevine Distributed Mail System 26
- Slides: 26