# Comparison of conditions A and B

A = reconciliation-aware controller (CNPG replication); B = snapshot-restore baseline. Run i of A is paired with run i of B. Two-sided Wilcoxon signed-rank test, zero differences dropped.

## Failure type: partition

Runs: A = 5, B = 5, complete pairs = 5

| metric | cond | n | median | IQR | mean | sd | min | max |
|---|---|---|---|---|---|---|---|---|
| RTO (s) | A | 5 | 22.58 | 22.15 to 23.69 | 33.16 | 23.74 | 21.79 | 75.60 |
| RTO (s) | B | 5 | 172.66 | 172.23 to 172.66 | 172.72 | 0.66 | 172.21 | 173.82 |
| RPO (writes lost at recovery) | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| RPO (writes lost at recovery) | B | 5 | 682 | 667.00 to 684.00 | 677.00 | 9.19 | 667 | 685 |
| RPO window (s) | A | 5 | 0.00 | 0.00 to 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| RPO window (s) | B | 5 | 136.08 | 133.16 to 136.51 | 135.13 | 1.83 | 133.12 | 136.75 |
| writes lost at the end | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| writes lost at the end | B | 5 | 682 | 667.00 to 684.00 | 677.00 | 9.19 | 667 | 685 |
| writes duplicated | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| writes duplicated | B | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| RTO, steady (s): first success after the last relapse failure | A | 5 | 22.58 | 22.15 to 23.69 | 40.30 | 39.70 | 21.79 | 111.31 |
| RTO, steady (s): first success after the last relapse failure | B | 5 | 230.66 | 230.20 to 231.41 | 230.14 | 1.90 | 226.89 | 231.53 |
| failed attempts after the first recovery | A | 5 | 0 | 0.00 to 0.00 | 284.80 | 636.83 | 0 | 1424 |
| failed attempts after the first recovery | B | 5 | 2250 | 2248.00 to 2256.00 | 2228.80 | 67.00 | 2111 | 2279 |
| platform: new primary writable (s) | A | 5 | 11.86 | 11.23 to 12.21 | 11.40 | 1.53 | 8.87 | 12.81 |
| platform: new primary writable (s) | B | 5 | 158.86 | 157.71 to 166.64 | 158.77 | 9.47 | 143.66 | 166.96 |
| platform: DNS switched (s) | A | 5 | 12.31 | 11.65 to 12.67 | 11.86 | 1.51 | 9.38 | 13.28 |
| platform: DNS switched (s) | B | 5 | 159.36 | 158.07 to 167.43 | 159.28 | 9.61 | 143.99 | 167.53 |
| attempts never acknowledged | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| attempts never acknowledged | B | 5 | 391 | 387.00 to 406.00 | 395.40 | 15.53 | 377 | 416 |

Runs with no RTO (never recovered): A = 0, B = 0

| metric | pairs used | median diff (A - B) | Hodges-Lehmann | rank-biserial r | W | p |
|---|---|---|---|---|---|---|
| RTO (s) | 5 | -149.64 | -149.64 | -1.00 | 0.0 | 0.0625 |
| RPO (writes lost at recovery) | 5 | -682 | -676.00 | -1.00 | 0.0 | 0.0625 |
| RPO window (s) | 5 | -136.08 | -134.94 | -1.00 | 0.0 | 0.0625 |
| writes lost at the end | 5 | -682 | -676.00 | -1.00 | 0.0 | 0.0625 |
| writes duplicated | 5 | 0 | 0.00 | 0.00 | - | - |
| RTO, steady (s): first success after the last relapse failure | 5 | -207.72 | -206.59 | -1.00 | 0.0 | 0.0625 |
| failed attempts after the first recovery | 5 | -2248 | -2183.50 | -1.00 | 0.0 | 0.0625 |
| platform: new primary writable (s) | 5 | -146.05 | -146.05 | -1.00 | 0.0 | 0.0625 |
| platform: DNS switched (s) | 5 | -146.08 | -146.08 | -1.00 | 0.0 | 0.0625 |
| attempts never acknowledged | 5 | -391 | -396.50 | -1.00 | 0.0 | 0.0625 |

McNemar (optional), run had at least one lost or duplicated acknowledged write: only A 0, only B 5, exact p = 0.0625 (5 pairs)


**Headline: incident rate (percentage of runs showing each outcome)**

| outcome | A runs showing | A rate (95% CI) | B runs showing | B rate (95% CI) | reduction of A relative to B |
|---|---|---|---|---|---|
| lost | 0 of 5 | 0% (0 to 52) | 5 of 5 | 100% (48 to 100) | 100% |
| duplicated | 0 of 5 | 0% (0 to 52) | 0 of 5 | 0% (0 to 52) | - |
| delayed_but_recovered | 0 of 5 | 0% (0 to 52) | 0 of 5 | 0% (0 to 52) | - |
| incident (lost or duplicated) | 0 of 5 | 0% (0 to 52) | 5 of 5 | 100% (48 to 100) | 100% |

Writes lost or duplicated per 1,000 acknowledged writes (pooled): A 0.00 (0 of 5250), B 293.76 (3385 of 11523); reduction 100%

_Only 5 complete pair(s); the proposal plans 10 per failure type. Treat these numbers as preliminary._

## Failure type: pod-kill

Runs: A = 5, B = 5, complete pairs = 5

