1 / 19

Distributed Systems: Server Design and Code Migration

Learn about server organization, design issues, server clusters, managing server clusters, and code migration in distributed systems. Explore practical examples and case studies to understand the principles and paradigms of distributed systems.

annabowers
Download Presentation

Distributed Systems: Server Design and Code Migration

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. DISTRIBUTED SYSTEMSPrinciples and ParadigmsSecond EditionANDREW S. TANENBAUMMAARTEN VAN STEENChapter 3Processes Skip 3.1-3.3

  2. 3.3 Example: The XWindow System http://en.wikipedia.org/wiki/X.Org_Server http://en.wikipedia.org/wiki/Cygwin/X • Figure 3-9. The basic organization of the XWindow System.

  3. 3.4 Servers • Design Issues • Server organization • Iterative server or concurrent server • Where do clients contact a server? • Daemon vs. superserver • Where and how a server can be interrupted? • Ex: file transfer • Exit the client application or send out-of-band data • Whether the server is stateless or stateful • soft state: the server maintain state on behalf of the client for a limited time • Session state vs. permanent state • Does server keep a record on a client’s behavior

  4. General Design Issues (1) (port) • Figure 3-11. (a) Client-to-server binding using a daemon.

  5. General Design Issues (2) • Figure 3-11. (b) Client-to-server binding using a superserver.

  6. 3.4.2 Server Clusters (1) • Figure 3-12. The general organization of a three-tiered server cluster.

  7. Server Clusters (2) Advanced server selection: payload or content-aware • Figure 3-13. The principle of TCP handoff.

  8. Distributed Servers • Figure 3-14. Route optimization (MIPv6) in a distributed server.

  9. 3.4.3 Managing Server Clusters • Common approaches • Log into a node and execute local managing commands • Provide an interface at an administration machine • Not for large server clusters • Self management

  10. Example: PlanetLab A slice is a set of vservers Node manager Resource specification • Figure 3-15. The basic organization of a PlanetLab node.

  11. PlanetLab (1) • PlanetLab management issues: • Nodes belong to different organizations. • Each organization should be allowed to specify who is allowed to run applications on their nodes,and restrict resource usage appropriately. • Monitoring tools available assume a very specific combination of hardware and software. • All tailored to be used within a single organization. • Programs from different slices but running on the same node should not interfere with each other.

  12. PlanetLab (2) • Figure 3-16. The management relationships between various PlanetLab entities.

  13. PlanetLab (3) • Relationships between PlanetLab entities: • A node owner puts its node under the regime of a management authority, possibly restricting usage where appropriate. • A management authority provides the necessary software to add a node to PlanetLab. • A service provider registers itself with a management authority, trusting it to provide well-behaving nodes.

  14. PlanetLab (4) • Relationships between PlanetLab entities: • A service provider contacts a slice authority to create a slice on a collection of nodes. • The slice authority needs to authenticate the service provider. • A node owner provides a slice creation service for a slice authority to create slices. It essentially delegates resource management to the slice authority. • A management authority delegates the creation of slices to a slice authority.

  15. 3.5 Code Migration • Approaches to code migration • Process migration • Mobile agent • Migration and local resources • Migration in heterogeneous systems

  16. Reasons for Migrating Code Allocation and redistribution of tasks Performance improvement Flexibility • Figure 3-17. The principle of dynamically configuring a client to communicate to a server. The client first fetches the necessary software, and then invokes the server.

  17. Models for Code Migration Code segment Execution segment Resource segment • Figure 3-18. Alternatives for code migration.

  18. Migration and Local Resources • Figure 3-19. Actions to be taken with respect to the references to local resources when migrating code to another machine.

  19. Migration in Heterogeneous Systems Script Portable language Environment: memory image and local resource binding • Three ways to handle memory migration (which can be combined) • Pushing memory pages to the new machine and resending the ones that are later modified during the migration process. • Stopping the current virtual machine; migrate memory, and start the new virtual machine. • Letting the new virtual machine pull in new pages as needed, that is, let processes start on the new virtual machine immediately and copy memory pages on demand.

More Related