@quereus/sync 4.5.0 → 4.7.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 +14 -6
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/metadata/column-version.d.ts.map +1 -1
- package/dist/src/metadata/column-version.js +8 -9
- package/dist/src/metadata/column-version.js.map +1 -1
- package/dist/src/metadata/keys.d.ts +99 -39
- package/dist/src/metadata/keys.d.ts.map +1 -1
- package/dist/src/metadata/keys.js +213 -158
- package/dist/src/metadata/keys.js.map +1 -1
- package/dist/src/metadata/pk-identity.d.ts +19 -14
- package/dist/src/metadata/pk-identity.d.ts.map +1 -1
- package/dist/src/metadata/pk-identity.js +21 -28
- package/dist/src/metadata/pk-identity.js.map +1 -1
- package/dist/src/metadata/schema-migration.d.ts +33 -10
- package/dist/src/metadata/schema-migration.d.ts.map +1 -1
- package/dist/src/metadata/schema-migration.js +77 -18
- package/dist/src/metadata/schema-migration.js.map +1 -1
- package/dist/src/sync/change-applicator.d.ts +19 -3
- package/dist/src/sync/change-applicator.d.ts.map +1 -1
- package/dist/src/sync/change-applicator.js +253 -63
- package/dist/src/sync/change-applicator.js.map +1 -1
- package/dist/src/sync/maintenance.d.ts +8 -5
- package/dist/src/sync/maintenance.d.ts.map +1 -1
- package/dist/src/sync/maintenance.js +7 -4
- package/dist/src/sync/maintenance.js.map +1 -1
- package/dist/src/sync/manager.d.ts +46 -1
- package/dist/src/sync/manager.d.ts.map +1 -1
- package/dist/src/sync/protocol.d.ts +42 -3
- package/dist/src/sync/protocol.d.ts.map +1 -1
- package/dist/src/sync/protocol.js +40 -0
- package/dist/src/sync/protocol.js.map +1 -1
- package/dist/src/sync/snapshot-identity.d.ts.map +1 -1
- package/dist/src/sync/snapshot-identity.js +1 -9
- package/dist/src/sync/snapshot-identity.js.map +1 -1
- package/dist/src/sync/snapshot-stream.d.ts +11 -0
- package/dist/src/sync/snapshot-stream.d.ts.map +1 -1
- package/dist/src/sync/snapshot-stream.js +134 -67
- 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 +15 -30
- package/dist/src/sync/snapshot.js.map +1 -1
- package/dist/src/sync/store-adapter.d.ts +5 -4
- package/dist/src/sync/store-adapter.d.ts.map +1 -1
- package/dist/src/sync/store-adapter.js +328 -108
- package/dist/src/sync/store-adapter.js.map +1 -1
- package/dist/src/sync/sync-manager-impl.d.ts +37 -4
- package/dist/src/sync/sync-manager-impl.d.ts.map +1 -1
- package/dist/src/sync/sync-manager-impl.js +110 -56
- package/dist/src/sync/sync-manager-impl.js.map +1 -1
- package/dist/src/sync/wire.d.ts +6 -0
- package/dist/src/sync/wire.d.ts.map +1 -1
- package/dist/src/sync/wire.js +3 -0
- package/dist/src/sync/wire.js.map +1 -1
- package/package.json +7 -7
|
@@ -4,19 +4,17 @@
|
|
|
4
4
|
* Handles chunked snapshot generation, application, and checkpoint
|
|
5
5
|
* management for memory-efficient sync of large databases.
|
|
6
6
|
*/
|
|
7
|
+
import { bytesEqual } from '@quereus/store';
|
|
7
8
|
import { assertWithinDrift } from '../clock/hlc.js';
|
|
8
9
|
import { deserializeColumnVersion } from '../metadata/column-version.js';
|
|
9
10
|
import { deserializeTombstone } from '../metadata/tombstones.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { SNAPSHOT_WIRE_FORMAT_VERSION, } from './protocol.js';
|
|
11
|
+
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds, buildAllChangeLogScanBounds, buildAllSnapshotCheckpointScanBounds, buildSnapshotCheckpointKey, buildTableColumnVersionScanBounds, parseColumnVersionKey, parseTombstoneKey, parseChangeLogKey, encodePkIdentity, } from '../metadata/keys.js';
|
|
12
|
+
import { SNAPSHOT_WIRE_FORMAT_VERSION, migrationObjectKind, sortMigrationsByHLC, toSchemaChange, } from './protocol.js';
|
|
13
13
|
import { persistHLCState, toError } from './sync-context.js';
|
|
14
14
|
import { createSnapshotKeyingResolver, keepMaxHLC, reconcileCell, } from './snapshot-identity.js';
|
|
15
15
|
import { applyDataToStore } from './admission.js';
|
|
16
16
|
/** Default chunk size for streaming snapshots. */
|
|
17
17
|
const DEFAULT_SNAPSHOT_CHUNK_SIZE = 1000;
|
|
18
|
-
/** Key prefix for snapshot checkpoints. */
|
|
19
|
-
const CHECKPOINT_PREFIX = 'sc:';
|
|
20
18
|
/**
|
|
21
19
|
* Row changes `applySnapshotStream` accumulates before pushing them to the store.
|
|
22
20
|
*
|
|
@@ -45,11 +43,14 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
45
43
|
if (parsed)
|
|
46
44
|
tableKeys.set(`${parsed.schema}.${parsed.table}`, { schema: parsed.schema, table: parsed.table });
|
|
47
45
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
// Collect migrations up front — the header needs their count anyway, and they must
|
|
47
|
+
// be emitted in causal order rather than `sm:` scan order (see `listAllMigrations`).
|
|
48
|
+
// NOTE: this holds the whole migration set in memory; one record per DDL statement
|
|
49
|
+
// ever run, so it is small next to the row data this same generator streams. If a
|
|
50
|
+
// replica's DDL history ever grows enough to matter, keep an HLC-ordered index over
|
|
51
|
+
// `sm:` and stream from that instead.
|
|
52
|
+
const migrations = await ctx.schemaMigrations.listAllMigrations();
|
|
53
|
+
const migrationCount = migrations.length;
|
|
53
54
|
// Yield header
|
|
54
55
|
const header = {
|
|
55
56
|
type: 'header',
|
|
@@ -67,22 +68,8 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
67
68
|
// a receiver that does not already have the table, every row in that early flush
|
|
68
69
|
// fails. DDL-first makes the streaming bootstrap work for tables of any size;
|
|
69
70
|
// `applySnapshotStream` depends on this order.
|
|
70
|
-
for
|
|
71
|
-
const
|
|
72
|
-
if (!parsed)
|
|
73
|
-
continue;
|
|
74
|
-
const migration = deserializeMigration(entry.value);
|
|
75
|
-
const migrationChunk = {
|
|
76
|
-
type: 'schema-migration',
|
|
77
|
-
migration: {
|
|
78
|
-
type: migration.type,
|
|
79
|
-
schema: parsed.schema,
|
|
80
|
-
table: parsed.table,
|
|
81
|
-
ddl: migration.ddl,
|
|
82
|
-
hlc: migration.hlc,
|
|
83
|
-
schemaVersion: migration.schemaVersion,
|
|
84
|
-
},
|
|
85
|
-
};
|
|
71
|
+
for (const migration of migrations) {
|
|
72
|
+
const migrationChunk = { type: 'schema-migration', migration };
|
|
86
73
|
yield migrationChunk;
|
|
87
74
|
}
|
|
88
75
|
// Stream each table, skipping completed ones
|
|
@@ -146,9 +133,11 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
146
133
|
// pass), batched by `(schema, table)` into `chunkSize` chunks. A row whose columns
|
|
147
134
|
// were all deleted has a tombstone but no live column-versions, so its table may be
|
|
148
135
|
// absent from `tableKeys`; the global pass carries it regardless. The scan is
|
|
149
|
-
// key-sorted, so all tombstones for one `(schema, table)` are contiguous
|
|
150
|
-
// `tb
|
|
151
|
-
//
|
|
136
|
+
// key-sorted, so all tombstones for one `(schema, table)` are contiguous: every
|
|
137
|
+
// `tb:` key opens with that pair LENGTH-PREFIXED (`tb:{n}:{schema}{n}:{table}…`),
|
|
138
|
+
// so one table's keys share an exact byte prefix that no other table's key can
|
|
139
|
+
// start with — no interleaving is possible, even between tables named `a` and
|
|
140
|
+
// `a:b`. A fresh chunk starts whenever the table changes or the batch fills.
|
|
152
141
|
// NOTE: on a RESUMED transfer this re-emits ALL tombstones regardless of the
|
|
153
142
|
// checkpoint's completed tables (tombstones are not tracked per-table there). The
|
|
154
143
|
// consumer re-writes them idempotently (same key, same bytes) — a deliberate
|
|
@@ -288,9 +277,18 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
288
277
|
let entriesProcessed = 0;
|
|
289
278
|
let currentTable;
|
|
290
279
|
const completedTables = [];
|
|
280
|
+
// Tables whose `table-end` arrived but whose trailing rows may still sit in
|
|
281
|
+
// `pendingDataChanges`. They graduate into `completedTables` only once
|
|
282
|
+
// `applyDataToStore` has returned — a checkpoint naming a table whose last rows
|
|
283
|
+
// are still in memory tells the sender to skip that table on resume, and those
|
|
284
|
+
// rows are then never sent, never reconciled, and never reported.
|
|
285
|
+
let stagedCompletedTables = [];
|
|
291
286
|
// Pending data to apply to store (batched for efficiency)
|
|
292
287
|
let pendingDataChanges = [];
|
|
293
|
-
|
|
288
|
+
// Held as full migrations, not `SchemaChangeToApply`, so the flush can re-order
|
|
289
|
+
// them causally instead of trusting the sender's chunk order — DDL replays in
|
|
290
|
+
// list order and `create index` needs its table's `create table` to have run.
|
|
291
|
+
let pendingSchemaMigrations = [];
|
|
294
292
|
const flushDataToStore = async () => {
|
|
295
293
|
// A streamed snapshot is a known-complete wholesale load: each flush is a
|
|
296
294
|
// bootstrap flush (the adapter skips the engine seam — no per-flush MV
|
|
@@ -300,14 +298,38 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
300
298
|
// storage failure emits `status:'error'` and aborts the stream mid-flight,
|
|
301
299
|
// before the footer emits `status:'synced'` / clears the checkpoint — so the
|
|
302
300
|
// checkpoint stays in place and the transfer resumes/retries.
|
|
303
|
-
|
|
301
|
+
const schemaChanges = sortMigrationsByHLC(pendingSchemaMigrations).map(toSchemaChange);
|
|
302
|
+
await applyDataToStore(ctx, pendingDataChanges, schemaChanges, { remote: true, bootstrap: true });
|
|
304
303
|
pendingDataChanges = [];
|
|
305
|
-
|
|
304
|
+
pendingSchemaMigrations = [];
|
|
305
|
+
completedTables.push(...stagedCompletedTables);
|
|
306
|
+
stagedCompletedTables = [];
|
|
306
307
|
};
|
|
307
308
|
// Process chunks
|
|
308
309
|
let batch = ctx.kv.batch();
|
|
309
310
|
let batchSize = 0;
|
|
310
311
|
const BATCH_FLUSH_SIZE = 1000;
|
|
312
|
+
// The checkpoint record for the apply's CURRENT position. Both save sites — the
|
|
313
|
+
// header-time save that opens the resumable window, and every metadata-batch
|
|
314
|
+
// flush below — build it here so the two cannot drift.
|
|
315
|
+
const buildCheckpointRecord = (id, hlc) => ({
|
|
316
|
+
snapshotId: id,
|
|
317
|
+
// NOTE: this is the RECEIVER's site id, but `resumeSnapshotStream` stamps it
|
|
318
|
+
// into the resumed stream's header, where a fresh stream puts the sender's.
|
|
319
|
+
// Inert today (nothing reads `header.siteId`); see the second arm of
|
|
320
|
+
// bug-sync-resume-snapshot-unvalidated-checkpoint before any consumer appears.
|
|
321
|
+
siteId: ctx.getSiteId(),
|
|
322
|
+
hlc,
|
|
323
|
+
// NOTE: nothing reads these two — resume keys off `completedTables` alone.
|
|
324
|
+
// `tablesProcessed` counts `table-end`s, so it can exceed
|
|
325
|
+
// `completedTables.length` while tables are staged; if a resume path ever
|
|
326
|
+
// starts seeking by index, derive it from `completedTables`, not from here.
|
|
327
|
+
lastTableIndex: tablesProcessed,
|
|
328
|
+
lastEntryIndex: entriesProcessed,
|
|
329
|
+
completedTables: [...completedTables],
|
|
330
|
+
entriesProcessed,
|
|
331
|
+
createdAt: Date.now(),
|
|
332
|
+
});
|
|
311
333
|
// Flush the accumulated metadata batch and (on a live transfer) save a resume
|
|
312
334
|
// checkpoint. Shared by the column-version and tombstone chunk handlers so both
|
|
313
335
|
// honor the same BATCH_FLUSH_SIZE bound and checkpoint cadence.
|
|
@@ -316,16 +338,7 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
316
338
|
batch = ctx.kv.batch();
|
|
317
339
|
batchSize = 0;
|
|
318
340
|
if (snapshotId && snapshotHLC) {
|
|
319
|
-
await saveSnapshotCheckpoint(ctx,
|
|
320
|
-
snapshotId,
|
|
321
|
-
siteId: ctx.getSiteId(),
|
|
322
|
-
hlc: snapshotHLC,
|
|
323
|
-
lastTableIndex: tablesProcessed,
|
|
324
|
-
lastEntryIndex: entriesProcessed,
|
|
325
|
-
completedTables: [...completedTables],
|
|
326
|
-
entriesProcessed,
|
|
327
|
-
createdAt: Date.now(),
|
|
328
|
-
});
|
|
341
|
+
await saveSnapshotCheckpoint(ctx, buildCheckpointRecord(snapshotId, snapshotHLC));
|
|
329
342
|
}
|
|
330
343
|
};
|
|
331
344
|
let currentTableSchema;
|
|
@@ -409,6 +422,23 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
409
422
|
entriesProcessed = checkpoint.entriesProcessed;
|
|
410
423
|
}
|
|
411
424
|
await clearExistingMetadata(ctx, new Set(completedTables));
|
|
425
|
+
// That clear just wiped the CRDT metadata of every table this apply did not
|
|
426
|
+
// inherit, so ANY OTHER transfer's saved resume position is now stale: it
|
|
427
|
+
// names tables as completed whose local metadata is gone, and resuming it
|
|
428
|
+
// would tell the sender to skip exactly the tables that can no longer be
|
|
429
|
+
// rebuilt. Drop those records here — which also keeps "a checkpoint exists"
|
|
430
|
+
// a faithful answer to "is this replica's data partial?", since the footer
|
|
431
|
+
// clears this apply's own record and leaves nothing behind it.
|
|
432
|
+
await clearOtherSnapshotCheckpoints(ctx, chunk.snapshotId);
|
|
433
|
+
// Open the resumable window the instant local metadata is gone. Both gates
|
|
434
|
+
// above reject WITHOUT touching local state, so a refused snapshot leaves no
|
|
435
|
+
// checkpoint behind; from here on the replica's data is partial until the
|
|
436
|
+
// footer clears this record, and `listSnapshotCheckpoints` is what says so.
|
|
437
|
+
// Without this save, an interruption before the first `flushMetadataBatch`
|
|
438
|
+
// (every 1000 metadata entries) would leave a cleared, half-written replica
|
|
439
|
+
// with nothing recording that a transfer was underway. On a resumed apply
|
|
440
|
+
// this re-saves substantively the same record — harmless.
|
|
441
|
+
await saveSnapshotCheckpoint(ctx, buildCheckpointRecord(chunk.snapshotId, chunk.hlc));
|
|
412
442
|
break;
|
|
413
443
|
}
|
|
414
444
|
case 'table-start':
|
|
@@ -516,21 +546,20 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
516
546
|
}
|
|
517
547
|
tablesProcessed++;
|
|
518
548
|
if (currentTable) {
|
|
519
|
-
|
|
549
|
+
stagedCompletedTables.push(currentTable);
|
|
520
550
|
}
|
|
521
551
|
break;
|
|
522
552
|
case 'schema-migration': {
|
|
523
553
|
const migration = chunk.migration;
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
schema: migration.schema,
|
|
527
|
-
table: migration.table,
|
|
528
|
-
ddl: migration.ddl,
|
|
529
|
-
});
|
|
554
|
+
pendingSchemaMigrations.push(migration);
|
|
555
|
+
const kind = migrationObjectKind(migration.type);
|
|
530
556
|
const schemaVersion = migration.schemaVersion ??
|
|
531
|
-
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, migration.table)) + 1;
|
|
532
|
-
await ctx.schemaMigrations.recordMigration(migration.schema, migration.table, {
|
|
557
|
+
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, kind, migration.table)) + 1;
|
|
558
|
+
await ctx.schemaMigrations.recordMigration(migration.schema, kind, migration.table, {
|
|
533
559
|
type: migration.type,
|
|
560
|
+
// Keep the rename's old name, or this replica's own re-relay/snapshot
|
|
561
|
+
// would ship the rename without it — undecidable downstream.
|
|
562
|
+
...(migration.fromTable !== undefined ? { fromTable: migration.fromTable } : {}),
|
|
534
563
|
ddl: migration.ddl,
|
|
535
564
|
hlc: migration.hlc,
|
|
536
565
|
schemaVersion,
|
|
@@ -582,6 +611,10 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
582
611
|
// Checkpoint Management
|
|
583
612
|
// ============================================================================
|
|
584
613
|
//
|
|
614
|
+
// NOTE: this file is 870 lines. If it grows much further, this section is the
|
|
615
|
+
// natural extraction seam — it depends only on `SyncContext` and the `sc:` key
|
|
616
|
+
// builders, not on the producer/consumer bodies above.
|
|
617
|
+
//
|
|
585
618
|
// NOTE: the AT-REST encoding below (wallTime as a decimal string, siteId as a
|
|
586
619
|
// number array) is deliberately NOT the wire encoding. The wire form is
|
|
587
620
|
// `SerializedSnapshotCheckpoint` in `wire.ts` (both binary fields as base64),
|
|
@@ -589,16 +622,9 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
589
622
|
// but unifying them is a stored-format migration: existing `sc:` records would
|
|
590
623
|
// have to be read under both shapes. If checkpoint storage is ever reworked for
|
|
591
624
|
// another reason, fold it onto the wire codec then.
|
|
592
|
-
/**
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
export async function getSnapshotCheckpoint(ctx, snapshotId) {
|
|
596
|
-
const key = new TextEncoder().encode(`${CHECKPOINT_PREFIX}${snapshotId}`);
|
|
597
|
-
const data = await ctx.kv.get(key);
|
|
598
|
-
if (!data)
|
|
599
|
-
return undefined;
|
|
600
|
-
const json = new TextDecoder().decode(data);
|
|
601
|
-
const obj = JSON.parse(json);
|
|
625
|
+
/** Decode one checkpoint record's at-rest bytes. */
|
|
626
|
+
function decodeCheckpoint(bytes) {
|
|
627
|
+
const obj = JSON.parse(new TextDecoder().decode(bytes));
|
|
602
628
|
return {
|
|
603
629
|
...obj,
|
|
604
630
|
hlc: {
|
|
@@ -610,11 +636,31 @@ export async function getSnapshotCheckpoint(ctx, snapshotId) {
|
|
|
610
636
|
siteId: new Uint8Array(obj.siteId),
|
|
611
637
|
};
|
|
612
638
|
}
|
|
639
|
+
/**
|
|
640
|
+
* Retrieve a saved checkpoint for an in-progress snapshot.
|
|
641
|
+
*/
|
|
642
|
+
export async function getSnapshotCheckpoint(ctx, snapshotId) {
|
|
643
|
+
const data = await ctx.kv.get(buildSnapshotCheckpointKey(snapshotId));
|
|
644
|
+
if (!data)
|
|
645
|
+
return undefined;
|
|
646
|
+
return decodeCheckpoint(data);
|
|
647
|
+
}
|
|
648
|
+
/**
|
|
649
|
+
* List every saved snapshot checkpoint — the discovery path for a caller that
|
|
650
|
+
* has forgotten (or never held) the `snapshotId` of an interrupted transfer.
|
|
651
|
+
* See {@link import('./manager.js').SyncManager.listSnapshotCheckpoints}.
|
|
652
|
+
*/
|
|
653
|
+
export async function listSnapshotCheckpoints(ctx) {
|
|
654
|
+
const checkpoints = [];
|
|
655
|
+
for await (const entry of ctx.kv.iterate(buildAllSnapshotCheckpointScanBounds())) {
|
|
656
|
+
checkpoints.push(decodeCheckpoint(entry.value));
|
|
657
|
+
}
|
|
658
|
+
return checkpoints;
|
|
659
|
+
}
|
|
613
660
|
/**
|
|
614
661
|
* Save a checkpoint during a streaming snapshot apply.
|
|
615
662
|
*/
|
|
616
663
|
async function saveSnapshotCheckpoint(ctx, checkpoint) {
|
|
617
|
-
const key = new TextEncoder().encode(`${CHECKPOINT_PREFIX}${checkpoint.snapshotId}`);
|
|
618
664
|
const json = JSON.stringify({
|
|
619
665
|
...checkpoint,
|
|
620
666
|
hlc: {
|
|
@@ -625,13 +671,34 @@ async function saveSnapshotCheckpoint(ctx, checkpoint) {
|
|
|
625
671
|
},
|
|
626
672
|
siteId: Array.from(checkpoint.siteId),
|
|
627
673
|
});
|
|
628
|
-
await ctx.kv.put(
|
|
674
|
+
await ctx.kv.put(buildSnapshotCheckpointKey(checkpoint.snapshotId), new TextEncoder().encode(json));
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* Delete every saved checkpoint EXCEPT `keepSnapshotId`'s.
|
|
678
|
+
*
|
|
679
|
+
* Called once per apply, right after `clearExistingMetadata`: at that instant
|
|
680
|
+
* every other transfer's resume position became unusable (see the call site).
|
|
681
|
+
* At most one checkpoint therefore exists at a time, so `listSnapshotCheckpoints`
|
|
682
|
+
* cannot accumulate records and cannot report a complete replica as partial.
|
|
683
|
+
*/
|
|
684
|
+
async function clearOtherSnapshotCheckpoints(ctx, keepSnapshotId) {
|
|
685
|
+
const keep = buildSnapshotCheckpointKey(keepSnapshotId);
|
|
686
|
+
const clearBatch = ctx.kv.batch();
|
|
687
|
+
let staleCount = 0;
|
|
688
|
+
for await (const entry of ctx.kv.iterate(buildAllSnapshotCheckpointScanBounds())) {
|
|
689
|
+
if (bytesEqual(entry.key, keep))
|
|
690
|
+
continue;
|
|
691
|
+
clearBatch.delete(entry.key);
|
|
692
|
+
staleCount++;
|
|
693
|
+
}
|
|
694
|
+
if (staleCount > 0)
|
|
695
|
+
await clearBatch.write();
|
|
629
696
|
}
|
|
630
697
|
/**
|
|
631
|
-
* Clear checkpoint after
|
|
698
|
+
* Clear a checkpoint — after its snapshot completes successfully, or when a
|
|
699
|
+
* caller abandons a transfer it will not resume.
|
|
632
700
|
*/
|
|
633
|
-
async function clearSnapshotCheckpoint(ctx, snapshotId) {
|
|
634
|
-
|
|
635
|
-
await ctx.kv.delete(key);
|
|
701
|
+
export async function clearSnapshotCheckpoint(ctx, snapshotId) {
|
|
702
|
+
await ctx.kv.delete(buildSnapshotCheckpointKey(snapshotId));
|
|
636
703
|
}
|
|
637
704
|
//# sourceMappingURL=snapshot-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-stream.js","sourceRoot":"","sources":["../../../src/sync/snapshot-stream.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EACN,gCAAgC,EAChC,4BAA4B,EAC5B,kCAAkC,EAClC,2BAA2B,EAC3B,iCAAiC,EACjC,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,GAChB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACN,4BAA4B,GAa5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EACN,4BAA4B,EAC5B,UAAU,EACV,aAAa,GAEb,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,kDAAkD;AAClD,MAAM,2BAA2B,GAAG,IAAI,CAAC;AAEzC,2CAA2C;AAC3C,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAC;AAoBnC,6EAA6E;AAC7E,SAAS,mBAAmB,CAC3B,MAAc,EACd,KAAa,EACb,OAAyD;IAEzD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACtD,CAAC;AAED;;;;;GAKG;AACH,KAAK,SAAS,CAAC,CAAC,oBAAoB,CACnC,GAAgB,EAChB,IAA2B;IAE3B,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;IACxF,MAAM,YAAY,GAAG,eAAe,IAAI,IAAI,GAAG,EAAU,CAAC;IAE1D,yCAAyC;IACzC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA6C,CAAC;IACvE,MAAM,QAAQ,GAAG,gCAAgC,EAAE,CAAC;IACpD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,kCAAkC,EAAE,CAAC;IACtD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrD,cAAc,EAAE,CAAC;IAClB,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAwB;QACnC,IAAI,EAAE,QAAQ;QACd,MAAM;QACN,GAAG;QACH,cAAc,EAAE,4BAA4B;QAC5C,UAAU,EAAE,SAAS,CAAC,IAAI;QAC1B,cAAc;QACd,UAAU;KACV,CAAC;IACF,MAAM,MAAM,CAAC;IAEb,mFAAmF;IACnF,kFAAkF;IAClF,oFAAoF;IACpF,iFAAiF;IACjF,8EAA8E;IAC9E,+CAA+C;IAC/C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,cAAc,GAAiC;YACpD,IAAI,EAAE,kBAAkB;YACxB,SAAS,EAAE;gBACV,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,aAAa,EAAE,SAAS,CAAC,aAAa;aACtC;SACD,CAAC;QACF,MAAM,cAAc,CAAC;IACtB,CAAC;IAED,6CAA6C;IAC7C,IAAI,YAAY,GAAG,iBAAiB,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;QACvD,IAAI,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,SAAS;QAEzC,MAAM,aAAa,GAAG,iCAAiC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEvE,yDAAyD;QACzD,MAAM,UAAU,GAA4B;YAC3C,IAAI,EAAE,aAAa;YACnB,MAAM;YACN,KAAK;YACL,gBAAgB,EAAE,CAAC;SACnB,CAAC;QACF,MAAM,UAAU,CAAC;QAEjB,2DAA2D;QAC3D,IAAI,OAAO,GAAyB,EAAE,CAAC;QACvC,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM;gBAAE,SAAS;YAEtB,MAAM,EAAE,GAAG,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,0EAA0E;YAC1E,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjF,cAAc,EAAE,CAAC;YAEjB,IAAI,OAAO,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,KAAK,GAAgC;oBAC1C,IAAI,EAAE,iBAAiB;oBACvB,MAAM;oBACN,KAAK;oBACL,OAAO;iBACP,CAAC;gBACF,MAAM,KAAK,CAAC;gBACZ,OAAO,GAAG,EAAE,CAAC;YACd,CAAC;QACF,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAgC;gBAC1C,IAAI,EAAE,iBAAiB;gBACvB,MAAM;gBACN,KAAK;gBACL,OAAO;aACP,CAAC;YACF,MAAM,KAAK,CAAC;QACb,CAAC;QAED,kBAAkB;QAClB,MAAM,QAAQ,GAA0B;YACvC,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,KAAK;YACL,cAAc;SACd,CAAC;QACF,MAAM,QAAQ,CAAC;QAEf,YAAY,IAAI,cAAc,CAAC;IAChC,CAAC;IAED,gFAAgF;IAChF,mFAAmF;IACnF,oFAAoF;IACpF,8EAA8E;IAC9E,8EAA8E;IAC9E,qFAAqF;IACrF,8DAA8D;IAC9D,6EAA6E;IAC7E,kFAAkF;IAClF,6EAA6E;IAC7E,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,4BAA4B,EAAE,CAAC;IAChD,IAAI,SAAS,GAAqD,EAAE,CAAC;IACrE,IAAI,QAA4B,CAAC;IACjC,IAAI,OAA2B,CAAC;IAEhC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,qEAAqE;QACrE,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YAC5D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC7E,MAAM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACzD,CAAC;YACD,SAAS,GAAG,EAAE,CAAC;YACf,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC;YACzB,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC;QACxB,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpD,SAAS,CAAC,IAAI,CAAC;YACd,EAAE,EAAE,SAAS,CAAC,EAAE;YAChB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,GAAG,CAAC,SAAS,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7E,CAAC,CAAC;QAEH,IAAI,SAAS,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC;YACnC,MAAM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACxD,SAAS,GAAG,EAAE,CAAC;QAChB,CAAC;IACF,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC7E,MAAM,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;IACf,MAAM,MAAM,GAAwB;QACnC,IAAI,EAAE,QAAQ;QACd,UAAU;QACV,WAAW,EAAE,SAAS,CAAC,IAAI;QAC3B,YAAY;QACZ,eAAe,EAAE,cAAc;KAC/B,CAAC;IACF,MAAM,MAAM,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iBAAiB,CACvC,GAAgB,EAChB,YAAoB,2BAA2B;IAE/C,KAAK,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE;QAC/B,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;QACvB,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE;QACxB,SAAS;KACT,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,oBAAoB,CAC1C,GAAgB,EAChB,UAA8B;IAE9B,KAAK,CAAC,CAAC,oBAAoB,CAAC,GAAG,EAAE;QAChC,UAAU,EAAE,UAAU,CAAC,UAAU;QACjC,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,SAAS,EAAE,2BAA2B;QACtC,eAAe,EAAE,IAAI,GAAG,CAAC,UAAU,CAAC,eAAe,CAAC;QACpD,iBAAiB,EAAE,UAAU,CAAC,gBAAgB;KAC9C,CAAC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;;;;;;;;;;;;GAaG;AACH,SAAS,oBAAoB,CAC5B,eAAsC;IAEtC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAClD,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,qBAAqB,CACnC,GAAgB,EAChB,cAAmC;IAEnC,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAElC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,gCAAgC,EAAE,CAAC,EAAE,CAAC;QAC9E,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAAE,SAAS;QAC/E,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,4BAA4B,EAAE,CAAC,EAAE,CAAC;QAC1E,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAAE,SAAS;QAC/E,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,2BAA2B,EAAE,CAAC,EAAE,CAAC;QACzE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5C,IAAI,MAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAAE,SAAS;QAC/E,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,GAAgB,EAChB,MAAoC,EACpC,UAAiD;IAEjD,IAAI,UAA8B,CAAC;IACnC,IAAI,WAA4B,CAAC;IACjC,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,IAAI,eAAe,GAAG,CAAC,CAAC;IACxB,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,IAAI,YAAgC,CAAC;IACrC,MAAM,eAAe,GAAa,EAAE,CAAC;IAErC,0DAA0D;IAC1D,IAAI,kBAAkB,GAAwB,EAAE,CAAC;IACjD,IAAI,oBAAoB,GAA0B,EAAE,CAAC;IAErD,MAAM,gBAAgB,GAAG,KAAK,IAAmB,EAAE;QAClD,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,4EAA4E;QAC5E,yEAAyE;QACzE,2EAA2E;QAC3E,6EAA6E;QAC7E,8DAA8D;QAC9D,MAAM,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzG,kBAAkB,GAAG,EAAE,CAAC;QACxB,oBAAoB,GAAG,EAAE,CAAC;IAC3B,CAAC,CAAC;IAEF,iBAAiB;IACjB,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAC3B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,gBAAgB,GAAG,IAAI,CAAC;IAE9B,8EAA8E;IAC9E,gFAAgF;IAChF,gEAAgE;IAChE,MAAM,kBAAkB,GAAG,KAAK,IAAmB,EAAE;QACpD,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACvB,SAAS,GAAG,CAAC,CAAC;QAEd,IAAI,UAAU,IAAI,WAAW,EAAE,CAAC;YAC/B,MAAM,sBAAsB,CAAC,GAAG,EAAE;gBACjC,UAAU;gBACV,MAAM,EAAE,GAAG,CAAC,SAAS,EAAE;gBACvB,GAAG,EAAE,WAAW;gBAChB,cAAc,EAAE,eAAe;gBAC/B,cAAc,EAAE,gBAAgB;gBAChC,eAAe,EAAE,CAAC,GAAG,eAAe,CAAC;gBACrC,gBAAgB;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACrB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC,CAAC;IAEF,IAAI,kBAAsC,CAAC;IAC3C,IAAI,gBAAoC,CAAC;IAEzC,+EAA+E;IAC/E,qEAAqE;IACrE,0EAA0E;IAC1E,WAAW;IACX,MAAM,aAAa,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAC;IAExD,2EAA2E;IAC3E,qDAAqD;IACrD,mEAAmE;IACnE,2EAA2E;IAC3E,6EAA6E;IAC7E,qEAAqE;IACrE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;IAEnD,yEAAyE;IACzE,qEAAqE;IACrE,8EAA8E;IAC9E,kFAAkF;IAClF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAwD,CAAC;IACtF,IAAI,eAAmC,CAAC;IACxC,IAAI,cAAkC,CAAC;IAEvC,MAAM,eAAe,GAAG,KAAK,IAAmB,EAAE;QACjD,IAAI,eAAe,KAAK,SAAS,IAAI,cAAc,KAAK,SAAS;YAAE,OAAO;QAC1E,KAAK,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YACzC,yEAAyE;YACzE,oEAAoE;YACpE,0EAA0E;YAC1E,mEAAmE;YACnE,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC;YACrG,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACF,CAAC;QACD,aAAa,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAClC,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACf,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;gBAC9B,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC;gBACxB,WAAW,GAAG,KAAK,CAAC,UAAU,CAAC;gBAE/B,0EAA0E;gBAC1E,yEAAyE;gBACzE,mEAAmE;gBACnE,0EAA0E;gBAC1E,sEAAsE;gBACtE,oEAAoE;gBACpE,IAAI,KAAK,CAAC,cAAc,KAAK,4BAA4B,EAAE,CAAC;oBAC3D,MAAM,KAAK,GAAG,IAAI,KAAK,CACtB,wBAAwB,KAAK,CAAC,cAAc,IAAI,WAAW,+BAA+B;0BACvF,GAAG,4BAA4B,6CAA6C,CAC/E,CAAC;oBACF,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/D,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,4EAA4E;gBAC5E,8EAA8E;gBAC9E,+EAA+E;gBAC/E,+EAA+E;gBAC/E,sEAAsE;gBACtE,IAAI,CAAC;oBACJ,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC/E,MAAM,KAAK,CAAC;gBACb,CAAC;gBAED,wEAAwE;gBACxE,yEAAyE;gBACzE,4EAA4E;gBAC5E,sEAAsE;gBACtE,sEAAsE;gBACtE,mEAAmE;gBACnE,+DAA+D;gBAC/D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBACzF,IAAI,UAAU,EAAE,CAAC;oBAChB,eAAe,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;oBACpD,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC;oBACpD,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC;gBAChD,CAAC;gBACD,MAAM,qBAAqB,CAAC,GAAG,EAAE,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;gBAC3D,MAAM;YACP,CAAC;YAED,KAAK,aAAa;gBACjB,0EAA0E;gBAC1E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,0EAA0E;gBAC1E,8EAA8E;gBAC9E,qDAAqD;gBACrD,6EAA6E;gBAC7E,+EAA+E;gBAC/E,4EAA4E;gBAC5E,6EAA6E;gBAC7E,4EAA4E;gBAC5E,MAAM,gBAAgB,EAAE,CAAC;gBAEzB,YAAY,GAAG,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChD,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC;gBAClC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC/B,YAAY,IAAI,KAAK,CAAC,gBAAgB,CAAC;gBACvC,SAAS,CAAC,KAAK,EAAE,CAAC;gBAClB,MAAM;YAEP,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACxB,uEAAuE;gBACvE,wEAAwE;gBACxE,wEAAwE;gBACxE,sEAAsE;gBACtE,+DAA+D;gBAC/D,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnC,aAAa,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;oBACxC,gBAAgB,EAAE,CAAC;gBACpB,CAAC;gBAED,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;oBAC9B,UAAU,CAAC;wBACV,UAAU;wBACV,eAAe;wBACf,WAAW;wBACX,gBAAgB;wBAChB,YAAY;wBACZ,YAAY;qBACZ,CAAC,CAAC;gBACJ,CAAC;gBACD,MAAM;YACP,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBAClB,0EAA0E;gBAC1E,oEAAoE;gBACpE,2EAA2E;gBAC3E,4EAA4E;gBAC5E,wEAAwE;gBACxE,2EAA2E;gBAC3E,qDAAqD;gBACrD,EAAE;gBACF,uEAAuE;gBACvE,2EAA2E;gBAC3E,gEAAgE;gBAChE,uEAAuE;gBACvE,8DAA8D;gBAC9D,MAAM,gBAAgB,EAAE,CAAC;gBAEzB,IAAI,KAAK,CAAC,MAAM,KAAK,eAAe,IAAI,KAAK,CAAC,KAAK,KAAK,cAAc,EAAE,CAAC;oBACxE,MAAM,eAAe,EAAE,CAAC;oBACxB,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;oBAC/B,cAAc,GAAG,KAAK,CAAC,KAAK,CAAC;gBAC9B,CAAC;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxD,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACnC,UAAU,CAAC,aAAa,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE;wBAC7D,EAAE,EAAE,KAAK,CAAC,EAAE;wBACZ,GAAG,EAAE,KAAK,CAAC,GAAG;wBACd,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBACrE,CAAC,CAAC;gBACJ,CAAC;gBACD,MAAM;YACP,CAAC;YAED,KAAK,WAAW;gBACf,wEAAwE;gBACxE,0EAA0E;gBAC1E,qEAAqE;gBACrE,0EAA0E;gBAC1E,kBAAkB;gBAClB,IAAI,kBAAkB,IAAI,gBAAgB,EAAE,CAAC;oBAC5C,KAAK,MAAM,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;wBACtC,MAAM,OAAO,GAA6B,EAAE,CAAC;wBAC7C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;4BACxC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;4BAE7B,GAAG,CAAC,cAAc,CAAC,qBAAqB,CACvC,KAAK,EACL,kBAAkB,EAClB,gBAAgB,EAChB,GAAG,CAAC,EAAE,EACN,MAAM,EACN,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CACpC,CAAC;4BACF,GAAG,CAAC,SAAS,CAAC,uBAAuB,CACpC,KAAK,EACL,IAAI,CAAC,GAAG,EACR,kBAAkB,EAClB,gBAAgB,EAChB,GAAG,CAAC,EAAE,EACN,MAAM,CACN,CAAC;4BAEF,SAAS,EAAE,CAAC;4BACZ,IAAI,SAAS,IAAI,gBAAgB,EAAE,CAAC;gCACnC,MAAM,kBAAkB,EAAE,CAAC;4BAC5B,CAAC;wBACF,CAAC;wBAED,kBAAkB,CAAC,IAAI,CAAC;4BACvB,IAAI,EAAE,QAAQ;4BACd,MAAM,EAAE,kBAAkB;4BAC1B,KAAK,EAAE,gBAAgB;4BACvB,EAAE,EAAE,GAAG,CAAC,EAAE;4BACV,OAAO;yBACP,CAAC,CAAC;wBACH,IAAI,kBAAkB,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;4BAClD,MAAM,gBAAgB,EAAE,CAAC;wBAC1B,CAAC;oBACF,CAAC;oBACD,SAAS,CAAC,KAAK,EAAE,CAAC;gBACnB,CAAC;gBAED,eAAe,EAAE,CAAC;gBAClB,IAAI,YAAY,EAAE,CAAC;oBAClB,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM;YAEP,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBAClC,oBAAoB,CAAC,IAAI,CAAC;oBACzB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,MAAM,EAAE,SAAS,CAAC,MAAM;oBACxB,KAAK,EAAE,SAAS,CAAC,KAAK;oBACtB,GAAG,EAAE,SAAS,CAAC,GAAG;iBAClB,CAAC,CAAC;gBAEH,MAAM,aAAa,GAAG,SAAS,CAAC,aAAa;oBAC5C,CAAC,MAAM,GAAG,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;gBACvF,MAAM,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,EAAE;oBAC7E,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,GAAG,EAAE,SAAS,CAAC,GAAG;oBAClB,aAAa;iBACb,CAAC,CAAC;gBACH,MAAM;YACP,CAAC;YAED,KAAK,QAAQ;gBACZ,oEAAoE;gBACpE,sDAAsD;gBACtD,MAAM,eAAe,EAAE,CAAC;gBAExB,gCAAgC;gBAChC,MAAM,gBAAgB,EAAE,CAAC;gBAEzB,iCAAiC;gBACjC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBACnB,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;gBACrB,CAAC;gBAED,aAAa;gBACb,IAAI,WAAW,EAAE,CAAC;oBACjB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;oBACpC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;gBAED,wEAAwE;gBACxE,yEAAyE;gBACzE,uEAAuE;gBACvE,0EAA0E;gBAC1E,uEAAuE;gBACvE,uEAAuE;gBACvE,6CAA6C;gBAC7C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;wBAC9B,MAAM,EAAE,IAAI;wBACZ,iBAAiB,EAAE,IAAI;wBACvB,eAAe,EAAE,oBAAoB,CAAC,eAAe,CAAC;qBACtD,CAAC,CAAC;gBACJ,CAAC;gBAED,mBAAmB;gBACnB,IAAI,UAAU,EAAE,CAAC;oBAChB,MAAM,uBAAuB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBAChD,CAAC;gBAED,yBAAyB;gBACzB,IAAI,WAAW,EAAE,CAAC;oBACjB,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC;gBACpF,CAAC;gBACD,MAAM;QACR,CAAC;IACF,CAAC;AACF,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,wEAAwE;AACxE,8EAA8E;AAC9E,+EAA+E;AAC/E,+EAA+E;AAC/E,gFAAgF;AAChF,oDAAoD;AAEpD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,GAAgB,EAChB,UAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,UAAU,EAAE,CAAC,CAAC;IAC1E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAE5B,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAE7B,OAAO;QACN,GAAG,GAAG;QACN,GAAG,EAAE;YACJ,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;YAClC,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,OAAO;YACxB,MAAM,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;YACtC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;SACzB;QACD,MAAM,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;KAClC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACpC,GAAgB,EAChB,UAA8B;IAE9B,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,GAAG,UAAU;QACb,GAAG,EAAE;YACJ,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC5C,OAAO,EAAE,UAAU,CAAC,GAAG,CAAC,OAAO;YAC/B,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC;YACzC,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK;SAC3B;QACD,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;KACrC,CAAC,CAAC;IACH,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CACrC,GAAgB,EAChB,UAAkB;IAElB,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,iBAAiB,GAAG,UAAU,EAAE,CAAC,CAAC;IAC1E,MAAM,GAAG,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC"}
|
|
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;
|
|
1
|
+
{"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,EAEN,KAAK,QAAQ,EASb,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWrD;;GAEG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,CA6ErE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,IAAI,CAAC,CA4Lf"}
|
|
@@ -6,10 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { assertWithinDrift, compareHLC } from '../clock/hlc.js';
|
|
8
8
|
import { deserializeColumnVersion } from '../metadata/column-version.js';
|
|
9
|
-
import { deserializeMigration } from '../metadata/schema-migration.js';
|
|
10
9
|
import { deserializeTombstone } from '../metadata/tombstones.js';
|
|
11
|
-
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds,
|
|
12
|
-
import { SNAPSHOT_WIRE_FORMAT_VERSION, } from './protocol.js';
|
|
10
|
+
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds, buildAllChangeLogScanBounds, parseColumnVersionKey, parseTombstoneKey, encodePkIdentity, } from '../metadata/keys.js';
|
|
11
|
+
import { SNAPSHOT_WIRE_FORMAT_VERSION, migrationObjectKind, sortMigrationsByHLC, toSchemaChange, } from './protocol.js';
|
|
13
12
|
import { toError } from './sync-context.js';
|
|
14
13
|
import { createSnapshotKeyingResolver, keepMaxHLC, reconcileCell, tableScopedRowKey, } from './snapshot-identity.js';
|
|
15
14
|
import { admitGroup } from './admission.js';
|
|
@@ -52,23 +51,7 @@ export async function getSnapshot(ctx) {
|
|
|
52
51
|
}
|
|
53
52
|
tables.push({ schema, table, columnVersions });
|
|
54
53
|
}
|
|
55
|
-
|
|
56
|
-
const schemaMigrations = [];
|
|
57
|
-
const smBounds = buildAllSchemaMigrationsScanBounds();
|
|
58
|
-
for await (const entry of ctx.kv.iterate(smBounds)) {
|
|
59
|
-
const parsed = parseSchemaMigrationKey(entry.key);
|
|
60
|
-
if (!parsed)
|
|
61
|
-
continue;
|
|
62
|
-
const migration = deserializeMigration(entry.value);
|
|
63
|
-
schemaMigrations.push({
|
|
64
|
-
type: migration.type,
|
|
65
|
-
schema: parsed.schema,
|
|
66
|
-
table: parsed.table,
|
|
67
|
-
ddl: migration.ddl,
|
|
68
|
-
hlc: migration.hlc,
|
|
69
|
-
schemaVersion: migration.schemaVersion,
|
|
70
|
-
});
|
|
71
|
-
}
|
|
54
|
+
const schemaMigrations = await ctx.schemaMigrations.listAllMigrations();
|
|
72
55
|
// Collect all tombstones — a GLOBAL pass (not keyed off `tables`), mirroring the
|
|
73
56
|
// streaming producer: a fully-deleted row has a tombstone but no live
|
|
74
57
|
// column-versions, so its `(schema, table)` may be absent from `tables`. The
|
|
@@ -125,13 +108,11 @@ export async function applySnapshot(ctx, snapshot) {
|
|
|
125
108
|
// PHASE 1: Build data changes from snapshot
|
|
126
109
|
const dataChangesToApply = [];
|
|
127
110
|
const schemaChangesToApply = [];
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
ddl: migration.ddl,
|
|
134
|
-
});
|
|
111
|
+
// Re-order rather than trust the sender's list order: DDL replays in list order
|
|
112
|
+
// and `create index` needs its table's `create table` to have run first.
|
|
113
|
+
const orderedMigrations = sortMigrationsByHLC(snapshot.schemaMigrations);
|
|
114
|
+
for (const migration of orderedMigrations) {
|
|
115
|
+
schemaChangesToApply.push(toSchemaChange(migration));
|
|
135
116
|
}
|
|
136
117
|
for (const tableSnapshot of snapshot.tables) {
|
|
137
118
|
// No local keying is resolvable yet — the table may only exist once this
|
|
@@ -211,11 +192,15 @@ export async function applySnapshot(ctx, snapshot) {
|
|
|
211
192
|
}
|
|
212
193
|
}
|
|
213
194
|
// Record schema migrations
|
|
214
|
-
for (const migration of
|
|
195
|
+
for (const migration of orderedMigrations) {
|
|
196
|
+
const kind = migrationObjectKind(migration.type);
|
|
215
197
|
const schemaVersion = migration.schemaVersion ??
|
|
216
|
-
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, migration.table)) + 1;
|
|
217
|
-
await ctx.schemaMigrations.recordMigration(migration.schema, migration.table, {
|
|
198
|
+
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, kind, migration.table)) + 1;
|
|
199
|
+
await ctx.schemaMigrations.recordMigration(migration.schema, kind, migration.table, {
|
|
218
200
|
type: migration.type,
|
|
201
|
+
// Keep the rename's old name, or this replica's own re-relay/snapshot
|
|
202
|
+
// would ship the rename without it — undecidable downstream.
|
|
203
|
+
...(migration.fromTable !== undefined ? { fromTable: migration.fromTable } : {}),
|
|
219
204
|
ddl: migration.ddl,
|
|
220
205
|
hlc: migration.hlc,
|
|
221
206
|
schemaVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAsB,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../src/sync/snapshot.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,10 +17,11 @@
|
|
|
17
17
|
* receiver failing "already exists" on every sync (see
|
|
18
18
|
* {@link decideSchemaChange}).
|
|
19
19
|
* 2. Data changes are grouped per table, then per row; each row group
|
|
20
|
-
* collapses to ONE `ExternalRowOp` — the group's NET effect in
|
|
21
|
-
* order (a delete resets the row to
|
|
22
|
-
* rebuild it from PK+nulls; updates with no
|
|
23
|
-
* pre-read existing row — UPSERT semantics; see
|
|
20
|
+
* collapses to ONE `ExternalRowOp` — the group's NET effect in list
|
|
21
|
+
* order, which the caller delivers HLC-ordered (a delete resets the row to
|
|
22
|
+
* absent and later column updates rebuild it from PK+nulls; updates with no
|
|
23
|
+
* later delete merge onto the pre-read existing row — UPSERT semantics; see
|
|
24
|
+
* {@link buildRowOp}).
|
|
24
25
|
* 3. `StoreTable.applyExternalRowChanges(ops)` applies the table's ops to
|
|
25
26
|
* committed storage and returns the EFFECTIVE changes (no-ops — absent
|
|
26
27
|
* delete, value-identical upsert — are suppressed: no storage write, no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-adapter.d.ts","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"store-adapter.d.ts","sourceRoot":"","sources":["../../../src/sync/store-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0GG;AAEH,OAAO,KAAK,EAAkC,QAAQ,EAAiD,MAAM,kBAAkB,CAAC;AAEhI,OAAO,KAAK,EAAiB,iBAAiB,EAAE,WAAW,EAAc,MAAM,gBAAgB,CAAC;AAEhG,OAAO,KAAK,EACV,oBAAoB,EAKrB,MAAM,eAAe,CAAC;AAGvB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,EAAE,EAAE,QAAQ,CAAC;IACb;;;;;OAKG;IACH,WAAW,EAAE,WAAW,CAAC;IACzB,mFAAmF;IACnF,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;;;;;;;OAQG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,uBAAuB,GAAG,oBAAoB,CA+GzF"}
|