Fault Tolerant File

Maciej SmoleĊ„ski


Fault Tolerant File

Fault Tolerant File is a library that provides fault tolerance for a file. 2 * F + 1 locations are used. Operations can be performed at any time when F + 1 correct locations are available. This provides fault tolerance for F locations. If there are less then required F + 1 correct locations then operations wont be performed until enaugh correct locations are available.

Guarantees provided:

Linearizability

Sequence of values returned by read operations is a subsequence of sequence of write operations values.

Consistency

Read operations following successful write operation return the written value until next write operation is performed.

High Availability

F + 1 correct locations availability is required to perform next operation

Fault Tollerance

F of 2 * F + 1 locations can fail at any time

Recovery

Failed locations when fixed will be correct in the system after next write operation

The protocol used in this solution is based on Paxos[Lamport1990] and Query/Update[QU] protocols.

Download

libftfile-0.1.tar.gz

License

Library is licensed under BSD License (3-clause license).

Documentation

Library testing screencast.

Bibliography

Lamport1990

The Part-Time Parliament (Leslie Lamport)

QU

Fault-Scalable Byzantine Fault-Tolerant Services (Michael Abd-El-Malek, Gregory R. Ganger, Garth R. Goodson, Michael K. Reiter, Jay J. Wylie)