Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
142d972
feat(cluster): spec-7.1 D0 -- 53R97 per-leg attribution counters
Jul 7, 2026
f20d054
test(cluster): spec-7.1 D0 -- 53R97 per-leg census scratch driver
Jul 7, 2026
9431075
test(cluster): spec-7.1 L6 native-parity harness skeleton
Jul 7, 2026
84c35da
style(cluster): rule-11 banners on the spec-7.1 scratch drivers
Jul 7, 2026
1eca669
test(cluster): spec-7.1 D6 L4 -- bidirectional-write same-page e2e sk…
Jul 7, 2026
b7bdbe2
feat(cluster): spec-7.1 D1 requester 半边 -- xmin overlay-miss asks the…
Jul 7, 2026
abf331b
fix(cluster): spec-7.1 watch-2 -- multixact marker reuse folds the re…
Jul 7, 2026
dab0937
feat(cluster): spec-7.1 D3-a -- striped multixact origin derivation +…
Jul 7, 2026
c41ad94
fix(cluster): stub new multixact counters in test_cluster_debug (spec…
Jul 7, 2026
d85217b
test(cluster): census driver snapshots D3-a mxid-stripe counters
Jul 7, 2026
02efb85
fix(cluster): restore test_cluster_mxid_stripe TESTS entry + link rule
Jul 9, 2026
0a2ac52
feat(cluster): spec-7.1 D1 serve -- INVALID_SCN verdict upgrades to p…
Jul 9, 2026
7e59375
fix(cluster): P0 -- multixact committed-updater visibility polarity w…
Jul 9, 2026
2e131e5
feat(cluster): spec-7.1 D3-b wire ABI -- batched multixact member-ver…
Jul 9, 2026
150c5f5
feat(cluster): spec-7.1 D3-b origin member-verdict serve
Jul 9, 2026
f954932
feat(cluster): spec-7.1 D3-b requester member-verdict ask + reader wi…
Jul 9, 2026
11e9822
test(cluster): spec-7.1 D3-b e2e -- t/357 L2/L3 + t/359 G5 turn positive
Jul 9, 2026
4c05afc
test(cluster): spec-7.1 D3-b origin-refuse negative leg (t/360)
Jul 9, 2026
efce364
test(cluster): spec-7.1 D4 census -- snapshot the D3-b member-serve c…
Jul 9, 2026
e0c2309
fix(cluster): spec-7.1 D3-b -- validate multi-verdict on the stable c…
Jul 9, 2026
be499b2
fix(cluster): spec-7.1 D3-b -- count member-level INVALID_SCN->ABORTE…
Jul 9, 2026
275c9a6
fix(cluster): spec-7.1 integration -- retarget dropped-D2 covers symb…
Jul 9, 2026
5ae2c71
fix(cluster): reword SCN-semantics comment to satisfy scn-cmp-gate (s…
Jul 9, 2026
7845b6b
test(cluster): spec-7.1 t/030 -- bump injection-point baseline 161->1…
Jul 9, 2026
b05fbde
test(cluster): spec-7.1 review F4 -- restore the served-resolver unit…
Jul 10, 2026
83faa82
fix(cluster): spec-7.1 review F3 -- reserve LMS work slots as FILLING…
Jul 10, 2026
8429eb9
fix(cluster): spec-7.1 review F1 (P0) -- gate the multi member-verdic…
Jul 10, 2026
aaf17f6
fix(cluster): spec-7.1 review F2 (P0) -- poison the mxid stripe face …
Jul 10, 2026
2279df5
test(cluster): spec-7.1 -- sweep the remaining nightly-only counter/i…
Jul 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions docs/user-guide/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -888,6 +888,37 @@ SELECT key, value FROM pg_cluster_state
WHERE category = 'xid_stripe';
```

Multixact IDs are striped the same way on a striped cluster: each node
only issues multixact ids in its own congruence class, inside a window
of 2^31 values above the recorded activation point. Multixact ids are
consumed only when several transactions lock or update the same row
concurrently, so this window lasts far longer than the xid cycle; if
it is ever exhausted, new multixact creation is refused with SQLSTATE
`53RB4` (existing data stays readable). The window position and the
refusal counter appear in the same `xid_stripe` category
(`mxid_stripe_activated_floor`, `mxid_stripe_halfspace_refusals`,
`mxid_stripe_underivable_reads`).

### `cluster.multi_xmax_remote_resolve`

| | |
|---|---|
| Type | bool |
| Default | `on` |
| Context | sighup |

Resolves row lock/update combinations (multixact xmax) created on
another node when reading shared data. When enabled (default), a read
that meets such a row determines the creating node from the striped
multixact id and resolves the member transactions through the cluster
member overlay; a combination that cannot be proven fails the read
with SQLSTATE `53R9C` (safe to retry).

When `off`, every row carrying an updater-bearing multixact fails
closed with `53R9C` on a cluster read. Rows that only carry row locks
(`FOR SHARE` / `FOR KEY SHARE` with no updater) are always readable
under either setting.

## Reconfig coordinator observability

### `pg_cluster_reconfig_state` view
Expand Down
345 changes: 214 additions & 131 deletions src/backend/access/heap/heapam_visibility.c

Large diffs are not rendered by default.

Loading
Loading