{
  "schemaVersion": 1,
  "evidenceType": "exact-combinatorial-illustration",
  "generatedAt": "2026-10-14T04:37:08.766Z",
  "codeUrl": "https://hesela.dev/research/partial-quorum.mjs",
  "testsUrl": "https://hesela.dev/research/partial-quorum.test.mjs",
  "codeSha256": "ddaf0c7691f1f31fe5ec108c1fa70de1fb6164a29daa481026194dc5c7876aef",
  "sourceUrl": "https://www.vldb.org/pvldb/vol5/p776_peterbailis_vldb2012.pdf",
  "sourceLocation": "Equations 1-2; sections 3.1, 4 and 6",
  "articleUrl": "https://hesela.com/analyses/replica-repair-coverage/#partial-quorums",
  "event": "A read set misses every replica holding any of the last k completed versions.",
  "units": "Dimensionless probability; k is a count of versions, not time.",
  "assumptions": [
    "One key, fixed N distinct replicas, R distinct read responders, W holders per write.",
    "Uniform read subset, independent of the write subsets.",
    "Independent case: each of k ordered completed writes uses a fresh uniform W-subset.",
    "Repeated case: one uniform W-subset is reused for all k completed writes.",
    "No propagation beyond W holders, concurrent writes, failures, eviction or membership changes.",
    "A contacted holder retains the latest version it received; reads select the newest returned version."
  ],
  "limitations": [
    "No cluster, latency distribution, wall-clock staleness bound or production failure rate measured.",
    "Exact arithmetic has no sampling confidence interval; model mismatch remains unquantified.",
    "Changing to repeated placement deliberately breaks independence; it is an illustrative sensitivity case.",
    "Strict overlap is not a standalone proof of linearizability or durability."
  ],
  "rows": [
    {
      "n": 3,
      "r": 1,
      "w": 1,
      "k": 1,
      "independent": {
        "numerator": "2",
        "denominator": "3",
        "probability": 0.6666666666666666
      },
      "repeated": {
        "numerator": "2",
        "denominator": "3",
        "probability": 0.6666666666666666
      }
    },
    {
      "n": 3,
      "r": 1,
      "w": 1,
      "k": 2,
      "independent": {
        "numerator": "4",
        "denominator": "9",
        "probability": 0.4444444444444444
      },
      "repeated": {
        "numerator": "2",
        "denominator": "3",
        "probability": 0.6666666666666666
      }
    },
    {
      "n": 3,
      "r": 1,
      "w": 1,
      "k": 3,
      "independent": {
        "numerator": "8",
        "denominator": "27",
        "probability": 0.2962962962962963
      },
      "repeated": {
        "numerator": "2",
        "denominator": "3",
        "probability": 0.6666666666666666
      }
    },
    {
      "n": 3,
      "r": 1,
      "w": 2,
      "k": 3,
      "independent": {
        "numerator": "1",
        "denominator": "27",
        "probability": 0.037037037037037035
      },
      "repeated": {
        "numerator": "1",
        "denominator": "3",
        "probability": 0.3333333333333333
      }
    },
    {
      "n": 5,
      "r": 2,
      "w": 2,
      "k": 2,
      "independent": {
        "numerator": "9",
        "denominator": "100",
        "probability": 0.09
      },
      "repeated": {
        "numerator": "3",
        "denominator": "10",
        "probability": 0.3
      }
    },
    {
      "n": 3,
      "r": 2,
      "w": 2,
      "k": 1,
      "independent": {
        "numerator": "0",
        "denominator": "1",
        "probability": 0
      },
      "repeated": {
        "numerator": "0",
        "denominator": "1",
        "probability": 0
      }
    }
  ]
}
