SYSTEM FOR LIVE-MIGRATION AND AUTOMATED RECOVERY OF APPLICATIONS IN A DISTRIBUTED SYSTEM
First Claim
1. A server configured to deliver a service to at least one client connected to the server, the server operable in either of a master role or a slave role for each of a plurality of applications comprising:
- a network interface for connecting the server to at least one other similar server in a cluster of similar servers;
service delivery logic operable when the server is in a master role for an application for hosting that application to deliver the service to the client;
master logic operable when the server is in a master role for an application configured to replicate changes in data of that application to a configurable number of servers of the cluster;
slave logic operable when the server is in a slave role for an application hosted on another server in the cluster configured to receive replicated changes in data from a current master server of the cluster for that application and to maintain a version of the live application data for that application;
control logic configured to detect an event in the cluster and responsive to the event to autonomously switch the role of the server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the maintained version to host the application.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus for distribution of applications amongst a number of servers, ensuring that changes to application data on a master for that application are asynchronously replicated to a number of slaves for that application. Servers may be located in geographically diverse locations; the invention permits data replication over high-latency and lossy network connections and failure-tolerance under hardware and network failure conditions. Access to applications is mediated by a distributed protocol handler which allows any request for any application to be addressed to any server, and which, when working in tandem with the replication system, pauses connections momentarily to allow seamless, consistent live-migration of applications and their state between servers. Additionally, a system which controls the aforementioned live-migration based on dynamic measurement of load generated by each application and the topological preferences of each application, in order to automatically keep servers at an optimum utilisation level.
71 Citations
60 Claims
-
1. A server configured to deliver a service to at least one client connected to the server, the server operable in either of a master role or a slave role for each of a plurality of applications comprising:
-
a network interface for connecting the server to at least one other similar server in a cluster of similar servers; service delivery logic operable when the server is in a master role for an application for hosting that application to deliver the service to the client; master logic operable when the server is in a master role for an application configured to replicate changes in data of that application to a configurable number of servers of the cluster; slave logic operable when the server is in a slave role for an application hosted on another server in the cluster configured to receive replicated changes in data from a current master server of the cluster for that application and to maintain a version of the live application data for that application; control logic configured to detect an event in the cluster and responsive to the event to autonomously switch the role of the server for one or more of the applications between slave and master, wherein a change of role from slave to master uses the maintained version to host the application. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 57)
-
-
17-24. -24. (canceled)
-
25. A method of managing a plurality of applications hosted by a cluster of servers which each have an interface connectable to at least one client by a network, each application delivering a service at the client, comprising:
-
electing a server of the cluster as a master server, the master server hosting at least one live application; while the master server is hosting the live application, replicating changes in application data of the live application to a configurable number of servers in the cluster elected as slave servers whereby each elected slave server maintains a version of the application data of the live application, wherein responsive to an event in the cluster hosting of the application is transferred from the master server to one of the elected slave servers determined without intervention by a user when the event is detected, the elected slave server using its version of the current application data, to mount the application and become a new master server. - View Dependent Claims (58)
-
-
26-56. -56. (canceled)
-
59. Computer software which, when executed by appropriate processing means, causes the processing means to implement a system for dynamic migration of applications between servers, the system comprising a plurality of servers for hosting applications, each of the plurality of servers comprising a protocol handler for receiving requests for applications, wherein the protocol handler is configured to pause incoming requests for an application during migration of applications between servers.
-
60-74. -74. (canceled)
Specification