(2) GFS: GFS also has an eventual consistency model as Dynamo.
It applies the operations log to recover the file and uses chunk version
numbers to detect any stale replicas. Chunk server uses checksum
to detect any additional data corruption due to server failure.
In case of uncertainty, the data are made unavailable. Any successful
operation of atomic_record_append guarantees consistency.
(3) Bigtable has its own features to support consistency. Each
read or write is serializable, making it easy to maintain consistency
in case of concurrent updates to the same row. Each row is copyon-
write to maintain row-level consistency.
Different cells in a table can contain multiple versions of the
same data, indexed by timestamps. SSTables contain relatively
old updates, while a buffer called memtable contains the recent
updates. Updates are recorded in a commit log to recover the
memtable. There is no synchronization of accesses required when
reading from SSTables because SSTables are immutable.
(4) Cassandra uses a weak consistency model to maintain
different replicas of an object. When a write request is received in
a node, the system routes the requests to the replicas and waits for
a quorum of replicas to acknowledge the completion of the write.
Read requests are based on the consistency guarantees required
by the client. The system can either route the request to the closest
replica or send the request to all replicas and wait until a quorum
of replicas respond.