🤓
Isitha's Wiki
  • Isitha's Wiki
  • software_engineering
    • management
      • process_and_management
        • Project Management
        • Agile
        • Projects
        • Waterfall
        • Project Screening
        • Prince2
        • project_manager
        • Project initialisation
      • individuals_and_motivation
        • Teams and teamwork
        • Individuals and Motivation
        • Organisational theory and motivation
        • Project management and leadership
        • Team structures
        • Team advantages/disadvantages
        • How teams form & perform - Tuckman's team development model
      • cost_estimation
        • Function Points
        • Size Estimation
        • Challenges in cost estimation.
        • Cost Estimation
        • Use case points (UCP)
        • Techniques for cost estimation
      • risk_management
        • Risk Management
        • Risk Management Planning
        • Risk management process
    • quality_management
      • Verification vs Validation
      • Quality management
    • languages
      • Erlang
      • C
      • C++
      • JavaScript
      • Lua
      • Go
      • x86 Assembly
      • Racket
      • TypeScript
      • Rust
      • Haskell
      • Java
      • C#
    • frameworks
      • spring
        • Deferred Result
        • Spring
      • react
        • React Basics
      • llvm
        • LLVM Basics
        • SSA form
    • cost_estimation
      • Cocomo
  • computer_science
    • ai
      • Hutter Prize
      • AIXI
    • programming_language_theory
      • types
        • Algebraic Data Type (ADT)
        • Hindler-Milner type system
        • Linear Types
        • Affine types
      • optimisations
        • Data Flow Analysis
        • Basic Blocks
        • Liveness
        • Peephole optimisation
      • codegen
        • Codegen
        • Single Static Assignment (SSA) form
      • parsers
        • Parsing Expression Grammer (PEG) parser
        • LL1 parser
        • Earley parser
        • LR(1) parser
        • LR(0) parser
        • SLR(1) parser
      • semantics
        • Attribute grammars
    • distributed_systems
      • Consistency
      • operating_systems
        • Memory
        • Processes and threads
        • Operating System
      • Challenges of Distributed Systems
      • CAP (or more accurately PACELC) theorem
      • distributed_models
        • Distributed Models
      • distributed_file_systems
        • Distributed File Systems
        • Strong Consistency
        • Google File System
      • CRDT (Conflict-free Replicated Data Types)
      • Computer Networks
      • Distributed Systems
    • data_structures
      • Segment Trees
      • Fibonacci heaps
      • Bloom filter
      • Adaptive Radix Tree
      • Links
      • Judy Arrays
      • Pairing heaps
    • search
      • Inverted Index
    • theoretical
      • Z-order curve
      • Kolmogorov complexity
      • Solomonoff's theory of inductive inference
      • Hilbert Curve
      • Hilbert curve scheduling
    • compression
      • Entropy
      • Compression
  • math
    • set_theory
      • AntiSymmetry
      • Transivity
      • Reflexivity
    • calculus
      • Calculus Basics
    • complex_numbers
      • Complex Numbers
    • linear_algebra
      • Linear Algebra
    • Blogs
  • physics
    • quantum_physics
      • quantum_tunnelling
    • string_theory
      • String Theory
    • relativity
      • Relativity
    • quantum_loop_gravity
      • Quantum Loop Gravity
  • philosophy
    • stoicism
      • Zeno of Citium
      • Epictetus
    • existentialism
      • Simone De Beauvoir
      • Jean-Paul Sartre
      • Albert Camus
      • Soren Kierkegaard
Powered by GitBook
On this page
  1. computer_science
  2. distributed_systems

CAP (or more accurately PACELC) theorem

PreviousChallenges of Distributed SystemsNextdistributed_models

Last updated 3 years ago

CAP Theorem asserts that you can only have two of the three, Consistency, Availability or Partition tolerance. However, Partition tolerance must be in place, we do not have the choice to drop Partition tolerance.

PACELC states that in the absence of partitions, you will still have to choose between latency and consistency.

Probabilistic Bounded Staleness (PBS) helps us here, it can emperically give a probability to the staleness of our data!.

But interestingly, we dont always have to choose one of CAP, if you drop support for update operations, it is possible to have all three!!

Resources

http://nathanmarz.com/blog/how-to-beat-the-cap-theorem.html
https://codahale.com/you-cant-sacrifice-partition-tolerance/