@quereus/sync 3.3.0 → 4.0.0
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/README.md +17 -7
- package/dist/src/clock/hlc.d.ts +43 -3
- package/dist/src/clock/hlc.d.ts.map +1 -1
- package/dist/src/clock/hlc.js +60 -10
- package/dist/src/clock/hlc.js.map +1 -1
- package/dist/src/create-sync-module.d.ts +46 -9
- package/dist/src/create-sync-module.d.ts.map +1 -1
- package/dist/src/create-sync-module.js +11 -8
- package/dist/src/create-sync-module.js.map +1 -1
- package/dist/src/index.d.ts +10 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +8 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/metadata/basis-lifecycle.d.ts +180 -0
- package/dist/src/metadata/basis-lifecycle.d.ts.map +1 -0
- package/dist/src/metadata/basis-lifecycle.js +211 -0
- package/dist/src/metadata/basis-lifecycle.js.map +1 -0
- package/dist/src/metadata/change-log.d.ts +1 -1
- package/dist/src/metadata/change-log.d.ts.map +1 -1
- package/dist/src/metadata/change-log.js +6 -6
- package/dist/src/metadata/change-log.js.map +1 -1
- package/dist/src/metadata/column-version.d.ts +14 -5
- package/dist/src/metadata/column-version.d.ts.map +1 -1
- package/dist/src/metadata/column-version.js +22 -12
- package/dist/src/metadata/column-version.js.map +1 -1
- package/dist/src/metadata/index.d.ts +2 -0
- package/dist/src/metadata/index.d.ts.map +1 -1
- package/dist/src/metadata/index.js +2 -0
- package/dist/src/metadata/index.js.map +1 -1
- package/dist/src/metadata/keys.d.ts +52 -2
- package/dist/src/metadata/keys.d.ts.map +1 -1
- package/dist/src/metadata/keys.js +99 -14
- package/dist/src/metadata/keys.js.map +1 -1
- package/dist/src/metadata/peer-state.d.ts +1 -1
- package/dist/src/metadata/peer-state.js +5 -5
- package/dist/src/metadata/quarantine.d.ts +90 -0
- package/dist/src/metadata/quarantine.d.ts.map +1 -0
- package/dist/src/metadata/quarantine.js +167 -0
- package/dist/src/metadata/quarantine.js.map +1 -0
- package/dist/src/metadata/schema-migration.d.ts +1 -1
- package/dist/src/metadata/schema-migration.js +7 -7
- package/dist/src/metadata/schema-version.d.ts +1 -1
- package/dist/src/metadata/schema-version.js +7 -7
- package/dist/src/metadata/tombstones.d.ts +26 -9
- package/dist/src/metadata/tombstones.d.ts.map +1 -1
- package/dist/src/metadata/tombstones.js +42 -19
- package/dist/src/metadata/tombstones.js.map +1 -1
- package/dist/src/sql/basis-lifecycle-tvf.d.ts +34 -0
- package/dist/src/sql/basis-lifecycle-tvf.d.ts.map +1 -0
- package/dist/src/sql/basis-lifecycle-tvf.js +101 -0
- package/dist/src/sql/basis-lifecycle-tvf.js.map +1 -0
- package/dist/src/sync/admission.d.ts +81 -0
- package/dist/src/sync/admission.d.ts.map +1 -0
- package/dist/src/sync/admission.js +94 -0
- package/dist/src/sync/admission.js.map +1 -0
- package/dist/src/sync/change-applicator.d.ts +65 -2
- package/dist/src/sync/change-applicator.d.ts.map +1 -1
- package/dist/src/sync/change-applicator.js +493 -68
- package/dist/src/sync/change-applicator.js.map +1 -1
- package/dist/src/sync/change-grouping.d.ts +43 -0
- package/dist/src/sync/change-grouping.d.ts.map +1 -0
- package/dist/src/sync/change-grouping.js +103 -0
- package/dist/src/sync/change-grouping.js.map +1 -0
- package/dist/src/sync/events.d.ts +159 -1
- package/dist/src/sync/events.d.ts.map +1 -1
- package/dist/src/sync/events.js +50 -0
- package/dist/src/sync/events.js.map +1 -1
- package/dist/src/sync/manager.d.ts +87 -0
- package/dist/src/sync/manager.d.ts.map +1 -1
- package/dist/src/sync/protocol.d.ts +174 -11
- package/dist/src/sync/protocol.d.ts.map +1 -1
- package/dist/src/sync/protocol.js +4 -1
- package/dist/src/sync/protocol.js.map +1 -1
- package/dist/src/sync/snapshot-stream.d.ts.map +1 -1
- package/dist/src/sync/snapshot-stream.js +89 -19
- package/dist/src/sync/snapshot-stream.js.map +1 -1
- package/dist/src/sync/snapshot.d.ts.map +1 -1
- package/dist/src/sync/snapshot.js +63 -44
- package/dist/src/sync/snapshot.js.map +1 -1
- package/dist/src/sync/store-adapter.d.ts +117 -15
- package/dist/src/sync/store-adapter.d.ts.map +1 -1
- package/dist/src/sync/store-adapter.js +247 -91
- package/dist/src/sync/store-adapter.js.map +1 -1
- package/dist/src/sync/sync-context.d.ts +44 -1
- package/dist/src/sync/sync-context.d.ts.map +1 -1
- package/dist/src/sync/sync-context.js +26 -0
- package/dist/src/sync/sync-context.js.map +1 -1
- package/dist/src/sync/sync-manager-impl.d.ts +247 -13
- package/dist/src/sync/sync-manager-impl.d.ts.map +1 -1
- package/dist/src/sync/sync-manager-impl.js +788 -193
- package/dist/src/sync/sync-manager-impl.js.map +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-applicator.js","sourceRoot":"","sources":["../../../src/sync/change-applicator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"change-applicator.js","sourceRoot":"","sources":["../../../src/sync/change-applicator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group a flat, HLC-bearing change/migration stream into per-transaction
|
|
3
|
+
* {@link ChangeSet}s.
|
|
4
|
+
*
|
|
5
|
+
* After `sync-per-transaction-hlc-tick`, every fact a transaction produces shares
|
|
6
|
+
* one base HLC `(wallTime, counter, siteId)` and differs only in `opSeq`. That
|
|
7
|
+
* triple **is** the transaction's identity, so grouping by it reconstructs the
|
|
8
|
+
* source transactions exactly — one `ChangeSet` per commit, never split, never
|
|
9
|
+
* merged. Schema migrations of a transaction share the same base (DDL takes the
|
|
10
|
+
* lowest `opSeq`s) and rejoin their data facts here.
|
|
11
|
+
*
|
|
12
|
+
* Bounding by `batchSize` happens at **transaction granularity**: whole
|
|
13
|
+
* transactions accumulate until the cumulative data-change count reaches the
|
|
14
|
+
* bound; a transaction is never split to hit it. A single oversized transaction
|
|
15
|
+
* (more facts than `batchSize`) is returned whole and reported via `onOversized`.
|
|
16
|
+
*/
|
|
17
|
+
import { type HLC } from '../clock/hlc.js';
|
|
18
|
+
import type { SiteId } from '../clock/site.js';
|
|
19
|
+
import type { Change, ChangeSet, SchemaMigration } from './protocol.js';
|
|
20
|
+
/** One source transaction's facts, keyed by its base HLC identity. */
|
|
21
|
+
interface TransactionGroup {
|
|
22
|
+
/** Base HLC `(wallTime, counter, siteId)` with `opSeq` 0 — the transaction identity. */
|
|
23
|
+
readonly base: HLC;
|
|
24
|
+
readonly siteId: SiteId;
|
|
25
|
+
readonly changes: Change[];
|
|
26
|
+
readonly migrations: SchemaMigration[];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Group changes and migrations by transaction identity `(wallTime, counter,
|
|
30
|
+
* siteId)`. Input order is irrelevant — groups are ordered by base HLC ascending
|
|
31
|
+
* and each group's facts/migrations are ordered by `opSeq`.
|
|
32
|
+
*/
|
|
33
|
+
export declare function groupByTransaction(changes: Change[], migrations: SchemaMigration[]): TransactionGroup[];
|
|
34
|
+
/**
|
|
35
|
+
* Build per-transaction {@link ChangeSet}s from a flat change/migration stream,
|
|
36
|
+
* bounded at transaction granularity by `batchSize`.
|
|
37
|
+
*
|
|
38
|
+
* @param onOversized - called once per transaction whose data-change count
|
|
39
|
+
* exceeds `batchSize`; the transaction is still returned whole.
|
|
40
|
+
*/
|
|
41
|
+
export declare function buildTransactionChangeSets(changes: Change[], migrations: SchemaMigration[], batchSize: number, onOversized?: (transactionId: string, changeCount: number) => void): ChangeSet[];
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=change-grouping.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-grouping.d.ts","sourceRoot":"","sources":["../../../src/sync/change-grouping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,KAAK,GAAG,EAA6C,MAAM,iBAAiB,CAAC;AACtF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAExE,sEAAsE;AACtE,UAAU,gBAAgB;IACzB,wFAAwF;IACxF,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,CAAC;CACvC;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,eAAe,EAAE,GAC3B,gBAAgB,EAAE,CA6BpB;AAkBD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACzC,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,EAAE,eAAe,EAAE,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,IAAI,GAChE,SAAS,EAAE,CA6Bb"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Group a flat, HLC-bearing change/migration stream into per-transaction
|
|
3
|
+
* {@link ChangeSet}s.
|
|
4
|
+
*
|
|
5
|
+
* After `sync-per-transaction-hlc-tick`, every fact a transaction produces shares
|
|
6
|
+
* one base HLC `(wallTime, counter, siteId)` and differs only in `opSeq`. That
|
|
7
|
+
* triple **is** the transaction's identity, so grouping by it reconstructs the
|
|
8
|
+
* source transactions exactly — one `ChangeSet` per commit, never split, never
|
|
9
|
+
* merged. Schema migrations of a transaction share the same base (DDL takes the
|
|
10
|
+
* lowest `opSeq`s) and rejoin their data facts here.
|
|
11
|
+
*
|
|
12
|
+
* Bounding by `batchSize` happens at **transaction granularity**: whole
|
|
13
|
+
* transactions accumulate until the cumulative data-change count reaches the
|
|
14
|
+
* bound; a transaction is never split to hit it. A single oversized transaction
|
|
15
|
+
* (more facts than `batchSize`) is returned whole and reported via `onOversized`.
|
|
16
|
+
*/
|
|
17
|
+
import { compareHLC, createHLC, deterministicTxnId } from '../clock/hlc.js';
|
|
18
|
+
/**
|
|
19
|
+
* Group changes and migrations by transaction identity `(wallTime, counter,
|
|
20
|
+
* siteId)`. Input order is irrelevant — groups are ordered by base HLC ascending
|
|
21
|
+
* and each group's facts/migrations are ordered by `opSeq`.
|
|
22
|
+
*/
|
|
23
|
+
export function groupByTransaction(changes, migrations) {
|
|
24
|
+
const groups = new Map();
|
|
25
|
+
const groupFor = (hlc) => {
|
|
26
|
+
// deterministicTxnId excludes opSeq, so it is exactly the transaction identity.
|
|
27
|
+
const key = deterministicTxnId(hlc);
|
|
28
|
+
let group = groups.get(key);
|
|
29
|
+
if (!group) {
|
|
30
|
+
group = {
|
|
31
|
+
base: createHLC(hlc.wallTime, hlc.counter, hlc.siteId, 0),
|
|
32
|
+
siteId: hlc.siteId,
|
|
33
|
+
changes: [],
|
|
34
|
+
migrations: [],
|
|
35
|
+
};
|
|
36
|
+
groups.set(key, group);
|
|
37
|
+
}
|
|
38
|
+
return group;
|
|
39
|
+
};
|
|
40
|
+
for (const change of changes)
|
|
41
|
+
groupFor(change.hlc).changes.push(change);
|
|
42
|
+
for (const migration of migrations)
|
|
43
|
+
groupFor(migration.hlc).migrations.push(migration);
|
|
44
|
+
const ordered = [...groups.values()];
|
|
45
|
+
ordered.sort((a, b) => compareHLC(a.base, b.base));
|
|
46
|
+
for (const group of ordered) {
|
|
47
|
+
group.changes.sort((a, b) => a.hlc.opSeq - b.hlc.opSeq);
|
|
48
|
+
group.migrations.sort((a, b) => a.hlc.opSeq - b.hlc.opSeq);
|
|
49
|
+
}
|
|
50
|
+
return ordered;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* The group's maximum fact HLC (its last `opSeq`). A consumer that sets
|
|
54
|
+
* `lastSyncHLC = ChangeSet.hlc` and re-fetches resumes strictly *after* the whole
|
|
55
|
+
* transaction, because `buildChangeLogScanBoundsAfter` excludes everything `<=` it.
|
|
56
|
+
*/
|
|
57
|
+
function maxGroupHLC(group) {
|
|
58
|
+
let max = group.base;
|
|
59
|
+
for (const change of group.changes) {
|
|
60
|
+
if (compareHLC(change.hlc, max) > 0)
|
|
61
|
+
max = change.hlc;
|
|
62
|
+
}
|
|
63
|
+
for (const migration of group.migrations) {
|
|
64
|
+
if (compareHLC(migration.hlc, max) > 0)
|
|
65
|
+
max = migration.hlc;
|
|
66
|
+
}
|
|
67
|
+
return max;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Build per-transaction {@link ChangeSet}s from a flat change/migration stream,
|
|
71
|
+
* bounded at transaction granularity by `batchSize`.
|
|
72
|
+
*
|
|
73
|
+
* @param onOversized - called once per transaction whose data-change count
|
|
74
|
+
* exceeds `batchSize`; the transaction is still returned whole.
|
|
75
|
+
*/
|
|
76
|
+
export function buildTransactionChangeSets(changes, migrations, batchSize, onOversized) {
|
|
77
|
+
if (changes.length === 0 && migrations.length === 0)
|
|
78
|
+
return [];
|
|
79
|
+
const groups = groupByTransaction(changes, migrations);
|
|
80
|
+
const result = [];
|
|
81
|
+
let cumulative = 0;
|
|
82
|
+
for (const group of groups) {
|
|
83
|
+
const transactionId = deterministicTxnId(group.base);
|
|
84
|
+
result.push({
|
|
85
|
+
siteId: group.siteId,
|
|
86
|
+
transactionId,
|
|
87
|
+
hlc: maxGroupHLC(group),
|
|
88
|
+
changes: group.changes,
|
|
89
|
+
schemaMigrations: group.migrations,
|
|
90
|
+
});
|
|
91
|
+
if (group.changes.length > batchSize) {
|
|
92
|
+
onOversized?.(transactionId, group.changes.length);
|
|
93
|
+
}
|
|
94
|
+
// Accumulate WHOLE transactions; stop once the bound is reached. The
|
|
95
|
+
// remaining transactions come on the next getChangesSince call (the
|
|
96
|
+
// consumer advances its watermark to the last returned ChangeSet.hlc).
|
|
97
|
+
cumulative += group.changes.length;
|
|
98
|
+
if (cumulative >= batchSize)
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=change-grouping.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-grouping.js","sourceRoot":"","sources":["../../../src/sync/change-grouping.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
import type { SqlValue } from '@quereus/quereus';
|
|
8
8
|
import type { HLC } from '../clock/hlc.js';
|
|
9
9
|
import type { SiteId } from '../clock/site.js';
|
|
10
|
-
import type { Change } from './protocol.js';
|
|
10
|
+
import type { Change, UnknownTableDisposition } from './protocol.js';
|
|
11
|
+
import type { BasisLifecycleState } from '../metadata/basis-lifecycle.js';
|
|
11
12
|
/**
|
|
12
13
|
* Fired when remote changes are applied locally.
|
|
13
14
|
*/
|
|
@@ -52,6 +53,118 @@ export interface ConflictEvent {
|
|
|
52
53
|
readonly winner: 'local' | 'remote';
|
|
53
54
|
/** HLC of the winning value */
|
|
54
55
|
readonly winningHLC: HLC;
|
|
56
|
+
/**
|
|
57
|
+
* The incoming (remote) change's before-image: the value it overwrote at its
|
|
58
|
+
* origin. Absent when the change carried no prior. Additive and informational —
|
|
59
|
+
* useful for audit trails and conflict debugging.
|
|
60
|
+
*/
|
|
61
|
+
readonly remotePriorValue?: SqlValue;
|
|
62
|
+
/** HLC of the remote before-image. Present iff `remotePriorValue` is. */
|
|
63
|
+
readonly remotePriorHlc?: HLC;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Fired when an inbound batch's merged row state trips a **local** commit-time
|
|
67
|
+
* global assertion. Under the seam's trust-the-origin posture the data still
|
|
68
|
+
* lands (the batch commits in report mode, so the MV / `Database.watch`
|
|
69
|
+
* subscribers for the violating row stay consistent with the base table) — the
|
|
70
|
+
* event is purely host-facing: it tells the application its converged data
|
|
71
|
+
* violates a rule the application declared, so it can alert, audit, or trigger
|
|
72
|
+
* an out-of-band reconciliation. The host decides policy; the sync layer does
|
|
73
|
+
* not abort, retry, or refresh anything. See `docs/sync.md` § Reactive Hooks.
|
|
74
|
+
*
|
|
75
|
+
* Assertion-scoped, not table-scoped: an assertion may span several tables, so
|
|
76
|
+
* no single schema/table is meaningful.
|
|
77
|
+
*/
|
|
78
|
+
export interface AssertionViolationEvent {
|
|
79
|
+
/** Name of the violated local assertion. */
|
|
80
|
+
readonly assertion: string;
|
|
81
|
+
/** Sample rows from the assertion's violation query (diagnostic; capped by
|
|
82
|
+
* the engine). The assertion SELECT's output shape, not full table rows. */
|
|
83
|
+
readonly samples: SqlValue[][];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Fired when inbound changes reference a table outside the local basis (an
|
|
87
|
+
* out-of-basis straggler delta). Always emitted, regardless of disposition, so
|
|
88
|
+
* an operator sees straggler traffic even when it is being dropped.
|
|
89
|
+
*/
|
|
90
|
+
export interface UnknownTableEvent {
|
|
91
|
+
/** Schema of the unknown table. */
|
|
92
|
+
readonly schema: string;
|
|
93
|
+
/** Name of the unknown table. */
|
|
94
|
+
readonly table: string;
|
|
95
|
+
/** Configured disposition applied to the diverted changes. */
|
|
96
|
+
readonly disposition: UnknownTableDisposition;
|
|
97
|
+
/** Number of changes diverted for this table in this apply. */
|
|
98
|
+
readonly changeCount: number;
|
|
99
|
+
/** Straggler origin (the changeset's site id). */
|
|
100
|
+
readonly siteId: SiteId;
|
|
101
|
+
/** Max HLC among the diverted changes for this table. */
|
|
102
|
+
readonly latestHLC: HLC;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Fired when a basis table's aggregate lifecycle state changes across a lens
|
|
106
|
+
* deploy (`recordLensDeployment`). Emitted only on an *actual* state transition
|
|
107
|
+
* of an already-tracked table — a brand-new table's first classification and an
|
|
108
|
+
* idempotent re-apply emit nothing.
|
|
109
|
+
*
|
|
110
|
+
* The `directly-mapped → derivation-source-only` transition is the developer's
|
|
111
|
+
* "this table is now legacy — safe to schedule retirement" signal: the local
|
|
112
|
+
* lens has flipped off it, and it now survives only as a maintained table's
|
|
113
|
+
* source. See `docs/migration.md` § 2 Converge.
|
|
114
|
+
*/
|
|
115
|
+
export interface BasisTableLifecycleEvent {
|
|
116
|
+
/** Basis schema of the table whose state changed. */
|
|
117
|
+
readonly schema: string;
|
|
118
|
+
/** Basis table whose state changed. */
|
|
119
|
+
readonly table: string;
|
|
120
|
+
/** The state before this deploy. */
|
|
121
|
+
readonly previousState: BasisLifecycleState;
|
|
122
|
+
/** The state after this deploy. */
|
|
123
|
+
readonly newState: BasisLifecycleState;
|
|
124
|
+
/** Wall-clock ms when the transition was recorded. */
|
|
125
|
+
readonly at: number;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Fired when the eviction sweep ({@link SyncManager.evictExpiredBasisTables})
|
|
129
|
+
* reclaims a detached basis table's local storage (`docs/migration.md` § 4
|
|
130
|
+
* Contract). Emitted after `dropLocalTable` succeeds and the lifecycle record is
|
|
131
|
+
* cleared. The table was already out of the local basis (detached) before this;
|
|
132
|
+
* the event reports that its lingering storage has now been reclaimed.
|
|
133
|
+
*/
|
|
134
|
+
export interface BasisTableEvictedEvent {
|
|
135
|
+
/** Basis schema of the evicted table. */
|
|
136
|
+
readonly schema: string;
|
|
137
|
+
/** Basis table whose local storage was reclaimed. */
|
|
138
|
+
readonly table: string;
|
|
139
|
+
/** Wall-clock ms when the eviction ran. */
|
|
140
|
+
readonly at: number;
|
|
141
|
+
/**
|
|
142
|
+
* How long (ms) the table had been quiet at eviction time (`now - quietSince`),
|
|
143
|
+
* i.e. since the later of unmap/detach and the last observed directly-mapped
|
|
144
|
+
* write. Diagnostic — lets a host see how far past the horizon the drop ran.
|
|
145
|
+
*/
|
|
146
|
+
readonly quietForMs: number;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Fired once per table whose held out-of-basis changes were replayed into it by
|
|
150
|
+
* the host-driven drain ({@link SyncManager.drainHeldChanges}) after the table
|
|
151
|
+
* reappeared in the local basis (`docs/migration.md` § 4 Contract — revival).
|
|
152
|
+
* `drained` is every held entry cleared from the hold for this table (applied or
|
|
153
|
+
* not); `applied` won LWW and reached the store; `skipped` lost LWW, was blocked
|
|
154
|
+
* by a tombstone, or was drift-dropped (a held column change for a column the
|
|
155
|
+
* re-created table no longer has). `applied + skipped === drained`.
|
|
156
|
+
*/
|
|
157
|
+
export interface HeldChangesDrainedEvent {
|
|
158
|
+
/** Schema of the reappeared table whose held changes drained. */
|
|
159
|
+
readonly schema: string;
|
|
160
|
+
/** Reappeared table whose held changes drained. */
|
|
161
|
+
readonly table: string;
|
|
162
|
+
/** Held entries cleared from the hold for this table (applied + skipped). */
|
|
163
|
+
readonly drained: number;
|
|
164
|
+
/** Held changes that won resolution and were applied to the store. */
|
|
165
|
+
readonly applied: number;
|
|
166
|
+
/** Held changes cleared without applying (LWW loss, tombstone-blocked, drift). */
|
|
167
|
+
readonly skipped: number;
|
|
55
168
|
}
|
|
56
169
|
/**
|
|
57
170
|
* Sync connection state.
|
|
@@ -98,6 +211,36 @@ export interface SyncEventEmitter {
|
|
|
98
211
|
* Fired when a conflict is resolved (via LWW or a custom resolver).
|
|
99
212
|
*/
|
|
100
213
|
onConflictResolved(listener: (event: ConflictEvent) => void): Unsubscribe;
|
|
214
|
+
/**
|
|
215
|
+
* Subscribe to unknown-table events.
|
|
216
|
+
* Fired when inbound changes reference a table outside the local basis,
|
|
217
|
+
* regardless of the configured disposition.
|
|
218
|
+
*/
|
|
219
|
+
onUnknownTable(listener: (event: UnknownTableEvent) => void): Unsubscribe;
|
|
220
|
+
/**
|
|
221
|
+
* Subscribe to assertion-violation events.
|
|
222
|
+
* Fired when an inbound batch's converged row state trips a local commit-time
|
|
223
|
+
* global assertion. The data has already landed (detect-and-notify); the
|
|
224
|
+
* event is informational so the host can decide policy.
|
|
225
|
+
*/
|
|
226
|
+
onAssertionViolation(listener: (event: AssertionViolationEvent) => void): Unsubscribe;
|
|
227
|
+
/**
|
|
228
|
+
* Subscribe to basis-table lifecycle transitions.
|
|
229
|
+
* Fired when a basis table's aggregate state changes across a lens deploy
|
|
230
|
+
* (`directly-mapped → derivation-source-only` is the "safe to retire" signal).
|
|
231
|
+
*/
|
|
232
|
+
onBasisTableLifecycle(listener: (event: BasisTableLifecycleEvent) => void): Unsubscribe;
|
|
233
|
+
/**
|
|
234
|
+
* Subscribe to basis-table eviction events.
|
|
235
|
+
* Fired when the eviction sweep reclaims a detached basis table's local storage.
|
|
236
|
+
*/
|
|
237
|
+
onBasisTableEvicted(listener: (event: BasisTableEvictedEvent) => void): Unsubscribe;
|
|
238
|
+
/**
|
|
239
|
+
* Subscribe to held-change drain events.
|
|
240
|
+
* Fired once per table whose held out-of-basis changes were replayed into it
|
|
241
|
+
* after the table reappeared in the local basis (the drain sweep).
|
|
242
|
+
*/
|
|
243
|
+
onHeldChangesDrained(listener: (event: HeldChangesDrainedEvent) => void): Unsubscribe;
|
|
101
244
|
}
|
|
102
245
|
/**
|
|
103
246
|
* Default implementation of SyncEventEmitter.
|
|
@@ -107,13 +250,28 @@ export declare class SyncEventEmitterImpl implements SyncEventEmitter {
|
|
|
107
250
|
private localChangeListeners;
|
|
108
251
|
private syncStateListeners;
|
|
109
252
|
private conflictListeners;
|
|
253
|
+
private unknownTableListeners;
|
|
254
|
+
private assertionViolationListeners;
|
|
255
|
+
private basisTableLifecycleListeners;
|
|
256
|
+
private basisTableEvictedListeners;
|
|
257
|
+
private heldChangesDrainedListeners;
|
|
110
258
|
onRemoteChange(listener: (event: RemoteChangeEvent) => void): Unsubscribe;
|
|
111
259
|
onLocalChange(listener: (event: LocalChangeEvent) => void): Unsubscribe;
|
|
112
260
|
onSyncStateChange(listener: (state: SyncState) => void): Unsubscribe;
|
|
113
261
|
onConflictResolved(listener: (event: ConflictEvent) => void): Unsubscribe;
|
|
262
|
+
onUnknownTable(listener: (event: UnknownTableEvent) => void): Unsubscribe;
|
|
263
|
+
onAssertionViolation(listener: (event: AssertionViolationEvent) => void): Unsubscribe;
|
|
264
|
+
onBasisTableLifecycle(listener: (event: BasisTableLifecycleEvent) => void): Unsubscribe;
|
|
265
|
+
onBasisTableEvicted(listener: (event: BasisTableEvictedEvent) => void): Unsubscribe;
|
|
266
|
+
onHeldChangesDrained(listener: (event: HeldChangesDrainedEvent) => void): Unsubscribe;
|
|
114
267
|
emitRemoteChange(event: RemoteChangeEvent): void;
|
|
115
268
|
emitLocalChange(event: LocalChangeEvent): void;
|
|
116
269
|
emitSyncStateChange(state: SyncState): void;
|
|
117
270
|
emitConflictResolved(event: ConflictEvent): void;
|
|
271
|
+
emitUnknownTable(event: UnknownTableEvent): void;
|
|
272
|
+
emitAssertionViolation(event: AssertionViolationEvent): void;
|
|
273
|
+
emitBasisTableLifecycle(event: BasisTableLifecycleEvent): void;
|
|
274
|
+
emitBasisTableEvicted(event: BasisTableEvictedEvent): void;
|
|
275
|
+
emitHeldChangesDrained(event: HeldChangesDrainedEvent): void;
|
|
118
276
|
}
|
|
119
277
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/sync/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/sync/events.ts"],"names":[],"mappings":"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"}
|
package/dist/src/sync/events.js
CHANGED
|
@@ -15,6 +15,11 @@ export class SyncEventEmitterImpl {
|
|
|
15
15
|
localChangeListeners = new Set();
|
|
16
16
|
syncStateListeners = new Set();
|
|
17
17
|
conflictListeners = new Set();
|
|
18
|
+
unknownTableListeners = new Set();
|
|
19
|
+
assertionViolationListeners = new Set();
|
|
20
|
+
basisTableLifecycleListeners = new Set();
|
|
21
|
+
basisTableEvictedListeners = new Set();
|
|
22
|
+
heldChangesDrainedListeners = new Set();
|
|
18
23
|
onRemoteChange(listener) {
|
|
19
24
|
this.remoteChangeListeners.add(listener);
|
|
20
25
|
return () => this.remoteChangeListeners.delete(listener);
|
|
@@ -31,6 +36,26 @@ export class SyncEventEmitterImpl {
|
|
|
31
36
|
this.conflictListeners.add(listener);
|
|
32
37
|
return () => this.conflictListeners.delete(listener);
|
|
33
38
|
}
|
|
39
|
+
onUnknownTable(listener) {
|
|
40
|
+
this.unknownTableListeners.add(listener);
|
|
41
|
+
return () => this.unknownTableListeners.delete(listener);
|
|
42
|
+
}
|
|
43
|
+
onAssertionViolation(listener) {
|
|
44
|
+
this.assertionViolationListeners.add(listener);
|
|
45
|
+
return () => this.assertionViolationListeners.delete(listener);
|
|
46
|
+
}
|
|
47
|
+
onBasisTableLifecycle(listener) {
|
|
48
|
+
this.basisTableLifecycleListeners.add(listener);
|
|
49
|
+
return () => this.basisTableLifecycleListeners.delete(listener);
|
|
50
|
+
}
|
|
51
|
+
onBasisTableEvicted(listener) {
|
|
52
|
+
this.basisTableEvictedListeners.add(listener);
|
|
53
|
+
return () => this.basisTableEvictedListeners.delete(listener);
|
|
54
|
+
}
|
|
55
|
+
onHeldChangesDrained(listener) {
|
|
56
|
+
this.heldChangesDrainedListeners.add(listener);
|
|
57
|
+
return () => this.heldChangesDrainedListeners.delete(listener);
|
|
58
|
+
}
|
|
34
59
|
// Internal emit methods
|
|
35
60
|
emitRemoteChange(event) {
|
|
36
61
|
for (const listener of this.remoteChangeListeners) {
|
|
@@ -52,5 +77,30 @@ export class SyncEventEmitterImpl {
|
|
|
52
77
|
listener(event);
|
|
53
78
|
}
|
|
54
79
|
}
|
|
80
|
+
emitUnknownTable(event) {
|
|
81
|
+
for (const listener of this.unknownTableListeners) {
|
|
82
|
+
listener(event);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
emitAssertionViolation(event) {
|
|
86
|
+
for (const listener of this.assertionViolationListeners) {
|
|
87
|
+
listener(event);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
emitBasisTableLifecycle(event) {
|
|
91
|
+
for (const listener of this.basisTableLifecycleListeners) {
|
|
92
|
+
listener(event);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
emitBasisTableEvicted(event) {
|
|
96
|
+
for (const listener of this.basisTableEvictedListeners) {
|
|
97
|
+
listener(event);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
emitHeldChangesDrained(event) {
|
|
101
|
+
for (const listener of this.heldChangesDrainedListeners) {
|
|
102
|
+
listener(event);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
55
105
|
}
|
|
56
106
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/sync/events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/sync/events.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
* This interface defines the transport-agnostic sync API.
|
|
5
5
|
* Applications implement their own transport layer and call these methods.
|
|
6
6
|
*/
|
|
7
|
+
import type { Database, LensDeploymentSnapshot } from '@quereus/quereus';
|
|
7
8
|
import type { HLC } from '../clock/hlc.js';
|
|
8
9
|
import type { SiteId } from '../clock/site.js';
|
|
9
10
|
import type { ApplyResult, ChangeSet, Snapshot, SnapshotChunk, SnapshotProgress } from './protocol.js';
|
|
11
|
+
import type { BasisTableLifecycleRecord } from '../metadata/basis-lifecycle.js';
|
|
10
12
|
/**
|
|
11
13
|
* Main sync manager interface.
|
|
12
14
|
*
|
|
@@ -91,6 +93,91 @@ export interface SyncManager {
|
|
|
91
93
|
* Returns the number of tombstones pruned.
|
|
92
94
|
*/
|
|
93
95
|
pruneTombstones(): Promise<number>;
|
|
96
|
+
/**
|
|
97
|
+
* Prune quarantined out-of-basis straggler changes older than the retention
|
|
98
|
+
* horizon. A held change past the horizon was already outside the delivery
|
|
99
|
+
* guarantee. Call from the same periodic maintenance path as
|
|
100
|
+
* {@link pruneTombstones}. Returns the number of entries pruned.
|
|
101
|
+
*/
|
|
102
|
+
pruneQuarantine(): Promise<number>;
|
|
103
|
+
/**
|
|
104
|
+
* Replay held out-of-basis changes (`quarantine` + forwardable `store-and-forward`
|
|
105
|
+
* entries) into tables that have since reappeared in the local basis — the revival
|
|
106
|
+
* path of the unknown-table contract (`docs/migration.md` § 4 Contract). Each held
|
|
107
|
+
* change is resolved against the now-present table exactly like a fresh inbound
|
|
108
|
+
* change (LWW / tombstone-blocking / `allowResurrection`) and cleared from the hold
|
|
109
|
+
* on resolution, whether or not it applied.
|
|
110
|
+
*
|
|
111
|
+
* Host-driven — call from the same periodic maintenance path as
|
|
112
|
+
* {@link pruneTombstones} / {@link pruneQuarantine} / {@link evictExpiredBasisTables},
|
|
113
|
+
* or right after re-creating a table / applying an inbound `create_table`. The
|
|
114
|
+
* library adds no timer and never drains inline during {@link applyChanges}.
|
|
115
|
+
*
|
|
116
|
+
* Scope mirrors `QuarantineStore.list`: `(schema, table)` drains one table,
|
|
117
|
+
* `(schema)` a schema, `()` sweeps every held entry whose table is back. A no-op
|
|
118
|
+
* returning 0 without a `getTableSchema` oracle (a relay-only coordinator cannot
|
|
119
|
+
* tell which held tables are present). Returns the number of held entries drained
|
|
120
|
+
* (cleared from the hold). Fires `onHeldChangesDrained` once per drained table and
|
|
121
|
+
* `onRemoteChange` for the applied changes.
|
|
122
|
+
*/
|
|
123
|
+
drainHeldChanges(schema?: string, table?: string): Promise<number>;
|
|
124
|
+
/**
|
|
125
|
+
* Cumulative unknown-table disposition stats since process start.
|
|
126
|
+
*
|
|
127
|
+
* `ignored` / `quarantined` / `forwarded` count diverted changes by
|
|
128
|
+
* disposition; `byTable` counts diverted changes per `schema.table` (the union
|
|
129
|
+
* across all dispositions — the per-disposition counters partition it).
|
|
130
|
+
* `forwarded` counts changes **held as forwardable at apply time** under the
|
|
131
|
+
* `store-and-forward` disposition (held once). `relayed` counts forwardable
|
|
132
|
+
* changes **re-offered through `getChangesSince`** — relay activity, distinct
|
|
133
|
+
* from `forwarded`: one held entry is relayed possibly many times until it GCs,
|
|
134
|
+
* so `relayed` grows with outbound relay traffic rather than with distinct
|
|
135
|
+
* stragglers. Mirrors the engine's `getMaterializedViewCollisionStats()` pattern
|
|
136
|
+
* (observe-only, in-memory).
|
|
137
|
+
*/
|
|
138
|
+
getUnknownTableStats(): {
|
|
139
|
+
ignored: number;
|
|
140
|
+
quarantined: number;
|
|
141
|
+
forwarded: number;
|
|
142
|
+
relayed: number;
|
|
143
|
+
byTable: Map<string, number>;
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Record one logical schema's lens deployment over its basis, updating the
|
|
147
|
+
* durable per-basis-table lifecycle classification (`docs/migration.md`
|
|
148
|
+
* § 2 Converge). Driven by the `notifyLensDeployment` engine hook, forwarded
|
|
149
|
+
* from the basis-backing store module.
|
|
150
|
+
*
|
|
151
|
+
* The snapshot is scoped to one logical schema, so each schema's directly-mapped
|
|
152
|
+
* contribution is stored separately (`mappedBy`) and the aggregate state ORs
|
|
153
|
+
* them — a basis table stays `directly-mapped` until the *last* mapper drops it.
|
|
154
|
+
* Transitions stamp `mappedSince` / `unmappedSince` and emit `onBasisTableLifecycle`.
|
|
155
|
+
*
|
|
156
|
+
* Advisory bookkeeping: a throwing call must never abort the deploy. The store
|
|
157
|
+
* forwarder wraps the listener in try/catch, so an exception here is logged and
|
|
158
|
+
* swallowed there.
|
|
159
|
+
*/
|
|
160
|
+
recordLensDeployment(db: Database, logicalSchemaName: string, snapshot: LensDeploymentSnapshot): Promise<void>;
|
|
161
|
+
/**
|
|
162
|
+
* Read the persisted basis-table lifecycle records (survives restart — no
|
|
163
|
+
* in-memory-only state). Each record combines the static classification
|
|
164
|
+
* (`state` + `mappedSince` / `unmappedSince` / `detachedAt`) with the dynamic
|
|
165
|
+
* `lastDirectlyMappedWriteAt` signal and any captured `evictPolicy` override —
|
|
166
|
+
* the "safe to retire" reading is `state` is `derivation-source-only` /
|
|
167
|
+
* `detached` and the quiet clock is older than the effective horizon.
|
|
168
|
+
*/
|
|
169
|
+
getBasisTableLifecycle(): Promise<BasisTableLifecycleRecord[]>;
|
|
170
|
+
/**
|
|
171
|
+
* Reclaim the local storage of every detached basis table quiet past its
|
|
172
|
+
* effective retention horizon (`docs/migration.md` § 4 Contract). Host-driven —
|
|
173
|
+
* call from the same periodic maintenance path as {@link pruneTombstones} /
|
|
174
|
+
* {@link pruneQuarantine}; the library adds no timer. A no-op when no
|
|
175
|
+
* `dropLocalTable` reclaim callback was wired (e.g. a relay-only coordinator).
|
|
176
|
+
* Returns the number of tables evicted. Fires `onBasisTableEvicted` per drop.
|
|
177
|
+
*
|
|
178
|
+
* @param now - Wall-clock ms used for horizon math (defaults to `Date.now()`).
|
|
179
|
+
*/
|
|
180
|
+
evictExpiredBasisTables(now?: number): Promise<number>;
|
|
94
181
|
/**
|
|
95
182
|
* Stream a snapshot as chunks for memory-efficient transfer.
|
|
96
183
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sync/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sync/manager.ts"],"names":[],"mappings":"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"}
|