{
    "content": "<h1>Linearizability<\/h1><p><a href=\"..\/Linearizability\/\">Linearizability<\/a> is one of the strongest <a href=\"..\/Consistency-Model\/\">Consistency Models<\/a> used in <a href=\"..\/Concurrent-Programming\/\">Concurrent Programming<\/a> and <a href=\"..\/Distributed-Systems\/\">Distributed Systems<\/a>. It was first introduced by <a href=\"..\/Maurice-Herlihy\/\">Maurice Herlihy<\/a> and <a href=\"..\/Jeannette-Wing\/\">Jeannette Wing<\/a> in their seminal 1990 paper. The model provides a guarantee that operations on a shared object appear to take effect instantaneously at some point between their invocation and their response. This creates the illusion that the system consists of a single copy of the data, even if it is physically distributed across multiple nodes.<\/p><p>A key characteristic of <a href=\"..\/Linearizability\/\">Linearizability<\/a> is that it is a local property: if every object in a system is individually linearizable, then the entire system is linearizable. This distinguishes it from other models like <a href=\"..\/Sequential-Consistency\/\">Sequential Consistency<\/a>, which is not local. Furthermore, <a href=\"..\/Linearizability\/\">Linearizability<\/a> respects the real-time ordering of operations. If an operation A finishes before operation B starts, A must appear to occur before B in the linearized history. This property is crucial for building predictable <a href=\"..\/Distributed-Algorithms\/\">Distributed Algorithms<\/a>.<\/p><p>In the context of the <a href=\"..\/CAP-Theorem\/\">CAP Theorem<\/a>, <a href=\"..\/Linearizability\/\">Linearizability<\/a> corresponds to the 'C' or Consistency component. Achieving this level of consistency in a distributed environment often requires the implementation of <a href=\"..\/Consensus-Algorithms\/\">Consensus Algorithms<\/a> such as <a href=\"..\/Paxos\/\">Paxos<\/a> or <a href=\"..\/Raft\/\">Raft<\/a>. Many modern databases and coordination services, such as <a href=\"..\/Etcd\/\">Etcd<\/a> and <a href=\"..\/Apache-ZooKeeper\/\">Apache ZooKeeper<\/a>, offer linearizable operations to ensure data integrity. For a deeper technical dive, refer to the <a href=\"https:\/\/dl.acm.org\/doi\/10.1145\/78969.78972\">original Herlihy and Wing research<\/a> or the consistency model analysis provided by <a href=\"https:\/\/jepsen.io\/consistency\/models\/linearizable\">Jepsen<\/a>.<\/p><ul><li><a href=\"..\/Strict-Serializability\/\">Strict Serializability<\/a><\/li><li><a href=\"..\/Eventual-Consistency\/\">Eventual Consistency<\/a><\/li><li><a href=\"..\/Atomic-Operations\/\">Atomic Operations<\/a><\/li><li><a href=\"..\/Distributed-Shared-Memory\/\">Distributed Shared Memory<\/a><\/li><\/ul>",
    "tags": [
        "distributed systems",
        "consistency models",
        "concurrency",
        "atomic operations",
        "cap theorem",
        "distributed computing",
        "algorithms",
        "fault tolerance",
        "synchronization",
        "computer science"
    ]
}