Personal tools
You are here: Home Science and Research Infrastructure for Service Scalability and High Availability Distributed Servers for Transparently Distributed Services
Document Actions

Infrastructure for Service Scalability and High Availability

XtreemOS is working on a number of technologies to help build provide scalable and highly available services for the Grid. Each such technique will be available in the form of a software library. Grid services or applications can then link to these libraries to benefit from the components described in the following pages.

Distributed Servers for Transparently Distributed Services

Distributed servers allow an application programmer to hide the internal distribution of a service to its external users. Although the service can be implemented by any number of machines and processes, external clients use only a single IP address to contact the service.

When clients connect to a distributed server, the servers can handoff the (TCP) connections among themselves. Handoff can take place at any moment: when the connection is initiated, or while the connection is being used. Connections can even be recovered after the server that handles them crashes. The major interest here is that this operation is totally transparent to the client-side application. The only requirement is that the client-side operating system supports the Mobile IPv6 protocol.

For more information about the technology behind distributed servers, please take a look at the following articles:

[1] Versatile Anycasting with Mobile IPv6, Michal Szymaniak, Guillaume Pierre and Maarten van Steen. In Proceedings of the International AAA-IDEA Workshop, October 2006 (pdf).

[2] Enabling Service Adaptability with Versatile Anycast. Michal Szymaniak, Guillaume Pierre, Mariana Simons-Nikolova and Maarten van Steen. Accepted for publication, Concurrency and Computation: Practice and Experience, 2007 (pdf).

Our current implementation is very low-level: it basically allows one to send/receive the required messages to perform the required actions. We are currently working on building a much higher-level interface that application programmers can use easily.

Applications

Distributed servers have many possible applications. For example, one may use virtual nodes and distributed servers simultaneously, so that the replicated group of processes implemented by virtual nodes can look like a single highly available node from its clients.

Demonstration Videos

To demonstrate the distributed servers functionality, we built a small testbed and videotaped the presentation.

Please download the videos linked below in the page!

Attachments
1. Presentation of the experiment 1. Presentation of the experiment
(DistributedServersDemo1-big.mov - 5.65 Mb)
2. Simple TCP handoff 2. Simple TCP handoff
(DistributedServersDemo2-big.mov - 6.36 Mb)
3. Handoffs can take place at any moment 3. Handoffs can take place at any moment
(DistributedServersDemo3-big.mov - 7.20 Mb)
4. Connection recovery upon server crash 4. Connection recovery upon server crash
(DistributedServersDemo4-big.mov - 7.82 Mb)
5. Connection recovery with client-side buffering 5. Connection recovery with client-side buffering
(DistributedServersDemo5-big.mov - 6.56 Mb)
by Guillaume Pierre last modified 2008-08-25 16:00