{
  "schemaVersion": 1,
  "generatedBy": "node scripts/generate-pbs-count-mixtures.mjs",
  "evidenceType": "constructed-exact-combinatorial-example",
  "sourceUrl": "https://www.vldb.org/pvldb/vol5/p776_peterbailis_vldb2012.pdf",
  "sourceLocation": "Equation 2 supplies the conditional model; the mixture is Hesela's deduction.",
  "articleUrl": "https://hesela.com/analyses/replica-repair-coverage/#pbs-count-mixtures",
  "event": "A read misses every holder of the K most recent completed versions.",
  "population": "Constructed observations; K is a positive integer selected independently of replica placement.",
  "units": "Dimensionless probability; K counts acceptable versions, not milliseconds.",
  "assumptions": [
    "One key and fixed N replicas; independent uniform W-subsets for completed writes.",
    "A uniform R-subset is read independently of writes and K; newest returned version wins.",
    "No further propagation, concurrent writes, failures, eviction or membership changes.",
    "A holder retains its newest received version; the acceptable suffix contains K completed writes.",
    "Positive integer weights specify exact probability mass after normalization, not measured traffic."
  ],
  "formula": "P(miss) = sum_k P(K=k) * p^k; p=C(N-W,R)/C(N,R).",
  "limitations": [
    "Not a cluster experiment, measured failure rate, workload forecast or reproduction of PBS latency results.",
    "The mean-substitution value p^E[K] is a comparison, not the correct mixture in general.",
    "Previous read observations can condition placements; this is not a full session-history model.",
    "Placement correlation or dependence on K requires a different conditional model.",
    "Exact finite probabilities need no sampling confidence interval; model mismatch is unquantified."
  ],
  "rows": [
    {
      "label": "Always 3",
      "windows": [
        {
          "k": 3,
          "weight": 1
        }
      ],
      "n": 3,
      "r": 1,
      "w": 1,
      "totalWeight": 1,
      "meanK": {
        "numerator": "3",
        "denominator": "1",
        "value": 3
      },
      "miss": {
        "numerator": "8",
        "denominator": "27",
        "value": 0.2962962962962963
      },
      "meanSubstitution": 0.2962962962962962
    },
    {
      "label": "Half 2, half 4",
      "windows": [
        {
          "k": 2,
          "weight": 1
        },
        {
          "k": 4,
          "weight": 1
        }
      ],
      "n": 3,
      "r": 1,
      "w": 1,
      "totalWeight": 2,
      "meanK": {
        "numerator": "3",
        "denominator": "1",
        "value": 3
      },
      "miss": {
        "numerator": "26",
        "denominator": "81",
        "value": 0.32098765432098764
      },
      "meanSubstitution": 0.2962962962962962
    },
    {
      "label": "Half 1, half 5",
      "windows": [
        {
          "k": 1,
          "weight": 1
        },
        {
          "k": 5,
          "weight": 1
        }
      ],
      "n": 3,
      "r": 1,
      "w": 1,
      "totalWeight": 2,
      "meanK": {
        "numerator": "3",
        "denominator": "1",
        "value": 3
      },
      "miss": {
        "numerator": "97",
        "denominator": "243",
        "value": 0.3991769547325103
      },
      "meanSubstitution": 0.2962962962962962
    }
  ],
  "sourceSha256": {
    "pbs-count-mixtures.mjs": "97cc244b6248834dbfeafc0ddf45afd9d5f72120c9e232d029401568a409ef67",
    "partial-quorum.mjs": "ddaf0c7691f1f31fe5ec108c1fa70de1fb6164a29daa481026194dc5c7876aef"
  }
}
