Ernestas Poškus

Technical blog

"We must view with profound respect the infinite capacity of the human mind to resist the introduction of useful knowledge." - Thomas R. Lounsbury

| github | goodreads | linkedin | twitter |

ansible 2 / elasticsearch 2 / kernel 2 / linux 2 / mnemonics 1 / nginx 1 / paper 38 / personal 5 / rust 1 / tools 2 /

Harvest Yield and Scalable Tolerant Systems

WC 153 / RT 1min


Scalable tolerant systems

Degradation in terms of harvest and yield, and map it directly onto engineering mechanisms that enhance availability by improving fault isolation, and in some cases also simplify programming.

CA without P: Databases that provide distributed transactional semantics can only do so in the absence of a network partition separating server peers.

CP without A: In the event of a partition, further transactions to an ACID database may be blocked until the partition heals, to avoid the risk of introducing merge conflicts (and thus inconsistency).

AP without C: HTTP Web caching provides client-server partition resilience by replicating documents, but a client-server partition prevents verification of the freshness of an expired replica. In general, any distributed database problem can be solved with either expiration-based caching to get AP, or replicas and majority voting to get PC (the minority is unavailable).

Many applications are best described in terms of reduced consistency or availability.