a straggler slows everything down
Better than linear scalability (per server >1 user)
Per resource added, exactly one extra user can additionally use the service
Per resource added, less than one user can additionally use the service
Too expensive to make everything fully redundant
Replicate the data and service and have the job run again.
Remember the data lineage for a job and re-run task. Easier for stateless.
May introduce data consistency problems (e.g. data consumed, new data pushed)
1.15-1.18
Inverse of data center efficiency
High numbers of read only operations
Catch Up Recovery
Failover
synchronous or asynchronous
If a partition is unfair, that is, one part has more data or queries.
Disproportionally high load
Empty AppendEntries RPCs
100-500ms
In consensus 1 or more nodes propose values, only one of which is accepted. Crashes are tolerated in this system.
As for Atomic Commits, every node votes whether or not it wishes to commit or abort. Commits require all nodes, whilst aborts require 1+ nodes to vote abort. Crashes cause a direct abort.
Linearizability only handles a single transaction, whilst Serializability groups transactions together, that can be executed in parallel.
Yes, known as Strict Serializability
Operation Based CRDT
s1 U s2 = s2 U s1
(s1 U s2) U s3 = s1 U (s2 U s3)
s1 U s1 = s1