Many options exist for adding high availability of programs that
manipulate soft state and these can be broadly classified into three
categories [17]:
• Clustered application servers.
• Messaging toolkit.
• Collocated in-memory databases.
Nodes in the soft state layer are organized in a logical ring overlay
as nodes of the fully decentralized type. For example, a user
request can be transparently redirected during a crash or overload
to a different service instance that has up-to-date session
context, without requiring log-in again. Loss of connectivity to
nodes prompts other nodes to take over. BASE databases can recover
quickly and consistently since they usually reside on standard
commodity hardware, making them affordable for most businesses.
Services using DDS (Data Distribution Service) may keep soft
state, but they rely on the hash table to manage all persistent states.
DDS library contains only soft state, including metadata about
the cluster’s current configuration and partitioning of data in the
distributed hash tables across the BRICKS (Building Resources for
Integrated Cultural Knowledge Services, an open-source software
framework for the management of distributed digital assets).
4.3. Eventually consistent
As data is replicated when new storage nodes are added, it is
eventually copied to all applicable nodes. But there is no requirement
for all nodes to have identical copies of any given data all the
time. BASE ensures at least 80% consistency at any given instant
over the flow of the operations.
(1) Dynamo operates with high consistency at the cost of
weaker availability. It is designed to be ‘‘Eventually Consistent’’
where consistency is maintained through ‘‘Object Versioning’’. As
the system aims to provide an ‘‘always writable’’ state, the conflicts
are resolved in the read operation using the versioning and
application-specific resolution protocols. When dealing with the
uncertainty of the correctness of an answer, the data are made unavailable
until it is absolutely certain that it is correct. Dynamo
points to self-repair mechanisms in the key-value store to implement
eventual consistency in practice [18].