Browse Prior Art Database

Method to maintain higher availability of a resource with highly dynamic state or higher bootstrap cost in a highly availabile web hosted environment

IP.com Disclosure Number: IPCOM000185365D
Original Publication Date: 2009-Jul-22
Included in the Prior Art Database: 2009-Jul-22
Document File: 4 page(s) / 131K

Publishing Venue

IBM

Abstract

A method is disclosed that enables higher available of a resource with highly dynamic state or higher bootstrap cost in a highly available web hosted environment. The core idea of the invention is to have only one active instance of the resource, that has high bootstrap cost and highly dynamic, non-replicable state, and multiple inactive instances. Each instance is associated with a resource manager, which knows about the other resource managers, and also knows about the currently active resource instance. Upon failure of the active resource instance, a new instance is bootstrapped and the resource managers are updated with information about the newly active instance. Using this technique, you still use the resource which has characteristics of being highly dynamic, non-replicable and having a high bootstrap costs in an environment which provides resiliency and failover. The disclosure provides a mechanism to manage availability of a resource with characteristics of being dynamic and high bootstrap costs at an application level where it is not possibile to rely on the generic infrastructure (like a cookie based session affinity) to maintain the sound operation of a feature by routing requests to a particular instance of a resource.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 46% of the total text.

Page 1 of 4

Method to maintain higher availability of a resource with highly dynamic state or higher bootstrap cost in a highly availabile web hosted environment

The High availability of a web hosted system is the ability of the system to respond to requests in a timely fashion no matter what time of the day it is. High availability requires that the topology of the server infrastructure provides some degree of redundancy in order to eliminate single points of failure. A high availability solution typically involves both vertical scaling and horizontal scaling. Vertical scaling provides redundancy by creating multiple processes and horizontal scaling provides redundancy by using multiple physical machines, thus eliminating a physical machine as a single point of failure.

A typical web application hosted by such a highly available environment has some state information that needs to be remembered between user requests. This state information maybe stored in persistent storage like a database or maybe held in main memory. In order to ensure predictable operation in the environment, it is required that the state be shared between the multiple replicas of the application (horizontal and vertical) so that if one of the replicas fails, another replica has the same shared state so that is can service a user request in a consistent and reliable manner. This is typically achieved by having a shared persistent storage like a database available to all the replicas or by replicating the state stored in memory between all the replicas, as the state changes.

The diagram below shows these two schemes:-

- Memory to Memory State Replication

Shared Persistence Storage

1

[This page contains 1 picture or other non-text object]

Page 2 of 4

The Problem:

Consider a highly available environment where all the components are redundantly available using the general techniques described above. In this kind of an environment, if we introduce a component/resource that has one or both of the following constraints:

The resource may be heavily depend on state information which is highly dynamic and cannot be easily replicated across the replicas. This means that it can be preferable to reuse a single initialized instance for fielding requests.

The resource may have a high bootstrap cost and it may not be desirable to initialize several instances of the resources at the same time.

For both the characteristics described above, it is desirable that the fail over should only kick in only if the resource fails or becomes unavailable. The problem now is about how to maintain sound operation of the resource while providing the same level of high availability as the rest of the system. Below are the details on the solution to this problem

2

[This page contains 1 picture or other non-text object]

Page 3 of 4

The system boundary in the diagram identifies the focus a...