@optimystic/db-core 1.0.0-beta.2 → 1.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cluster/structs.d.ts +37 -15
- package/dist/src/cluster/structs.d.ts.map +1 -1
- package/dist/src/cluster/structs.js.map +1 -1
- package/dist/src/collection/collection.d.ts +29 -2
- package/dist/src/collection/collection.d.ts.map +1 -1
- package/dist/src/collection/collection.js +37 -2
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/collections/tree/struct.d.ts +81 -2
- package/dist/src/collections/tree/struct.d.ts.map +1 -1
- package/dist/src/collections/tree/struct.js +59 -0
- package/dist/src/collections/tree/struct.js.map +1 -1
- package/dist/src/collections/tree/tree.d.ts.map +1 -1
- package/dist/src/collections/tree/tree.js +39 -2
- package/dist/src/collections/tree/tree.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/logger-registry.d.ts +57 -0
- package/dist/src/logger-registry.d.ts.map +1 -0
- package/dist/src/logger-registry.js +168 -0
- package/dist/src/logger-registry.js.map +1 -0
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +3 -0
- package/dist/src/logger.js.map +1 -1
- package/dist/src/transactor/network-transactor.d.ts.map +1 -1
- package/dist/src/transactor/network-transactor.js +8 -3
- package/dist/src/transactor/network-transactor.js.map +1 -1
- package/package.json +1 -1
- package/src/cluster/structs.ts +277 -255
- package/src/collection/collection.ts +37 -2
- package/src/collections/tree/struct.ts +116 -26
- package/src/collections/tree/tree.ts +36 -2
- package/src/index.ts +1 -0
- package/src/logger-registry.ts +224 -0
- package/src/logger.ts +4 -0
- package/src/transactor/network-transactor.ts +8 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RepoMessage } from "../network/repo-protocol.js";
|
|
2
|
-
import type { PendResult } from "../network/struct.js";
|
|
2
|
+
import type { CommitResult, PendResult } from "../network/struct.js";
|
|
3
3
|
/**
|
|
4
4
|
* One member's vote on a cluster transaction, in either the promise or the commit map.
|
|
5
5
|
*
|
|
@@ -52,13 +52,29 @@ export type ClusterPeers = {
|
|
|
52
52
|
};
|
|
53
53
|
/**
|
|
54
54
|
* One member's own report of what its storage did with this transaction at consensus-apply time; see
|
|
55
|
-
* {@link ClusterRecord.applyOutcomes} for the trust rules.
|
|
56
|
-
*
|
|
57
|
-
*
|
|
55
|
+
* {@link ClusterRecord.applyOutcomes} for the trust rules. The two arms report differently, and
|
|
56
|
+
* deliberately so:
|
|
57
|
+
*
|
|
58
|
+
* - `pend` is set ONLY for a conflict-shaped refusal. The coordinator's rule for it is "an entry
|
|
59
|
+
* means retry", so a success must not exist there.
|
|
60
|
+
* - `commit` is ALWAYS set once a commit applied — successes included — because the coordinator
|
|
61
|
+
* counts durable holders (`CoordinatorRepo.commit`'s durability gate), and a count needs the
|
|
62
|
+
* positives. Consensus votes say the cohort agreed to apply the commit; this arm says whether
|
|
63
|
+
* this member's storage actually holds the committed revision under the record's action
|
|
64
|
+
* afterwards, measured AFTER the member's own reconcile (a member that pulled the revision from a
|
|
65
|
+
* cohort peer reports success). A commit that reached consensus is authoritative for ordering,
|
|
66
|
+
* but it was never evidence of storage — which is what this arm supplies.
|
|
58
67
|
*/
|
|
59
68
|
export type MemberApplyOutcome = {
|
|
60
69
|
/** This member's storage refused the record's pend with a conflict-shaped result. */
|
|
61
70
|
pend?: PendResult;
|
|
71
|
+
/**
|
|
72
|
+
* Whether this member's storage durably holds the record's committed revision, for every block
|
|
73
|
+
* the commit named, after applying and (if needed) reconciling. `success: true` is a durable
|
|
74
|
+
* holder; a failure carries storage's refusal (or a refusal built from the missing-pend throw)
|
|
75
|
+
* for the operator's benefit — the coordinator reads only `success`.
|
|
76
|
+
*/
|
|
77
|
+
commit?: CommitResult;
|
|
62
78
|
};
|
|
63
79
|
export type ClusterRecord = {
|
|
64
80
|
messageHash: string;
|
|
@@ -101,17 +117,23 @@ export type ClusterRecord = {
|
|
|
101
117
|
* written by a member *after* the votes are cast, on the response it hands back, so no signed
|
|
102
118
|
* payload could carry it without a further round trip.
|
|
103
119
|
*
|
|
104
|
-
* Members set only their own entry
|
|
105
|
-
* `pending` or `missing`, per `isConflictFailure`) — the
|
|
106
|
-
* rival holds the blocks or already took the revision.
|
|
107
|
-
* omitted: a bare fault stays tolerated local
|
|
108
|
-
* local-verdict arm.
|
|
120
|
+
* Members set only their own entry. The pend arm is set only for a *conflict-shaped* pend
|
|
121
|
+
* refusal (one carrying `pending` or `missing`, per `isConflictFailure`) — the
|
|
122
|
+
* optimistic-concurrency verdict that a rival holds the blocks or already took the revision.
|
|
123
|
+
* Pend successes and bare-reason faults are omitted: a bare fault stays tolerated local
|
|
124
|
+
* divergence, mirroring the coordinator's own local-verdict arm. The commit arm is set for every
|
|
125
|
+
* applied commit, success or not, because the coordinator counts the successes
|
|
126
|
+
* ({@link MemberApplyOutcome}).
|
|
109
127
|
*
|
|
110
|
-
* Why unsigned is acceptable: a hostile entry can only *downgrade* a reported pend success
|
|
111
|
-
* retryable conflict, which the writer answers by rebasing and trying again.
|
|
128
|
+
* Why unsigned is acceptable: a hostile pend entry can only *downgrade* a reported pend success
|
|
129
|
+
* into a retryable conflict, which the writer answers by rebasing and trying again. A hostile
|
|
130
|
+
* commit entry is no worse: a false *success* counts one durable holder the member already
|
|
131
|
+
* counted for with its signed approve vote (the vote is what admits it to the majority the count
|
|
132
|
+
* is measured against), and a false *refusal* is again only retry pressure. The same member
|
|
112
133
|
* could already force strictly worse outcomes with a signed reject or conflict vote, so this adds
|
|
113
134
|
* no attack surface beyond retry pressure — and failing toward retry is the correct direction for
|
|
114
|
-
* optimistic concurrency. Never treat an entry here as evidence of anything but "retry"
|
|
135
|
+
* optimistic concurrency. Never treat an entry here as evidence of anything but "retry" (pend) or
|
|
136
|
+
* "one more holder in a count that a signed vote already bounded" (commit).
|
|
115
137
|
*
|
|
116
138
|
* Old peers never set it and old coordinators ignore it, so it is wire-compatible in both
|
|
117
139
|
* directions.
|
|
@@ -220,11 +242,11 @@ export interface ClusterConsensusConfig {
|
|
|
220
242
|
* single reset here would otherwise drop the peer and sink super-majority.
|
|
221
243
|
*/
|
|
222
244
|
promiseImmediateRetries?: number;
|
|
223
|
-
/** Read-repair behavior: 'off' (only fetch on missing — legacy), 'lazy' (fetch when local age > window), 'paranoid' (always verify against cluster on read). Default 'lazy'. */
|
|
245
|
+
/** Read-repair behavior: 'off' (only fetch on missing — legacy), 'lazy' (fetch when local age > window), 'paranoid' (always verify against cluster on read, missing blocks included). Default 'lazy'. In 'off' and 'lazy', a missing block whose cohort is this node alone is re-consulted at most once per `readRepairWindowMs`. */
|
|
224
246
|
readRepairMode?: 'off' | 'lazy' | 'paranoid';
|
|
225
|
-
/** For 'lazy' mode: read-repair triggers when (now - localEntry.lastSeenCommitMs) > this. Default 10000. */
|
|
247
|
+
/** For 'lazy' mode: read-repair triggers when (now - localEntry.lastSeenCommitMs) > this. In 'lazy' and 'off' it is also how long a settled absence is remembered. Default 10000. */
|
|
226
248
|
readRepairWindowMs?: number;
|
|
227
|
-
/** Per-read probability of
|
|
249
|
+
/** Per-read probability of a cohort check in 'lazy' mode even within the window — of a held block or a settled absence (0..1). Default 0 (no random check). */
|
|
228
250
|
readRepairSampleRate?: number;
|
|
229
251
|
/**
|
|
230
252
|
* When FRET has no confident network-size estimate, allow an undersized cluster
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"structs.d.ts","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAuB,EAAE,KAAc;IAC9F,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,SAAoB;IAChF,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACxF,KAAK,UAAU,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;AACF,CAAC;
|
|
1
|
+
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../src/cluster/structs.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,IAAuB,EAAE,KAAc;IAC9F,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,SAAoB;IAChF,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACxB,KAAK,QAAQ,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QACxF,KAAK,UAAU,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,CAAC;QAC5F,OAAO,CAAC,CAAC,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;AACF,CAAC;AAiHD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG,IAAI,CAAC"}
|
|
@@ -301,7 +301,27 @@ export declare class Collection<TAction> implements ICollection<TAction> {
|
|
|
301
301
|
snapshotPending(): CollectionSnapshot<TAction>;
|
|
302
302
|
/** Restore the staged state captured by {@link snapshotPending}, discarding any
|
|
303
303
|
* mutations staged since. Reads through the collection then observe exactly the
|
|
304
|
-
* snapshot state again; storage is untouched because nothing was ever synced.
|
|
304
|
+
* snapshot state again; storage is untouched because nothing was ever synced.
|
|
305
|
+
*
|
|
306
|
+
* A snapshot is only restorable VERBATIM onto the committed boundary it was captured
|
|
307
|
+
* on. If this collection has since ADOPTED a newer committed revision — a rival's
|
|
308
|
+
* commit folded in by a refresh while the snapshot's transaction was in flight, e.g.
|
|
309
|
+
* the conflict replay that refused a guarded insert (TreeKeyTakenError) — the
|
|
310
|
+
* snapshot's transforms describe block state at the OLD boundary, and reinstalling
|
|
311
|
+
* them would shadow committed blocks with stale structure. The observed case: an
|
|
312
|
+
* INVENTED collection's pre-commit header/root transforms restored over the rival's
|
|
313
|
+
* now-committed collection make every later read descend an empty tree, silently
|
|
314
|
+
* hiding the committed rows. When the snapshot's pending queue is empty (the
|
|
315
|
+
* transaction-rollback shape: the capture predates the transaction's first stage),
|
|
316
|
+
* the correct restore target IS the committed state — reset the tracker empty and
|
|
317
|
+
* let reads flow through to the adopted revision.
|
|
318
|
+
*
|
|
319
|
+
* NOTE: a snapshot that carries PENDING actions across a moved boundary (a
|
|
320
|
+
* mid-transaction savepoint captured before a mid-transaction refresh adopted a
|
|
321
|
+
* rival's commit) still restores verbatim below — rebasing it would require an async
|
|
322
|
+
* replay this synchronous method cannot run. That shape predates this guard and
|
|
323
|
+
* keeps its old behaviour; if it is ever observed producing stale reads, the rebase
|
|
324
|
+
* belongs in an async caller that can replay the pending queue (see replayActions). */
|
|
305
325
|
restorePending(snapshot: CollectionSnapshot<TAction>): void;
|
|
306
326
|
/** A read-only {@link Tracker} pinned to this collection's committed state AS OF the
|
|
307
327
|
* moment of this call, seeded with a (deep-copied) set of pre-transaction transforms.
|
|
@@ -387,7 +407,14 @@ export declare class Collection<TAction> implements ICollection<TAction> {
|
|
|
387
407
|
* process can be at different revisions at the same instant. That gap is invisible
|
|
388
408
|
* from outside the class without this accessor, which is the whole reason it
|
|
389
409
|
* exists: `docs/debugging.md` (§ "Which revision did a read descend?") explains
|
|
390
|
-
* how an operator reads the difference.
|
|
410
|
+
* how an operator reads the difference.
|
|
411
|
+
*
|
|
412
|
+
* The one exception is `undefined` itself, which is a STATE rather than a revision:
|
|
413
|
+
* "this instance invented the collection and has never adopted a committed revision".
|
|
414
|
+
* For the same reason (only this instance moves it), it stays true until this instance
|
|
415
|
+
* updates, syncs or records a commit, so a caller holding a freshly opened instance may
|
|
416
|
+
* branch on it — the Quereus adapter does, to leave an invented, never-written index tree
|
|
417
|
+
* unflushed exactly as an unwritten table tree is left. Never branch on the NUMBER. */
|
|
391
418
|
committedRevision(): number | undefined;
|
|
392
419
|
/** The id of the action that PRODUCED the revision {@link committedRevision} reports —
|
|
393
420
|
* this collection's lineage marker at that revision — or `undefined` when the action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -527,8 +527,36 @@ export class Collection {
|
|
|
527
527
|
}
|
|
528
528
|
/** Restore the staged state captured by {@link snapshotPending}, discarding any
|
|
529
529
|
* mutations staged since. Reads through the collection then observe exactly the
|
|
530
|
-
* snapshot state again; storage is untouched because nothing was ever synced.
|
|
530
|
+
* snapshot state again; storage is untouched because nothing was ever synced.
|
|
531
|
+
*
|
|
532
|
+
* A snapshot is only restorable VERBATIM onto the committed boundary it was captured
|
|
533
|
+
* on. If this collection has since ADOPTED a newer committed revision — a rival's
|
|
534
|
+
* commit folded in by a refresh while the snapshot's transaction was in flight, e.g.
|
|
535
|
+
* the conflict replay that refused a guarded insert (TreeKeyTakenError) — the
|
|
536
|
+
* snapshot's transforms describe block state at the OLD boundary, and reinstalling
|
|
537
|
+
* them would shadow committed blocks with stale structure. The observed case: an
|
|
538
|
+
* INVENTED collection's pre-commit header/root transforms restored over the rival's
|
|
539
|
+
* now-committed collection make every later read descend an empty tree, silently
|
|
540
|
+
* hiding the committed rows. When the snapshot's pending queue is empty (the
|
|
541
|
+
* transaction-rollback shape: the capture predates the transaction's first stage),
|
|
542
|
+
* the correct restore target IS the committed state — reset the tracker empty and
|
|
543
|
+
* let reads flow through to the adopted revision.
|
|
544
|
+
*
|
|
545
|
+
* NOTE: a snapshot that carries PENDING actions across a moved boundary (a
|
|
546
|
+
* mid-transaction savepoint captured before a mid-transaction refresh adopted a
|
|
547
|
+
* rival's commit) still restores verbatim below — rebasing it would require an async
|
|
548
|
+
* replay this synchronous method cannot run. That shape predates this guard and
|
|
549
|
+
* keeps its old behaviour; if it is ever observed producing stale reads, the rebase
|
|
550
|
+
* belongs in an async caller that can replay the pending queue (see replayActions). */
|
|
531
551
|
restorePending(snapshot) {
|
|
552
|
+
const capturedRev = snapshot.context?.rev;
|
|
553
|
+
const currentRev = this.source.actionContext?.rev;
|
|
554
|
+
const boundaryMoved = currentRev !== undefined && (capturedRev === undefined || currentRev > capturedRev);
|
|
555
|
+
if (boundaryMoved && snapshot.pending.length === 0) {
|
|
556
|
+
this.tracker.reset();
|
|
557
|
+
this.pending = [];
|
|
558
|
+
return;
|
|
559
|
+
}
|
|
532
560
|
this.tracker.reset(copyTransforms(snapshot.transforms));
|
|
533
561
|
this.pending = [...snapshot.pending];
|
|
534
562
|
}
|
|
@@ -637,7 +665,14 @@ export class Collection {
|
|
|
637
665
|
* process can be at different revisions at the same instant. That gap is invisible
|
|
638
666
|
* from outside the class without this accessor, which is the whole reason it
|
|
639
667
|
* exists: `docs/debugging.md` (§ "Which revision did a read descend?") explains
|
|
640
|
-
* how an operator reads the difference.
|
|
668
|
+
* how an operator reads the difference.
|
|
669
|
+
*
|
|
670
|
+
* The one exception is `undefined` itself, which is a STATE rather than a revision:
|
|
671
|
+
* "this instance invented the collection and has never adopted a committed revision".
|
|
672
|
+
* For the same reason (only this instance moves it), it stays true until this instance
|
|
673
|
+
* updates, syncs or records a commit, so a caller holding a freshly opened instance may
|
|
674
|
+
* branch on it — the Quereus adapter does, to leave an invented, never-written index tree
|
|
675
|
+
* unflushed exactly as an unwritten table tree is left. Never branch on the NUMBER. */
|
|
641
676
|
committedRevision() {
|
|
642
677
|
return this.source.actionContext?.rev;
|
|
643
678
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/collection/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,91 @@
|
|
|
1
|
-
import type { BlockId, CollectionHeaderBlock } from "../../index.js";
|
|
1
|
+
import type { BlockId, CollectionHeaderBlock, CollectionId } from "../../index.js";
|
|
2
|
+
import type { KeyRange } from "../../btree/index.js";
|
|
2
3
|
export declare const TreeHeaderBlockType: string;
|
|
3
4
|
export type TreeCollectionHeaderBlock = CollectionHeaderBlock & {
|
|
4
5
|
rootId: BlockId;
|
|
5
6
|
};
|
|
6
7
|
export declare const rootId$: string;
|
|
8
|
+
/**
|
|
9
|
+
* Serializable statement of the INTENT behind a staged tree entry, enforced by the
|
|
10
|
+
* `replace` handler every time it runs — at initial staging AND at every conflict
|
|
11
|
+
* replay against a newly adopted committed revision. Without a guard, staging is a
|
|
12
|
+
* bare upsert, and a conflict replay silently overwrites whatever a rival writer
|
|
13
|
+
* committed at the same key (the concurrent-INSERT lost-uniqueness bug).
|
|
14
|
+
*
|
|
15
|
+
* - `absent` — the key must not exist (SQL INSERT): a hit throws {@link TreeKeyTakenError},
|
|
16
|
+
* discarding the whole action's staged writes.
|
|
17
|
+
* - `keepExisting` — if the key exists, skip this entry silently (SQL INSERT OR IGNORE).
|
|
18
|
+
* - `absentRange` — no entry OTHER THAN this action's own key may exist in `range`
|
|
19
|
+
* (secondary-UNIQUE enforcement, where uniqueness is a property of a framed key
|
|
20
|
+
* PREFIX rather than one exact key: an index tree keys `indexKey ‖ primaryKey`, so
|
|
21
|
+
* two rows sharing a unique value sit at different keys inside one prefix range). A
|
|
22
|
+
* foreign hit throws {@link TreeRangeTakenError}. The entry being staged lands inside
|
|
23
|
+
* its own range, so the scan excludes its exact key — otherwise every guarded
|
|
24
|
+
* re-stage of a present key (a replay after a clean refresh) would refuse itself.
|
|
25
|
+
*
|
|
26
|
+
* MIXED VERSIONS: a peer running a build that predates guards destructures `[key, entry]`
|
|
27
|
+
* and ignores the third slot — its replays revert to today's silent overwrite. No version
|
|
28
|
+
* gating exists yet (see backlog ticket `debt-mixed-version-identify-incompatibility`).
|
|
29
|
+
*/
|
|
30
|
+
export type TreeEntryGuard<TKey> = {
|
|
31
|
+
kind: 'absent';
|
|
32
|
+
} | {
|
|
33
|
+
kind: 'keepExisting';
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'absentRange';
|
|
36
|
+
range: KeyRange<TKey>;
|
|
37
|
+
};
|
|
7
38
|
/** Represents a unit of change to a tree collection. */
|
|
8
39
|
export type TreeReplaceAction<TKey, TEntry> = [
|
|
9
40
|
key: TKey,
|
|
10
|
-
entry?: TEntry
|
|
41
|
+
entry?: TEntry,
|
|
42
|
+
guard?: TreeEntryGuard<TKey>
|
|
11
43
|
][];
|
|
44
|
+
/**
|
|
45
|
+
* Thrown by the tree `replace` handler when an entry guarded `absent` finds its key
|
|
46
|
+
* already present — at initial staging, or (the load-bearing case) at conflict replay
|
|
47
|
+
* after a rival writer's commit was adopted. The throw discards the whole action's
|
|
48
|
+
* staged writes (the handler runs inside an all-or-nothing Atomic wrapper) and
|
|
49
|
+
* propagates out of the sync/commit retry loops: it is not a StaleFailure, so no
|
|
50
|
+
* retry absorbs it, and it must never be downgraded to a retryable condition.
|
|
51
|
+
*/
|
|
52
|
+
export declare class TreeKeyTakenError<TKey = unknown> extends Error {
|
|
53
|
+
/** The collection whose tree refused the entry. */
|
|
54
|
+
readonly collectionId: CollectionId;
|
|
55
|
+
/** The key some other writer already committed (for the `absentRange` subclass: the
|
|
56
|
+
* key this action was staging, whose claimed range a rival occupies). */
|
|
57
|
+
readonly key: TKey;
|
|
58
|
+
constructor(
|
|
59
|
+
/** The collection whose tree refused the entry. */
|
|
60
|
+
collectionId: CollectionId,
|
|
61
|
+
/** The key some other writer already committed (for the `absentRange` subclass: the
|
|
62
|
+
* key this action was staging, whose claimed range a rival occupies). */
|
|
63
|
+
key: TKey,
|
|
64
|
+
/** Subclass override of the rendered message; the default names the exact-key refusal. */
|
|
65
|
+
message?: string);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The `absentRange` refusal: the guarded entry's key is free, but some OTHER committed
|
|
69
|
+
* entry (`occupant`) sits inside the range the entry claims exclusively — for a unique
|
|
70
|
+
* index tree, a rival's row carrying the same unique value under a different primary
|
|
71
|
+
* key. A subclass of {@link TreeKeyTakenError} on purpose: every consumer that treats a
|
|
72
|
+
* key refusal as a non-retryable uniqueness failure (the sync/commit retry loops let it
|
|
73
|
+
* escape; the Quereus bridge maps it by `collectionId` to a `UNIQUE constraint failed`
|
|
74
|
+
* message) handles this one identically without a second arm. `collectionId` is the
|
|
75
|
+
* discriminator that names WHICH constraint fired — each unique index is its own
|
|
76
|
+
* collection — so the bridge needs nothing beyond it.
|
|
77
|
+
*/
|
|
78
|
+
export declare class TreeRangeTakenError<TKey = unknown> extends TreeKeyTakenError<TKey> {
|
|
79
|
+
/** The range the entry claimed exclusively. */
|
|
80
|
+
readonly range: KeyRange<TKey>;
|
|
81
|
+
/** The committed key found inside `range` that is not `key`. */
|
|
82
|
+
readonly occupant: TKey;
|
|
83
|
+
constructor(collectionId: CollectionId,
|
|
84
|
+
/** The key this action was staging (free — it is the range that is contested). */
|
|
85
|
+
key: TKey,
|
|
86
|
+
/** The range the entry claimed exclusively. */
|
|
87
|
+
range: KeyRange<TKey>,
|
|
88
|
+
/** The committed key found inside `range` that is not `key`. */
|
|
89
|
+
occupant: TKey);
|
|
90
|
+
}
|
|
12
91
|
//# sourceMappingURL=struct.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAKrD,eAAO,MAAM,mBAAmB,QAA8C,CAAC;AAO/E,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG;IAC/D,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,eAAO,MAAM,OAAO,QAA8C,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,cAAc,CAAC,IAAI,IAC5B;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAElD,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,CAAC,IAAI,EAAE,MAAM,IAAI;IAE7C,GAAG,EAAE,IAAI;IAET,KAAK,CAAC,EAAE,MAAM;IAId,KAAK,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC;CAC5B,EAAE,CAAC;AAEJ;;;;;;;GAOG;AACH,qBAAa,iBAAiB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,KAAK;IAE1D,mDAAmD;aACnC,YAAY,EAAE,YAAY;IAC1C;6EACyE;aACzD,GAAG,EAAE,IAAI;;IAJzB,mDAAmD;IACnC,YAAY,EAAE,YAAY;IAC1C;6EACyE;IACzD,GAAG,EAAE,IAAI;IACzB,0FAA0F;IAC1F,OAAO,CAAC,EAAE,MAAM;CAKjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,mBAAmB,CAAC,IAAI,GAAG,OAAO,CAAE,SAAQ,iBAAiB,CAAC,IAAI,CAAC;IAK9E,+CAA+C;aAC/B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IACrC,gEAAgE;aAChD,QAAQ,EAAE,IAAI;gBAN9B,YAAY,EAAE,YAAY;IAC1B,kFAAkF;IAClF,GAAG,EAAE,IAAI;IACT,+CAA+C;IAC/B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC;IACrC,gEAAgE;IAChD,QAAQ,EAAE,IAAI;CAO/B"}
|
|
@@ -7,4 +7,63 @@ registerCollectionType({
|
|
|
7
7
|
name: "Tree",
|
|
8
8
|
});
|
|
9
9
|
export const rootId$ = nameof("rootId");
|
|
10
|
+
/**
|
|
11
|
+
* Thrown by the tree `replace` handler when an entry guarded `absent` finds its key
|
|
12
|
+
* already present — at initial staging, or (the load-bearing case) at conflict replay
|
|
13
|
+
* after a rival writer's commit was adopted. The throw discards the whole action's
|
|
14
|
+
* staged writes (the handler runs inside an all-or-nothing Atomic wrapper) and
|
|
15
|
+
* propagates out of the sync/commit retry loops: it is not a StaleFailure, so no
|
|
16
|
+
* retry absorbs it, and it must never be downgraded to a retryable condition.
|
|
17
|
+
*/
|
|
18
|
+
export class TreeKeyTakenError extends Error {
|
|
19
|
+
collectionId;
|
|
20
|
+
key;
|
|
21
|
+
constructor(
|
|
22
|
+
/** The collection whose tree refused the entry. */
|
|
23
|
+
collectionId,
|
|
24
|
+
/** The key some other writer already committed (for the `absentRange` subclass: the
|
|
25
|
+
* key this action was staging, whose claimed range a rival occupies). */
|
|
26
|
+
key,
|
|
27
|
+
/** Subclass override of the rendered message; the default names the exact-key refusal. */
|
|
28
|
+
message) {
|
|
29
|
+
super(message ?? `Tree collection ${collectionId}: key ${renderKey(key)} is already taken by a committed entry`);
|
|
30
|
+
this.collectionId = collectionId;
|
|
31
|
+
this.key = key;
|
|
32
|
+
this.name = 'TreeKeyTakenError';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* The `absentRange` refusal: the guarded entry's key is free, but some OTHER committed
|
|
37
|
+
* entry (`occupant`) sits inside the range the entry claims exclusively — for a unique
|
|
38
|
+
* index tree, a rival's row carrying the same unique value under a different primary
|
|
39
|
+
* key. A subclass of {@link TreeKeyTakenError} on purpose: every consumer that treats a
|
|
40
|
+
* key refusal as a non-retryable uniqueness failure (the sync/commit retry loops let it
|
|
41
|
+
* escape; the Quereus bridge maps it by `collectionId` to a `UNIQUE constraint failed`
|
|
42
|
+
* message) handles this one identically without a second arm. `collectionId` is the
|
|
43
|
+
* discriminator that names WHICH constraint fired — each unique index is its own
|
|
44
|
+
* collection — so the bridge needs nothing beyond it.
|
|
45
|
+
*/
|
|
46
|
+
export class TreeRangeTakenError extends TreeKeyTakenError {
|
|
47
|
+
range;
|
|
48
|
+
occupant;
|
|
49
|
+
constructor(collectionId,
|
|
50
|
+
/** The key this action was staging (free — it is the range that is contested). */
|
|
51
|
+
key,
|
|
52
|
+
/** The range the entry claimed exclusively. */
|
|
53
|
+
range,
|
|
54
|
+
/** The committed key found inside `range` that is not `key`. */
|
|
55
|
+
occupant) {
|
|
56
|
+
super(collectionId, key, `Tree collection ${collectionId}: key ${renderKey(key)} is guarded unique over a key range `
|
|
57
|
+
+ `already occupied by committed entry ${renderKey(occupant)}`);
|
|
58
|
+
this.range = range;
|
|
59
|
+
this.occupant = occupant;
|
|
60
|
+
this.name = 'TreeRangeTakenError';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/** String keys render JSON-quoted so framing control bytes stay visible/escaped in logs;
|
|
64
|
+
* everything else via String() — JSON.stringify would throw on a bigint key, and an error
|
|
65
|
+
* constructor must never be the second failure. */
|
|
66
|
+
function renderKey(key) {
|
|
67
|
+
return typeof key === 'string' ? JSON.stringify(key) : String(key);
|
|
68
|
+
}
|
|
10
69
|
//# sourceMappingURL=struct.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"struct.js","sourceRoot":"","sources":["../../../../src/collections/tree/struct.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEjD,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC;AAE/E,sBAAsB,CAAC;IACtB,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,MAAM;CACZ,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAA4B,QAAQ,CAAC,CAAC;AAyCnE;;;;;;;GAOG;AACH,MAAM,OAAO,iBAAkC,SAAQ,KAAK;IAG1C;IAGA;IALjB;IACC,mDAAmD;IACnC,YAA0B;IAC1C;6EACyE;IACzD,GAAS;IACzB,0FAA0F;IAC1F,OAAgB;QAEhB,KAAK,CAAC,OAAO,IAAI,mBAAmB,YAAY,SAAS,SAAS,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QAPjG,iBAAY,GAAZ,YAAY,CAAc;QAG1B,QAAG,GAAH,GAAG,CAAM;QAKzB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IACjC,CAAC;CACD;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAO,mBAAoC,SAAQ,iBAAuB;IAM9D;IAEA;IAPjB,YACC,YAA0B;IAC1B,kFAAkF;IAClF,GAAS;IACT,+CAA+C;IAC/B,KAAqB;IACrC,gEAAgE;IAChD,QAAc;QAE9B,KAAK,CAAC,YAAY,EAAE,GAAG,EACtB,mBAAmB,YAAY,SAAS,SAAS,CAAC,GAAG,CAAC,sCAAsC;cAC1F,uCAAuC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QANjD,UAAK,GAAL,KAAK,CAAgB;QAErB,aAAQ,GAAR,QAAQ,CAAM;QAK9B,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACnC,CAAC;CACD;AAED;;mDAEmD;AACnD,SAAS,SAAS,CAAC,GAAY;IAC9B,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/tree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA8B,KAAK,YAAY,EAAE,KAAK,kBAAkB,EAAE,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACrJ,OAAO,KAAK,EAAE,WAAW,EAA+B,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EAAS,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,
|
|
1
|
+
{"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../../../../src/collections/tree/tree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Collection } from "../../collection/index.js";
|
|
2
2
|
import { BTree } from "../../btree/index.js";
|
|
3
3
|
import { CollectionTrunk } from "./collection-trunk.js";
|
|
4
|
-
import { TreeHeaderBlockType } from "./struct.js";
|
|
4
|
+
import { TreeHeaderBlockType, TreeKeyTakenError, TreeRangeTakenError } from "./struct.js";
|
|
5
5
|
export class Tree {
|
|
6
6
|
collection;
|
|
7
7
|
btree;
|
|
@@ -58,8 +58,45 @@ export class Tree {
|
|
|
58
58
|
// freshly created and reopened trees. Binding a throwaway BTree to `trx` reuses the
|
|
59
59
|
// public constructor; no btree API change needed.
|
|
60
60
|
const actionTree = new BTree(trx, new CollectionTrunk(trx, id), keyFromEntry, compare, nodeCapacity);
|
|
61
|
-
for (const [key, entry] of actions) {
|
|
61
|
+
for (const [key, entry, guard] of actions) {
|
|
62
62
|
if (entry) {
|
|
63
|
+
// Enforce the entry's guard (if any) on EVERY handler run — initial staging
|
|
64
|
+
// and every conflict replay — so the uniqueness decision is re-made against
|
|
65
|
+
// the newest adopted committed state, not just the stage-time snapshot.
|
|
66
|
+
// A throw here discards the whole action's staged writes (Atomic wrapper).
|
|
67
|
+
if (guard !== undefined) {
|
|
68
|
+
if (guard.kind === 'absentRange') {
|
|
69
|
+
// Secondary-UNIQUE: the claimed range (a unique index's framed
|
|
70
|
+
// value prefix) must hold no entry other than this action's own
|
|
71
|
+
// key. Two short descents (range start and end) plus an early-exit
|
|
72
|
+
// walk, over the SAME store the upsert below writes to, so it sees entries earlier
|
|
73
|
+
// actions of this replay already staged or deleted (an UPDATE's
|
|
74
|
+
// delete-old half runs before its guarded insert half). The guard
|
|
75
|
+
// is plain data (it is serialized into the log with its action), and
|
|
76
|
+
// BTree.range reads the range's fields only — so a KeyRange that has
|
|
77
|
+
// round-tripped through JSON is scanned exactly like a live instance.
|
|
78
|
+
for await (const path of actionTree.range(guard.range)) {
|
|
79
|
+
const occupant = actionTree.at(path);
|
|
80
|
+
if (occupant === undefined)
|
|
81
|
+
continue;
|
|
82
|
+
const occupantKey = keyFromEntry(occupant);
|
|
83
|
+
if (compare(occupantKey, key) === 0)
|
|
84
|
+
continue; // self-exclusion
|
|
85
|
+
throw new TreeRangeTakenError(id, key, guard.range, occupantKey);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
const found = await actionTree.find(key);
|
|
90
|
+
if (found.on) {
|
|
91
|
+
if (guard.kind === 'absent') {
|
|
92
|
+
throw new TreeKeyTakenError(id, key);
|
|
93
|
+
}
|
|
94
|
+
// keepExisting: leave the present (rival's) entry in place and
|
|
95
|
+
// skip this entry silently — the INSERT OR IGNORE disposition.
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
63
100
|
await actionTree.upsert(entry);
|
|
64
101
|
}
|
|
65
102
|
else {
|