Skip to main content

FRAPP'E

FRAPP'E is a replication platform for elastic services that aims to address cloud-age and large data centers' challenges stemming from their highly dynamic natures. In these platforms, a large number of inexpensive resources are dynamically partitioned and assigned based on changing needs and frequent failures. Thus, cloud configurations (e.g., resource allocations) must be dynamic, as they reflect the changes due to changing workloads. Cloud configuration data needs to be highly available and consistent, as even a short-term loss is disastrous to the cloud, which cannot accept new work and cannot react to an increasing load.

FRAPP'E provides developers a means for high availability of their services, a way to store their state consistently, and coordination of operations of the services over the resources. An auto-scaling service, for example, must ensure that for each moment in time, one process, at most, is performing scaling (a.k.a. leader election coordination) or synchronizing update operations among the processes (a.k.a. lock coordination).

Click to see full size
FRAPP'Es APIs and command ordering

FRAPP'E provides coordination APIs (e.g., Lock, Leader Election, Membership, etc.) as well as APIs for consistent data storage, as shown in the figure above.

FRAPP'E is implemented as a collection of collaborating servers that keep the data store and the coordination data synchronized among the servers (replication group cluster). FRAPP'E is unique in its ability to be elastic. It offers dynamic scale-in or scale-out of its cluster members, a.k.a. reconfiguration, while continuing its normal operation.

In a cloud or data-center environment, several replication group clusters can coexist, as depicted in the figure below. Each member of the replication group can be either active or idle. The active members hold the up-to-date copies of the state, and are responsible for the client and reconfiguration commands ordering, as depicted in the figure above. The set of all currently active members of a replication group form the group's cohort. The ordering protocol (an extended flavor of the known PAXOS algorithm) is orchestrated by a distinguished member of the cohort, called the leader. The current cohort members and leader identity within each replication group is maintained by the cohort members, and propagated to the idle members.

FRAPP´Es elastic replication groups
FRAPP´Es elastic replication groups

FRAPP'E is flexible and extensible. It can run as a stand-alone service providing consistent data store and coordination APIs to other services acting as clients of FRAPP'E, or it can be embedded into an existing service that would internally leverage one or more of FRAPP'E's data stores and coordination APIs as needed and possibly expose outside service-specific APIs. Embedding FRAPP'E into a service makes that service dynamically elastic and highly available on its own. In addition, new coordination APIs can be easily plugged into FRAPP'E's framework via well-defined extension points. An extension point also exists to plug in automatic reconfiguration policy plugins to allow developers to support reconfiguration policies other than the one provided by FRAPP'E.