@quereus/sync 3.3.0 → 4.1.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 +9 -9
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Applications can serialize these to JSON, MessagePack, protobuf, etc.
|
|
6
6
|
* and send via WebSocket, HTTP, WebRTC, or any other transport.
|
|
7
7
|
*/
|
|
8
|
-
import type { Row, SqlValue } from '@quereus/quereus';
|
|
8
|
+
import type { AssertionViolation, Row, SqlValue } from '@quereus/quereus';
|
|
9
9
|
import type { HLC } from '../clock/hlc.js';
|
|
10
10
|
import type { SiteId } from '../clock/site.js';
|
|
11
11
|
/**
|
|
@@ -19,6 +19,16 @@ export interface ColumnChange {
|
|
|
19
19
|
readonly column: string;
|
|
20
20
|
readonly value: SqlValue;
|
|
21
21
|
readonly hlc: HLC;
|
|
22
|
+
/**
|
|
23
|
+
* Optional per-cell before-image: the value this write overwrote at the origin.
|
|
24
|
+
* Sourced from the prior *tracked* cell version (not the engine's `oldRow`), so
|
|
25
|
+
* it pairs semantically with `value`/`hlc`. Absent on the first write of a cell
|
|
26
|
+
* (no prior version) and on snapshot-reconstructed cells. Purely additive and
|
|
27
|
+
* best-effort: producers may omit it, receivers ignore it when absent.
|
|
28
|
+
*/
|
|
29
|
+
readonly priorValue?: SqlValue;
|
|
30
|
+
/** HLC of the overwritten cell version. Present iff `priorValue` is. */
|
|
31
|
+
readonly priorHlc?: HLC;
|
|
22
32
|
}
|
|
23
33
|
/**
|
|
24
34
|
* A row deletion.
|
|
@@ -29,6 +39,16 @@ export interface RowDeletion {
|
|
|
29
39
|
readonly table: string;
|
|
30
40
|
readonly pk: SqlValue[];
|
|
31
41
|
readonly hlc: HLC;
|
|
42
|
+
/**
|
|
43
|
+
* Optional last-known row image at the origin: the row's column-ordered values
|
|
44
|
+
* just before it was deleted. Sourced from the engine's `oldRow` at delete time
|
|
45
|
+
* (no extra read), so it pairs with `pk`/`hlc`. The row side of the per-cell
|
|
46
|
+
* before-image — lets a receiver show or undo what was removed without having
|
|
47
|
+
* reconstructed it beforehand. Absent when the delete carried no `oldRow`
|
|
48
|
+
* (relayed/synthesized deletes) and on snapshot-reconstructed tombstones. Purely
|
|
49
|
+
* additive and best-effort: producers may omit it, receivers ignore it when absent.
|
|
50
|
+
*/
|
|
51
|
+
readonly priorRow?: Row;
|
|
32
52
|
}
|
|
33
53
|
/**
|
|
34
54
|
* Union type for all change kinds.
|
|
@@ -50,19 +70,32 @@ export interface SchemaMigration {
|
|
|
50
70
|
readonly schemaVersion: number;
|
|
51
71
|
}
|
|
52
72
|
/**
|
|
53
|
-
*
|
|
54
|
-
*
|
|
73
|
+
* Exactly one source transaction's worth of changes.
|
|
74
|
+
*
|
|
75
|
+
* A ChangeSet **is** one commit: `getChangesSince` emits one ChangeSet per source
|
|
76
|
+
* transaction (grouped by HLC identity `(wallTime, counter, siteId)`), never
|
|
77
|
+
* splitting a commit across ChangeSets and never merging two commits into one. All
|
|
78
|
+
* changes within a ChangeSet are applied atomically.
|
|
55
79
|
*/
|
|
56
80
|
export interface ChangeSet {
|
|
57
|
-
/** Origin replica */
|
|
81
|
+
/** Origin replica (the single site that produced this transaction). */
|
|
58
82
|
readonly siteId: SiteId;
|
|
59
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Deterministic id of this one source transaction — `deterministicTxnId(base)`
|
|
85
|
+
* over the transaction's base HLC `(wallTime, counter, siteId)`. Stable across
|
|
86
|
+
* peers (every replica that replays the transaction derives the same id), not a
|
|
87
|
+
* random UUID.
|
|
88
|
+
*/
|
|
60
89
|
readonly transactionId: string;
|
|
61
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* The transaction's commit boundary: its **maximum** fact HLC (the last
|
|
92
|
+
* `opSeq`). A consumer that sets `lastSyncHLC = ChangeSet.hlc` and re-fetches
|
|
93
|
+
* resumes strictly *after* the whole transaction.
|
|
94
|
+
*/
|
|
62
95
|
readonly hlc: HLC;
|
|
63
|
-
/** Data changes in this transaction */
|
|
96
|
+
/** Data changes in this transaction, in `opSeq` (intra-transaction write) order. */
|
|
64
97
|
readonly changes: Change[];
|
|
65
|
-
/** Schema migrations in this transaction */
|
|
98
|
+
/** Schema migrations in this transaction (DDL sorts below the same tx's DML). */
|
|
66
99
|
readonly schemaMigrations: SchemaMigration[];
|
|
67
100
|
}
|
|
68
101
|
/**
|
|
@@ -86,6 +119,14 @@ export interface ApplyResult {
|
|
|
86
119
|
transactions: number;
|
|
87
120
|
/** Changes rejected by server-side validation hooks */
|
|
88
121
|
rejected?: ApplyRejection[];
|
|
122
|
+
/**
|
|
123
|
+
* Changes diverted because they referenced a table outside the local basis
|
|
124
|
+
* (an out-of-basis straggler delta). Omitted when none were diverted. The
|
|
125
|
+
* disposition (`ignore` / `quarantine` / `store-and-forward`) is governed by
|
|
126
|
+
* {@link SyncConfig.unknownTableDisposition}; see also the `onUnknownTable`
|
|
127
|
+
* event and `getUnknownTableStats()`.
|
|
128
|
+
*/
|
|
129
|
+
unknownTable?: number;
|
|
89
130
|
}
|
|
90
131
|
/**
|
|
91
132
|
* Column version entry for snapshot.
|
|
@@ -200,6 +241,24 @@ export interface ApplyToStoreOptions {
|
|
|
200
241
|
* preventing the SyncManager from re-recording CRDT metadata.
|
|
201
242
|
*/
|
|
202
243
|
readonly remote: boolean;
|
|
244
|
+
/**
|
|
245
|
+
* Bootstrap flush: one chunk of a known-complete wholesale snapshot load.
|
|
246
|
+
* The adapter skips the engine seam (no per-flush MV maintenance, no
|
|
247
|
+
* per-row watch capture) — storage rows are applied and remote module
|
|
248
|
+
* events still emitted. A `bootstrapFinalize` call converges afterwards.
|
|
249
|
+
*/
|
|
250
|
+
readonly bootstrap?: boolean;
|
|
251
|
+
/**
|
|
252
|
+
* Finalize a bootstrap: no data/schema changes carried. The adapter
|
|
253
|
+
* converges every MV (`refreshAllMaterializedViews`) and fires a coarse
|
|
254
|
+
* `notifyExternalChange` per bootstrapped table.
|
|
255
|
+
*/
|
|
256
|
+
readonly bootstrapFinalize?: boolean;
|
|
257
|
+
/** Bootstrapped base tables (for the finalize coarse watch notification). */
|
|
258
|
+
readonly bootstrapTables?: ReadonlyArray<{
|
|
259
|
+
schema: string;
|
|
260
|
+
table: string;
|
|
261
|
+
}>;
|
|
203
262
|
}
|
|
204
263
|
/**
|
|
205
264
|
* A data change to apply to the store.
|
|
@@ -235,6 +294,16 @@ export interface ApplyToStoreResult {
|
|
|
235
294
|
change: DataChangeToApply | SchemaChangeToApply;
|
|
236
295
|
error: Error;
|
|
237
296
|
}>;
|
|
297
|
+
/**
|
|
298
|
+
* Commit-time global-assertion violations the engine seam **collected** rather
|
|
299
|
+
* than threw (the adapter drives the incremental seam in report mode under the
|
|
300
|
+
* trust-the-origin posture: the data lands and the batch commits regardless).
|
|
301
|
+
* One entry per violated local assertion; omitted/empty when none. The consumer
|
|
302
|
+
* surfaces these to the host via `onAssertionViolation` after a successful apply
|
|
303
|
+
* — they do NOT abort convergence. Orthogonal to `errors` (a genuine per-change
|
|
304
|
+
* storage failure still aborts the whole apply).
|
|
305
|
+
*/
|
|
306
|
+
assertionViolations?: AssertionViolation[];
|
|
238
307
|
}
|
|
239
308
|
/**
|
|
240
309
|
* Callback interface for applying remote changes to the store.
|
|
@@ -270,6 +339,16 @@ export interface ConflictContext {
|
|
|
270
339
|
readonly localHlc: HLC;
|
|
271
340
|
readonly remoteValue: SqlValue;
|
|
272
341
|
readonly remoteHlc: HLC;
|
|
342
|
+
/**
|
|
343
|
+
* The incoming change's before-image: the value the remote write overwrote at
|
|
344
|
+
* its origin. Lets a resolver / transition validator see what the remote side
|
|
345
|
+
* changed *from*. Absent when the incoming change carried no prior (first write
|
|
346
|
+
* at the origin, snapshot-loaded cell, or a producer that omits it). Informational
|
|
347
|
+
* only — it does not affect resolution.
|
|
348
|
+
*/
|
|
349
|
+
readonly remotePriorValue?: SqlValue;
|
|
350
|
+
/** HLC of the remote before-image. Present iff `remotePriorValue` is. */
|
|
351
|
+
readonly remotePriorHlc?: HLC;
|
|
273
352
|
}
|
|
274
353
|
/**
|
|
275
354
|
* Result of a conflict resolution: keep the local value or accept the remote one.
|
|
@@ -280,16 +359,70 @@ export type ConflictResolution = 'local' | 'remote';
|
|
|
280
359
|
* conflicts with an existing local value.
|
|
281
360
|
*/
|
|
282
361
|
export type ConflictResolver = (ctx: ConflictContext) => ConflictResolution;
|
|
362
|
+
/**
|
|
363
|
+
* What the apply path does with inbound changes for a table outside the local
|
|
364
|
+
* basis (a straggler delta referencing a table this receiver no longer has —
|
|
365
|
+
* see `docs/migration.md` § 4 Contract).
|
|
366
|
+
*
|
|
367
|
+
* - `ignore` — drop the diverted changes (telemetry still fires). The deliberate
|
|
368
|
+
* opt-out for deployments that do not want to retain post-retirement straggler
|
|
369
|
+
* traffic; the write loss is intentional and observable, not silent.
|
|
370
|
+
* - `quarantine` (default) — durably hold the diverted changes for manual / late
|
|
371
|
+
* processing. No write loss, operator-inspectable, and bounded: quarantine
|
|
372
|
+
* entries GC at the retention horizon like tombstones.
|
|
373
|
+
* - `store-and-forward` — durably hold the diverted changes (identically to
|
|
374
|
+
* `quarantine`) **and** mark them forwardable, so peers that still have the
|
|
375
|
+
* table receive them via outbound delta sync. The hold + forwardable mark is
|
|
376
|
+
* implemented in `sync-store-and-forward-hold`; the outbound relay wiring (the
|
|
377
|
+
* actual re-offer through `getChangesSince`) lands in the sibling ticket
|
|
378
|
+
* `sync-store-and-forward-relay`. A forwarded change keeps its **original
|
|
379
|
+
* `hlc` + `siteId`**, which is what makes the relay loop-free and convergent.
|
|
380
|
+
*/
|
|
381
|
+
export type UnknownTableDisposition = 'ignore' | 'quarantine' | 'store-and-forward';
|
|
382
|
+
/**
|
|
383
|
+
* Global default policy for reclaiming a detached basis table's local storage
|
|
384
|
+
* (`docs/migration.md` § 4 Contract — retention-horizon retirement). A per-table
|
|
385
|
+
* `quereus.sync.evict` reserved tag overrides this for one table.
|
|
386
|
+
*
|
|
387
|
+
* - `horizon` (default) — evict a detached table once it has been quiet (no
|
|
388
|
+
* directly-mapped write network-wide) for {@link horizonMs} (defaulting to
|
|
389
|
+
* {@link SyncConfig.retentionHorizonMs}).
|
|
390
|
+
* - `never` — never auto-evict (storage lingers until the app drops it).
|
|
391
|
+
* - `immediate` — evict a detached table on the first sweep after detach (zero
|
|
392
|
+
* horizon). Still requires the table to be `detached` — never drops an in-basis
|
|
393
|
+
* table.
|
|
394
|
+
*/
|
|
395
|
+
export interface BasisEvictionConfig {
|
|
396
|
+
/** Global default mode. `horizon` (default) | `never` | `immediate`. */
|
|
397
|
+
mode: 'horizon' | 'never' | 'immediate';
|
|
398
|
+
/** Override horizon for `horizon` mode; defaults to {@link SyncConfig.retentionHorizonMs}. */
|
|
399
|
+
horizonMs?: number;
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Reclaim a detached basis table's local storage by name. Wired by the host
|
|
403
|
+
* (the worker) to a store-side reclaim-by-name helper
|
|
404
|
+
* (`StoreModule.reclaimDetachedTable`); `indexNames` is the captured secondary-
|
|
405
|
+
* index name list the lifecycle record retained from before detach (the table
|
|
406
|
+
* schema — and its index list — is gone once detached, so the provider's
|
|
407
|
+
* `deleteTableStores` needs it supplied rather than prefix-scanned, which could
|
|
408
|
+
* clobber sibling `*_idx_*` tables).
|
|
409
|
+
*
|
|
410
|
+
* Must be idempotent: storage already gone (the app issued a real `drop table`)
|
|
411
|
+
* is treated as success — the sweep still clears the record and emits the event.
|
|
412
|
+
*/
|
|
413
|
+
export type DropLocalTableCallback = (schema: string, table: string, indexNames: readonly string[]) => Promise<void>;
|
|
283
414
|
/**
|
|
284
415
|
* Sync module configuration.
|
|
285
416
|
*/
|
|
286
417
|
export interface SyncConfig {
|
|
287
418
|
/**
|
|
288
|
-
*
|
|
289
|
-
*
|
|
419
|
+
* Retention horizon in milliseconds: changes older than this are not
|
|
420
|
+
* guaranteed deliverable. Bounds tombstone GC AND delta-sync eligibility,
|
|
421
|
+
* and is the bound retirement guidance keys off (drop a legacy basis table
|
|
422
|
+
* no sooner than the horizon after its last directly-mapped write).
|
|
290
423
|
* Default: 30 days (30 * 24 * 60 * 60 * 1000)
|
|
291
424
|
*/
|
|
292
|
-
|
|
425
|
+
retentionHorizonMs: number;
|
|
293
426
|
/**
|
|
294
427
|
* Whether deleted rows can be resurrected by later writes.
|
|
295
428
|
* If false (default), a deletion prevents any column write with earlier HLC.
|
|
@@ -312,6 +445,36 @@ export interface SyncConfig {
|
|
|
312
445
|
* passed to this function for every conflicting column write.
|
|
313
446
|
*/
|
|
314
447
|
conflictResolver?: ConflictResolver;
|
|
448
|
+
/**
|
|
449
|
+
* What to do with inbound changes that reference a table outside the local
|
|
450
|
+
* basis (an out-of-basis straggler delta — see {@link UnknownTableDisposition}
|
|
451
|
+
* and `docs/migration.md` § 4 Contract). Default: `quarantine` (durably hold
|
|
452
|
+
* to prevent silent write loss). Telemetry (`onUnknownTable` + the cumulative
|
|
453
|
+
* counter) fires regardless of disposition.
|
|
454
|
+
*
|
|
455
|
+
* Detection requires a basis oracle (`getTableSchema`); when absent, detection
|
|
456
|
+
* is inert and the store adapter's defensive throw remains the fallback.
|
|
457
|
+
*/
|
|
458
|
+
unknownTableDisposition: UnknownTableDisposition;
|
|
459
|
+
/**
|
|
460
|
+
* Default policy for reclaiming a detached basis table's local storage
|
|
461
|
+
* (`docs/migration.md` § 4 Contract). Default `{ mode: 'horizon' }`, which
|
|
462
|
+
* evicts a detached table once it has been quiet for `retentionHorizonMs`. A
|
|
463
|
+
* per-table `quereus.sync.evict` reserved tag overrides this for one table.
|
|
464
|
+
* The eviction sweep ({@link SyncManager.evictExpiredBasisTables}) is
|
|
465
|
+
* host-driven (no timer inside the library) and is a no-op when no
|
|
466
|
+
* `dropLocalTable` reclaim callback is wired (e.g. a relay-only coordinator).
|
|
467
|
+
*/
|
|
468
|
+
basisEviction?: BasisEvictionConfig;
|
|
469
|
+
/**
|
|
470
|
+
* When true (default), replay a reappeared table's held out-of-basis changes
|
|
471
|
+
* immediately — as a SEPARATE post-commit apply — the moment the table comes back
|
|
472
|
+
* (an inbound create_table, or a lens redeploy re-mapping it into the basis), instead
|
|
473
|
+
* of waiting for the host's periodic drainHeldChanges sweep. Idempotent with the sweep
|
|
474
|
+
* (a second drain returns 0). A no-op on a relay-only peer (no basis oracle ⇒ every
|
|
475
|
+
* group is skipped). Set false to leave all drain timing to the host's periodic sweep.
|
|
476
|
+
*/
|
|
477
|
+
drainOnReappear: boolean;
|
|
315
478
|
}
|
|
316
479
|
/**
|
|
317
480
|
* Default sync configuration.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,11 @@
|
|
|
9
9
|
* Default sync configuration.
|
|
10
10
|
*/
|
|
11
11
|
export const DEFAULT_SYNC_CONFIG = {
|
|
12
|
-
|
|
12
|
+
retentionHorizonMs: 30 * 24 * 60 * 60 * 1000, // 30 days
|
|
13
13
|
allowResurrection: false,
|
|
14
14
|
batchSize: 1000,
|
|
15
|
+
unknownTableDisposition: 'quarantine',
|
|
16
|
+
basisEviction: { mode: 'horizon' },
|
|
17
|
+
drainOnReappear: true,
|
|
15
18
|
};
|
|
16
19
|
//# sourceMappingURL=protocol.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAmkBH;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC7C,kBAAkB,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAG,UAAU;IACzD,iBAAiB,EAAE,KAAK;IACxB,SAAS,EAAE,IAAI;IACf,uBAAuB,EAAE,YAAY;IACrC,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,eAAe,EAAE,IAAI;CACtB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-stream.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot-stream.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"snapshot-stream.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot-stream.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAmBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,KAAK,EACX,aAAa,EACb,gBAAgB,EAShB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAkKrD;;GAEG;AACH,wBAAuB,iBAAiB,CACvC,GAAG,EAAE,WAAW,EAChB,SAAS,GAAE,MAAoC,GAC7C,aAAa,CAAC,aAAa,CAAC,CAO9B;AAED;;GAEG;AACH,wBAAuB,oBAAoB,CAC1C,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,kBAAkB,GAC5B,aAAa,CAAC,aAAa,CAAC,CAS9B;AAwDD;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,EACpC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAC/C,OAAO,CAAC,IAAI,CAAC,CAoOf;AAMD;;GAEG;AACH,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAkBzC"}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { deserializeColumnVersion } from '../metadata/column-version.js';
|
|
8
8
|
import { deserializeMigration } from '../metadata/schema-migration.js';
|
|
9
|
-
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds, buildAllSchemaMigrationsScanBounds, buildAllChangeLogScanBounds, buildTableColumnVersionScanBounds, parseColumnVersionKey, parseSchemaMigrationKey, encodePK, } from '../metadata/keys.js';
|
|
9
|
+
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds, buildAllSchemaMigrationsScanBounds, buildAllChangeLogScanBounds, buildTableColumnVersionScanBounds, parseColumnVersionKey, parseSchemaMigrationKey, parseTombstoneKey, parseChangeLogKey, encodePK, } from '../metadata/keys.js';
|
|
10
10
|
import { persistHLCState } from './sync-context.js';
|
|
11
|
+
import { applyDataToStore } from './admission.js';
|
|
11
12
|
/** Default chunk size for streaming snapshots. */
|
|
12
13
|
const DEFAULT_SNAPSHOT_CHUNK_SIZE = 1000;
|
|
13
14
|
/** Key prefix for snapshot checkpoints. */
|
|
@@ -157,6 +158,50 @@ export async function* resumeSnapshotStream(ctx, checkpoint) {
|
|
|
157
158
|
// ============================================================================
|
|
158
159
|
// Snapshot Application
|
|
159
160
|
// ============================================================================
|
|
161
|
+
/**
|
|
162
|
+
* Parse the accumulated `schema.table` completed-table keys into the
|
|
163
|
+
* `{ schema, table }` records the `bootstrapFinalize` coarse watch notification
|
|
164
|
+
* consumes. Mirrors the `tableKey.split('.')` convention used throughout this
|
|
165
|
+
* module.
|
|
166
|
+
*/
|
|
167
|
+
function parseBootstrapTables(completedTables) {
|
|
168
|
+
return completedTables.map((key) => {
|
|
169
|
+
const [schema, table] = key.split('.');
|
|
170
|
+
return { schema, table };
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Clear existing CRDT metadata (column versions, tombstones, change log) ahead
|
|
175
|
+
* of applying a snapshot.
|
|
176
|
+
*
|
|
177
|
+
* `preserveTables` names `schema.table` keys whose metadata must survive — on a
|
|
178
|
+
* resumed transfer the sender skips already-completed tables and never re-emits
|
|
179
|
+
* their metadata, so blanket-clearing would wipe state that is never rewritten.
|
|
180
|
+
* With an empty `preserveTables` this deletes everything, identical to a fresh
|
|
181
|
+
* full apply.
|
|
182
|
+
*/
|
|
183
|
+
async function clearExistingMetadata(ctx, preserveTables) {
|
|
184
|
+
const clearBatch = ctx.kv.batch();
|
|
185
|
+
for await (const entry of ctx.kv.iterate(buildAllColumnVersionsScanBounds())) {
|
|
186
|
+
const parsed = parseColumnVersionKey(entry.key);
|
|
187
|
+
if (parsed && preserveTables.has(`${parsed.schema}.${parsed.table}`))
|
|
188
|
+
continue;
|
|
189
|
+
clearBatch.delete(entry.key);
|
|
190
|
+
}
|
|
191
|
+
for await (const entry of ctx.kv.iterate(buildAllTombstonesScanBounds())) {
|
|
192
|
+
const parsed = parseTombstoneKey(entry.key);
|
|
193
|
+
if (parsed && preserveTables.has(`${parsed.schema}.${parsed.table}`))
|
|
194
|
+
continue;
|
|
195
|
+
clearBatch.delete(entry.key);
|
|
196
|
+
}
|
|
197
|
+
for await (const entry of ctx.kv.iterate(buildAllChangeLogScanBounds())) {
|
|
198
|
+
const parsed = parseChangeLogKey(entry.key);
|
|
199
|
+
if (parsed && preserveTables.has(`${parsed.schema}.${parsed.table}`))
|
|
200
|
+
continue;
|
|
201
|
+
clearBatch.delete(entry.key);
|
|
202
|
+
}
|
|
203
|
+
await clearBatch.write();
|
|
204
|
+
}
|
|
160
205
|
/**
|
|
161
206
|
* Apply a streamed snapshot, processing chunks as they arrive.
|
|
162
207
|
*/
|
|
@@ -174,24 +219,18 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
174
219
|
let pendingSchemaChanges = [];
|
|
175
220
|
const DATA_FLUSH_SIZE = 100;
|
|
176
221
|
const flushDataToStore = async () => {
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
222
|
+
// A streamed snapshot is a known-complete wholesale load: each flush is a
|
|
223
|
+
// bootstrap flush (the adapter skips the engine seam — no per-flush MV
|
|
224
|
+
// maintenance, no per-row watch capture), converged once by the footer's
|
|
225
|
+
// `bootstrapFinalize` below. Streaming keeps its checkpoint-based model but
|
|
226
|
+
// reuses the shared data-apply seam: a whole-batch throw OR a per-change
|
|
227
|
+
// storage failure emits `status:'error'` and aborts the stream mid-flight,
|
|
228
|
+
// before the footer emits `status:'synced'` / clears the checkpoint — so the
|
|
229
|
+
// checkpoint stays in place and the transfer resumes/retries.
|
|
230
|
+
await applyDataToStore(ctx, pendingDataChanges, pendingSchemaChanges, { remote: true, bootstrap: true });
|
|
231
|
+
pendingDataChanges = [];
|
|
232
|
+
pendingSchemaChanges = [];
|
|
182
233
|
};
|
|
183
|
-
// Clear existing metadata before applying
|
|
184
|
-
const clearBatch = ctx.kv.batch();
|
|
185
|
-
for await (const entry of ctx.kv.iterate(buildAllColumnVersionsScanBounds())) {
|
|
186
|
-
clearBatch.delete(entry.key);
|
|
187
|
-
}
|
|
188
|
-
for await (const entry of ctx.kv.iterate(buildAllTombstonesScanBounds())) {
|
|
189
|
-
clearBatch.delete(entry.key);
|
|
190
|
-
}
|
|
191
|
-
for await (const entry of ctx.kv.iterate(buildAllChangeLogScanBounds())) {
|
|
192
|
-
clearBatch.delete(entry.key);
|
|
193
|
-
}
|
|
194
|
-
await clearBatch.write();
|
|
195
234
|
// Process chunks
|
|
196
235
|
let batch = ctx.kv.batch();
|
|
197
236
|
let batchSize = 0;
|
|
@@ -201,11 +240,26 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
201
240
|
const rowColumns = new Map();
|
|
202
241
|
for await (const chunk of chunks) {
|
|
203
242
|
switch (chunk.type) {
|
|
204
|
-
case 'header':
|
|
243
|
+
case 'header': {
|
|
205
244
|
snapshotId = chunk.snapshotId;
|
|
206
245
|
snapshotHLC = chunk.hlc;
|
|
207
246
|
totalTables = chunk.tableCount;
|
|
247
|
+
// On a resumed transfer the sender skips tables it already streamed and
|
|
248
|
+
// never re-emits their metadata. Look up the persisted checkpoint (saved
|
|
249
|
+
// under this snapshotId during the prior pass) and preserve those completed
|
|
250
|
+
// tables through the up-front clear; otherwise their column-version /
|
|
251
|
+
// change-log state would be wiped and never rewritten. Seed the local
|
|
252
|
+
// counters from the checkpoint so mid-stream checkpoint saves stay
|
|
253
|
+
// monotonic and progress reporting reflects the full transfer.
|
|
254
|
+
const checkpoint = snapshotId ? await getSnapshotCheckpoint(ctx, snapshotId) : undefined;
|
|
255
|
+
if (checkpoint) {
|
|
256
|
+
completedTables.push(...checkpoint.completedTables);
|
|
257
|
+
tablesProcessed = checkpoint.completedTables.length;
|
|
258
|
+
entriesProcessed = checkpoint.entriesProcessed;
|
|
259
|
+
}
|
|
260
|
+
await clearExistingMetadata(ctx, new Set(completedTables));
|
|
208
261
|
break;
|
|
262
|
+
}
|
|
209
263
|
case 'table-start':
|
|
210
264
|
currentTable = `${chunk.schema}.${chunk.table}`;
|
|
211
265
|
currentTableSchema = chunk.schema;
|
|
@@ -314,6 +368,20 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
314
368
|
ctx.hlcManager.receive(snapshotHLC);
|
|
315
369
|
await persistHLCState(ctx);
|
|
316
370
|
}
|
|
371
|
+
// Converge the bootstrap: the flushes deferred MV maintenance and watch
|
|
372
|
+
// capture, so converge every MV once and coarse-notify each bootstrapped
|
|
373
|
+
// table's watchers. Issued BEFORE clearing the checkpoint — a finalize
|
|
374
|
+
// failure leaves the checkpoint in place so the transfer retries (storage
|
|
375
|
+
// rows are already applied, so the retry's finalize rebuilds cleanly).
|
|
376
|
+
// `completedTables` is the full set even on a resumed transfer (seeded
|
|
377
|
+
// from the checkpoint in the `header` case).
|
|
378
|
+
if (ctx.applyToStore) {
|
|
379
|
+
await ctx.applyToStore([], [], {
|
|
380
|
+
remote: true,
|
|
381
|
+
bootstrapFinalize: true,
|
|
382
|
+
bootstrapTables: parseBootstrapTables(completedTables),
|
|
383
|
+
});
|
|
384
|
+
}
|
|
317
385
|
// Clear checkpoint
|
|
318
386
|
if (snapshotId) {
|
|
319
387
|
await clearSnapshotCheckpoint(ctx, snapshotId);
|
|
@@ -345,6 +413,7 @@ export async function getSnapshotCheckpoint(ctx, snapshotId) {
|
|
|
345
413
|
wallTime: BigInt(obj.hlc.wallTime),
|
|
346
414
|
counter: obj.hlc.counter,
|
|
347
415
|
siteId: new Uint8Array(obj.hlc.siteId),
|
|
416
|
+
opSeq: obj.hlc.opSeq ?? 0,
|
|
348
417
|
},
|
|
349
418
|
siteId: new Uint8Array(obj.siteId),
|
|
350
419
|
};
|
|
@@ -360,6 +429,7 @@ async function saveSnapshotCheckpoint(ctx, checkpoint) {
|
|
|
360
429
|
wallTime: checkpoint.hlc.wallTime.toString(),
|
|
361
430
|
counter: checkpoint.hlc.counter,
|
|
362
431
|
siteId: Array.from(checkpoint.hlc.siteId),
|
|
432
|
+
opSeq: checkpoint.hlc.opSeq,
|
|
363
433
|
},
|
|
364
434
|
siteId: Array.from(checkpoint.siteId),
|
|
365
435
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-stream.js","sourceRoot":"","sources":["../../../src/sync/snapshot-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"snapshot-stream.js","sourceRoot":"","sources":["../../../src/sync/snapshot-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EACX,QAAQ,EAKR,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4ErE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EACX,QAAQ,EAKR,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CA4ErE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CAoIf"}
|