View Full Version : RAIN Technology

June 29th, 2006, 08:52 PM
"RAIN Technology"

"Reliable Array of Independent Nodes"

"Its Origin"

Rainfinity's technology originated in a research project at the California Institute of Technology (Caltech), in collaboration with NASA's Jet Propulsion Laboratory and the Defense Advanced Research Projects Agency (DARPA). The name of the original research project was RAIN, which stands for Reliable Array of Independent Nodes. The goal of the RAIN project was to identify key software building blocks for creating reliable distributed applications using off-the-shelf hardware. The focus of the research was on high-performance, fault-tolerant and portable clustering technology for space-borne computing. Two important assumptions were made, and these two assumptions reflect the differentiations between RAIN and a number of existing solutions both in the industry and in academia:

1) The most general share-nothing model is assumed. There is no shared storage accessible from all computing nodes. The only way for the computing nodes to share state is to communicate via a network. This differentiates RAIN technology from existing back-end server clustering solutions such as SUNcluster, HP MC Serviceguard or Microsoft Cluster Server.

2) The distributed application is not an isolated system. The distributed protocols interact closely with existing networking protocols so that a RAIN cluster is able to interact with the environment.Specifically, technological modules were created to handle high-volume network-based transactions.

In short, the RAIN project intended to marry distributed computing with networking protocols. It became obvious that RAIN technology was well-suited for Internet applications. During the RAIN project, key components were built to fulfill this vision. A patent was filed and granted for the RAIN technology. Rainfinity was spun off from Caltech in 1998, and the company has exclusive intellectual property rights to the RAIN technology. After the formation of the company, the RAIN technology has been further augmented and additional patents have been filed.

"Its Architecture"

The RAIN technology incorporates a number of unique innovations as its core modules:

Reliable transport ensures the reliable communication between the nodes in the cluster. This transport has a built-in acknowledgement scheme that ensures reliable packet delivery. It transparently uses all available network links to reach the destination. When it fails to do so, it alerts the upper layer, therefore functioning as a failure detector. This module is portable to different computer platforms, operating systems and networking environments.

Consistent global state sharing protocol provides consistent group membership, optimized information distribution and distributed group-decision making for a RAIN cluster. This module is at the core of a RAIN cluster. . It enables efficient group communication among the computing nodes, and ensures that they operate together without conflict.

Always-On-IP maintains pools of "always-available" virtual IPs. These virtual IPs are logical addresses that can move from one node to another for load sharing or fail-over. Usually a pool of virtual IPs is created for each subnet that the RAIN cluster is connected to. A pool can consist of one or more virtual IPs. Always-On-IP guarantees that all virtual IP addresses representing the cluster are available as long as at least one node in the cluster is operational. In other words, when a physical node fails in the cluster, its virtual IP will be taken over by another healthy node in the cluster.

Local and global fault monitors track on a continuous or event-driven basis, the critical resources within and around the cluster: network connections, Rainfinity or other applications residing on the nodes, remote nodes or applications. They are an integral part of the RAIN technology, guaranteeing the healthy operation of the cluster.

Secure and central management offers a browser-based management GUI for centralized monitoring and configuration of all nodes in the RAIN clusters.The central management GUI connects to any node in the cluster to obtain a single-system view of the entire cluster. It actively monitors the status, and can send operation and configuration commands to the entire cluster.


RAIN technology is the most scalable software cluster technology for the Internet marketplace today. There is no limit to the size or the performance of a RAIN cluster. Within a RAIN cluster, there is no master-slave relationship or primary-secondary pairing. All nodes are active and can participate in load balancing. Any node can fail-over to any other node. A RAIN cluster can tolerate multiple node failures, as long as at least one node is healthy. It employs highly efficient consistent state sharing and decision making protocols, so that the entire cluster can function as one system.

A RAIN cluster is a true distributed computing system that is resilient to faults.It behaves well in the presence of node, link and application failures, as well as transient failures. When there are failures in the system, a RAIN cluster gracefully degrades its performance to exclude the failed node, but maintains the overall functionality. New nodes can be added into the cluster "on the fly" to participate in load sharing, without taking down the cluster. With RAIN, online maintenance without downtime is possible. Part of the cluster can be taken down for maintenance, while the other part maintains the functionality.

This software-only technology is open and highly portable. It works with a variety of hardware and software environments. Currently it has been ported to Solaris, NT and Linux.It is conceivable to port it to more environments, including embedded systems. It supports a heterogenous environment as well, where the cluster can consist of nodes of different operating systems with different configurations. There is no distance limitation to RAIN technology. It supports clusters of geographically distributed nodes. It can work with many different Internet applications.