| metric | cond | n | median | IQR | mean | sd | min | max |
|---|---|---|---|---|---|---|---|---|
| RTO (s) | A | 5 | 31.11 | 31.07 to 31.22 | 31.16 | 0.11 | 31.06 | 31.32 |
| RTO (s) | B | 5 | 181.75 | 181.73 to 182.43 | 182.01 | 0.59 | 181.33 | 182.78 |
| RPO (writes lost at recovery) | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| RPO (writes lost at recovery) | B | 5 | 619 | 618.00 to 621.00 | 619.20 | 1.79 | 617 | 621 |
| RPO window (s) | A | 5 | 0.00 | 0.00 to 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
| RPO window (s) | B | 5 | 123.48 | 123.34 to 123.93 | 123.55 | 0.39 | 123.05 | 123.94 |
| writes lost at the end | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| writes lost at the end | B | 5 | 619 | 618.00 to 621.00 | 619.20 | 1.79 | 617 | 621 |
| writes duplicated | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| writes duplicated | B | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| RTO, steady (s): first success after the last relapse failure | A | 5 | 39.17 | 38.73 to 40.99 | 39.87 | 1.82 | 38.00 | 42.46 |
| RTO, steady (s): first success after the last relapse failure | B | 5 | 240.79 | 239.35 to 241.05 | 240.83 | 2.18 | 238.68 | 244.31 |
| failed attempts after the first recovery | A | 5 | 12 | 9.00 to 14.00 | 13.60 | 8.73 | 5 | 28 |
| failed attempts after the first recovery | B | 5 | 2258 | 2239.00 to 2373.00 | 2301.60 | 84.88 | 2226 | 2412 |
| platform: new primary writable (s) | A | 5 | 9.06 | 8.94 to 9.74 | 9.23 | 0.57 | 8.53 | 9.88 |
| platform: new primary writable (s) | B | 5 | 145.34 | 141.97 to 154.49 | 149.43 | 11.23 | 138.80 | 166.55 |
| platform: DNS switched (s) | A | 5 | 9.50 | 9.40 to 10.32 | 9.71 | 0.60 | 8.98 | 10.35 |
| platform: DNS switched (s) | B | 5 | 145.70 | 142.44 to 154.77 | 149.83 | 11.20 | 139.25 | 166.98 |
| attempts never acknowledged | A | 5 | 0 | 0.00 to 0.00 | 0.00 | 0.00 | 0 | 0 |
| attempts never acknowledged | B | 5 | 454 | 452.00 to 469.00 | 462.00 | 17.93 | 445 | 490 |

Runs with no RTO (never recovered): A = 0, B = 0

| metric | pairs used | median diff (A - B) | Hodges-Lehmann | rank-biserial r | W | p |
|---|---|---|---|---|---|---|
| RTO (s) | 5 | -150.67 | -150.82 | -1.00 | 0.0 | 0.0625 |
| RPO (writes lost at recovery) | 5 | -619 | -619.00 | -1.00 | 0.0 | 0.0625 |
| RPO window (s) | 5 | -123.48 | -123.50 | -1.00 | 0.0 | 0.0625 |
| writes lost at the end | 5 | -619 | -619.00 | -1.00 | 0.0 | 0.0625 |
| writes duplicated | 5 | 0 | 0.00 | 0.00 | - | - |
| RTO, steady (s): first success after the last relapse failure | 5 | -199.51 | -200.32 | -1.00 | 0.0 | 0.0625 |
| failed attempts after the first recovery | 5 | -2230 | -2293.00 | -1.00 | 0.0 | 0.0625 |
| platform: new primary writable (s) | 5 | -136.28 | -139.49 | -1.00 | 0.0 | 0.0625 |
| platform: DNS switched (s) | 5 | -136.20 | -139.42 | -1.00 | 0.0 | 0.0625 |
| attempts never acknowledged | 5 | -454 | -460.50 | -1.00 | 0.0 | 0.0625 |

McNemar (optional), run had at least one lost or duplicated acknowledged write: only A 0, only B 5, exact p = 0.0625 (5 pairs)


**Headline: incident rate (percentage of runs showing each outcome)**

| outcome | A runs showing | A rate (95% CI) | B runs showing | B rate (95% CI) | reduction of A relative to B |
|---|---|---|---|---|---|
| lost | 0 of 5 | 0% (0 to 52) | 5 of 5 | 100% (48 to 100) | 100% |
| duplicated | 0 of 5 | 0% (0 to 52) | 0 of 5 | 0% (0 to 52) | - |
| delayed_but_recovered | 0 of 5 | 0% (0 to 52) | 0 of 5 | 0% (0 to 52) | - |
| incident (lost or duplicated) | 0 of 5 | 0% (0 to 52) | 5 of 5 | 100% (48 to 100) | 100% |

Writes lost or duplicated per 1,000 acknowledged writes (pooled): A 0.00 (0 of 5250), B 276.68 (3096 of 11190); reduction 100%

_Only 5 complete pair(s); the proposal plans 10 per failure type. Treat these numbers as preliminary._

## Headline across all failure types

| outcome | A runs showing | A rate (95% CI) | B runs showing | B rate (95% CI) | reduction of A relative to B |
|---|---|---|---|---|---|
| lost | 0 of 10 | 0% (0 to 31) | 10 of 10 | 100% (69 to 100) | 100% |
| duplicated | 0 of 10 | 0% (0 to 31) | 0 of 10 | 0% (0 to 31) | - |
| delayed_but_recovered | 0 of 10 | 0% (0 to 31) | 0 of 10 | 0% (0 to 31) | - |
| incident (lost or duplicated) | 0 of 10 | 0% (0 to 31) | 10 of 10 | 100% (69 to 100) | 100% |

