OpenAIS 0.80 review
DownloadThe openais project is a project to implement a production quality "Revised BSD" licensed implementation of the SA Forum's Applicatio
|
|
The openais project is a project to implement a production quality "Revised BSD" licensed implementation of the SA Forum's Application Interface Specification. OpenAIS project implements cutting edge research on virtual synchrony to provide 100% correct operation in the face of failures or partitionable networks with excellent performance characteristics.
The Application Interface Specification is a software API and policies which are used to develop applications that maintain service during faults. The API consists of Availability Management Framework (AMF) which provides application failover, Cluster Membership (CLM), Checkpointing (CKPT), Event (EVT), Messaging (MSG), and Distributed Locks (DLOCK).
Faults occur for various reasons:
Application Failure
Middleware Failure
Operating System Failure
Hardware Failure
The major focus of high availability in the past has been to mask hardware faults. Faults in other components of the system have gone unsolved until AIS. AIS can mask many types of faults in applications, middleware, operating systems, or even hardware by providing a simple framework for allowing developers to create redundant applications. These redundant applications can be distributed over multiple nodes such that if any one node faults, another node can recover.
Application programmers develop applications to periodically record their state using the checkpointing service. When an active application fails, a standby application recovers the state of the application. This technique, called stateful application failover, provides the fundamental difference between openais and other systems that have come before it. With stateful application failover, the end-application user doesn't have to reload the application or redial a telephone. The full state is recorded, so the end-application user sees no interruption in service.
Because programmers can now distribute applications across multiple processes or nodes, a mechanism must exist for them to communicate. This mechanism is provided by two services. The event service provides a publish/subscribe model for events. The messaging service provides end to end messaging. Finally a mechanism to synchronize access is provided by the distributed lock service.
What's New in This Release:
A bunch of miscellaneous TODOs in the lib directory were fixed.
openais-cfgtool was added to re-enable redundant rings and print their status.
A fix was made to the CPG service to atomically handle recovery.
The synchronization service was fixed.
Compile time maximums were increased to 1MB for messages of any type and 384 processors.
More than 32 processors is currently untested.
The fragmentation assembly list was changed to use the minimum number of assembly buffers as necessary to achieve functionality while reducing memory footprint at large ring sizes.
OpenAIS 0.80 keywords