LESS ± epsilon

You will find here the latest status of the LESS project work on cooperative replication and metrics-based (or epsilon) divergence control protocols.

Cooperative Replication

In most case where cooperation is involved, the shared information is deterministic. In these case replica divergence control is all about distributed scheduling. Cooperative replication is a simple design principle where each replica is associated to one unique scheduler. We end up with a set of replicas partitioned along a set of schedulers. The schedulers cooperate together to constitute a single distributed scheduler of the shared replicated information. The rule of cooperation depends on the underlying divergence control protocol.

In the simplest case, each replica get its own scheduler, mapped in the replica context. In the case of interactive applications, the replica context is likely to be managed in the same context as the local application proxy managing the interaction with outside agents - allowing local access and concurrency control to the shared information.

One interesting property of cooperative replication is that it welcomes epsilon divergence control protocols.

Epsilon divergence control

is a new technic used to absorb wide-area latency in distributed coordination protocols. The key idea is to parameterized distributed scheduling by an operation specific metrics provided by the application. This metrics is used to bound the operations scheduled «locally» with no cooperation with remote schedulers. In a wide-area network where inter-scheduler latency is huge, this might be a big win. We developed a family of protocols, some of them readily available around these ideas.

Interested? Keep posted :-)


Here is a still in progress draft of how metrics-based divergence control works, how it copes with high-latency, why it is sound and how it relates to imprecision.

We continue to spend some time to put these ideas at work. We built some kind of a middleware prototype available as Objective Camel modules. You can upload the current prototype. You will find the protocols implementation and some simple benchmark applications built on top of them. The prototype is distributed under the GNU LGPL license. It requires Objective Camel version 2.02 or above and Ensemble version 0.61.


Georges Brun-Cottan
Last modified: Sun Apr 2 17:30:50 EDT 2000