RHT is perfect for
when you need the common interface
of a hash table (key value). It is
easy to work with. If you know how
to use and work with a hash table,
you know how to work with RHT.
What
happens when one or more replica
crashes or is cut off from the rest?
RHT handles network
partitions and merges with ease.
Each side of a disconnected replica
set can make updates as normal.
When a network merge occurs, each
side synchronized the table state
with the other side so that in the
end all replica are again the same.
If the same key it modified on both
sides of a network partition, RHT
makes no guarantee of which entry
will finally win, only that after
a re-merge, all replica will agree
on the key's final value.
RHT does not persistently
store updates however. So if an
update is made on a replica that
is disconnected from other replica,
and it crashed before it can re-establish
communication with the rest of the
replicas to synchronize with them,
then data can be lost. (If stronger
requirements are needed, consider
the Congruity
replication engine).
What
are some example applications?
RHT is a hash table.
Use it anywhere you need hash table
like access to a common state in a
distributed system.