CS606: Advanced Operating Systems Lecture 2 Overall organization: - Classic forms of distributed systems - Distributed system design - End to End Argument - Student Lectures - Projects ---------------------------------------------------------------------------- Topic: Classical forms of distributed systems * Client-server: Idea: To single-system abstraction, bundle common system services from many machines to run in one "central" server. Any client machine wishing to get access to this service contacts this server. Common forms of servers: - file server - print server - time server - directory (name) server - network server (DNS) - process server (as you get more integrated) - security server - authentication server Q: What are some other kinds of servers? * Peer-to-peer (conventional): Idea: Rather than centralizing each service, let each node provide a local version of the service, but make it available for remote nodes. Example: LANtastic or Win95 shares In many ways, this is like client-server, but without as much transparency or performance. * Server clusters: Idea: Have a collection of nodes COOPERATE to provide a service. Could think of this as a cross between C/S and peer-to-peer, with high degrees of integration, replication, migration, fault tolerance, load balancing, etc. Example: VAXclusters, Inktomi's web search engine, many others. Advantages: - scalability - high availability (fault tolerant) - load balancing Disadvantages: - concurrency control - complexity * Peer (client) clusters: [emerging] Idea: Do away with the strict notion of clients and servers. Do away with the strict separation of functions vs peer-to-peer. Each machine adds some of its resources to the `pool,' and as an aggregate they provide some service. Example: Mango Medley Advantages: - scalability - high availability (fault tolerant) - cost (no servers - fewer `overhead' resources) Disadvantages: - complexity - harder fault tolerance problems http://www.infoworld.com/cgi-bin/displayNew.pl?/metcalfe/metcalfe.htm * "True" distributed system (aka, single system image) Idea: Build a totally dynamic, self-healing, self-tuning,network-wide operating system that manages the entire collection of resources in the system as a single, large, powerful machine. Examples (partial): Apollo Domain, V, Locus, DCE, Orca. Unique features: - integrated process management (adaptive cross-machine scheduling and load balancing) - integrated resource management - process and service migration - automatic service replication - strong support for concurrency control ---------------------------------------------------------------------------- Topic: Distributed system design So many choices... which to choose for *your* service/application? Issues: - cost - criticality (inverse of fault tolerance) - performance requirements - scalability requirement - available intellectual resources - modularity - ... other ideas?... Characteristics of example services: - directory service (NDS, Grapevine, ...): - - - - file service (NFS, AFS, ...): - - - - web server: - - - - proxy cache: - - - - game server: - - - [Get class to come up with key characteristics of each service. Use these lists to talk about how you might structure each one, in different circumstances.] ---------------------------------------------------------------------------- Topic: End to End Argument Q: Why do you think I asked you to read the End-to-End paper? Q: Should we ever perform operations at the low level that will need to be reperformed at a high level? If so, when? Q: What does it tell us about: - blast versus stop-and-wait bulk data transfers? - hardware acknowledgements? - packet checksumming? - maintaining the coherence of distributed data (two-phase commit)? - how to split the functionality of a clustered web server? - when/how to encrypt secure data? Discuss tradeoffs and alternatives! ---------------------------------------------------------------------------- Topic: Aside CSL Seminar: - Lots of good material for people in here (some overlap) - This Wednesday's is particularly good (concurrency control) ---------------------------------------------------------------------------- Topic: Student Lectures Updated schedule of lectures: ----------------------------- - In : distributed objects, security - Out: WWW issues, wide area file systems Need volunteers for different topics: ------------------------------------- - papers to be filled in later - may request help doing literature survey for best papers for the ones in the new topics - sign up ASAP (first-come, first-served) ---------------------------------------------------------------------------- Topic: Projects Let's brainstorm on possible project ideas... Here are some I have: --------------------- * Distributed object layer for GMS * Chat/whiteboard service: in GMS and on "bare system" * Clustered client proxy cache * Worm-like service (pick one - service itself not important) - self-replicating/healing - client `failover' What are you doing in other classes/projects that is related? - I have demo envy, so graphical projects get fuzzy points! ---------------------------------------------------------------------------- Topic: Optional overview of networking Types of networks: - broadcast (mostly gone in wired networks now) - switched (pretty much taken over the LAN market) - point-to-point (dominant in the WAN infrastructure) Components: - switches - bridges - routers Common LANS: - Ethernet - Ethernet - Ethernet Commons single-site backbones: - ATM - FDDI Common failure modes: - adapter failures (normally failstop, sometimes byzantine) - switch failures - router failures - SOFTWARE FAILURES (router tables, DNS entries, etc.)