Ticket #1614 (new proposed-project)
Replicating backend for AcidState.
|Reported by:||Lemmih||Owned by:|
|Priority:||not yet rated||Keywords:|
Description (last modified by stepcut) (diff)
AcidState is a high performance library for adding ACID ( http://en.wikipedia.org/wiki/ACID) guarantees to (nearly) any kind of Haskell data structure. In layman's term, it's a library that will make your data persist even in the event of, say, a power outage.
AcidState relies on an on-disk transaction log from which to recreate the Haskell data structure if your application crashed unexpectedly. This makes the hard drive a single point of failure (leading to the loss of data, even) and the low reliability of hard drives simply does not merit this.
I propose that this should be solved by replicating the state across a cluster of machines. Each machine would keep a copy of the transaction log on disk and the single point of failure would be gone.
When thinking about this project, one has to keep the CAP theorem ( http://en.wikipedia.org/wiki/CAP_theorem) in mind. In particular, I propose consistency and availability to be guaranteed. Partition tolerance (compared to consistency and availability) has fewer uses and is much harder to implement.
AcidState is already structured for multiple backends so few, if any, internal changes are required before this project can begin.
- Jeremy Shaw (an officially accepted haskell.org mentor)
- David Himmelstrup.