@quereus/sync 4.5.0 → 4.6.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 +2 -2
- 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 +71 -39
- package/dist/src/metadata/keys.d.ts.map +1 -1
- package/dist/src/metadata/keys.js +181 -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 +25 -9
- package/dist/src/metadata/schema-migration.d.ts.map +1 -1
- package/dist/src/metadata/schema-migration.js +49 -15
- 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 +194 -60
- 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 +23 -1
- package/dist/src/sync/manager.d.ts.map +1 -1
- package/dist/src/sync/protocol.d.ts +30 -1
- package/dist/src/sync/protocol.d.ts.map +1 -1
- package/dist/src/sync/protocol.js +38 -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.map +1 -1
- package/dist/src/sync/snapshot-stream.js +41 -39
- 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 +12 -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 +27 -46
- package/dist/src/sync/store-adapter.js.map +1 -1
- package/dist/src/sync/sync-manager-impl.d.ts +35 -4
- package/dist/src/sync/sync-manager-impl.d.ts.map +1 -1
- package/dist/src/sync/sync-manager-impl.js +72 -40
- package/dist/src/sync/sync-manager-impl.js.map +1 -1
- package/package.json +7 -7
|
@@ -40,7 +40,13 @@ export interface SyncManager {
|
|
|
40
40
|
* Changes are applied atomically per transaction.
|
|
41
41
|
* Conflicts are resolved using column-level LWW.
|
|
42
42
|
*
|
|
43
|
-
*
|
|
43
|
+
* **Order-independent**: `changes` may be in any order and produces the same
|
|
44
|
+
* committed state as the HLC-ordered array — every ordering decision (which write
|
|
45
|
+
* survives, which DDL runs first, what the table row becomes) is made from the
|
|
46
|
+
* facts' HLCs, not from their position in the array. Callers assembling a batch
|
|
47
|
+
* from several senders, or passing one through an approval hook, need not sort it.
|
|
48
|
+
*
|
|
49
|
+
* @param changes - Change sets received from a peer, in any order
|
|
44
50
|
* @returns Statistics about what was applied
|
|
45
51
|
*/
|
|
46
52
|
applyChanges(changes: ChangeSet[]): Promise<ApplyResult>;
|
|
@@ -117,6 +123,22 @@ export interface SyncManager {
|
|
|
117
123
|
* {@link pruneTombstones}. Returns the number of entries pruned.
|
|
118
124
|
*/
|
|
119
125
|
pruneQuarantine(): Promise<number>;
|
|
126
|
+
/**
|
|
127
|
+
* Repair pass over the change log: delete every entry whose target record is
|
|
128
|
+
* already gone. Forward cleanup (`deleteRowVersionsAndLogEntries` / the change-log
|
|
129
|
+
* deletion in {@link pruneTombstones}) only stops *new* orphans — an entry whose
|
|
130
|
+
* record died before that cleanup existed is orphaned forever unless something
|
|
131
|
+
* scans the log itself. Nothing is incorrect while orphans remain (a resolved-to-
|
|
132
|
+
* `null` entry already produces no output), so this is a storage/scan-cost cleanup,
|
|
133
|
+
* safe to run at any time with no peer coordination.
|
|
134
|
+
*
|
|
135
|
+
* Host-driven — call from the same periodic maintenance path as
|
|
136
|
+
* {@link pruneTombstones} / {@link pruneQuarantine} / {@link evictExpiredBasisTables};
|
|
137
|
+
* the library adds no timer. Idempotent and cheap on a replica with nothing to
|
|
138
|
+
* repair: every entry resolves and none are deleted. Returns the number of
|
|
139
|
+
* entries removed.
|
|
140
|
+
*/
|
|
141
|
+
repairChangeLog(): Promise<number>;
|
|
120
142
|
/**
|
|
121
143
|
* Replay held out-of-basis changes (`quarantine` + forwardable `store-and-forward`
|
|
122
144
|
* entries) into tables that have since reappeared in the local basis — the revival
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sync/manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AACzE,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;AACvG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,SAAS,IAAI,MAAM,CAAC;IAEpB;;OAEG;IACH,aAAa,IAAI,GAAG,CAAC;IAErB;;;;;;OAMG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAE1E
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../../src/sync/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* and send via WebSocket, HTTP, WebRTC, or any other transport.
|
|
7
7
|
*/
|
|
8
8
|
import type { AssertionViolation, Row, SqlValue } from '@quereus/quereus';
|
|
9
|
-
import type
|
|
9
|
+
import { type HLC } from '../clock/hlc.js';
|
|
10
10
|
import type { SiteId } from '../clock/site.js';
|
|
11
11
|
/**
|
|
12
12
|
* A single column modification within a row.
|
|
@@ -58,6 +58,22 @@ export type Change = ColumnChange | RowDeletion;
|
|
|
58
58
|
* Types of schema migrations.
|
|
59
59
|
*/
|
|
60
60
|
export type SchemaMigrationType = 'create_table' | 'drop_table' | 'add_column' | 'drop_column' | 'add_index' | 'drop_index' | 'alter_column';
|
|
61
|
+
/**
|
|
62
|
+
* The kind of schema object a migration names.
|
|
63
|
+
*
|
|
64
|
+
* A migration's object name means different things per type — for an index
|
|
65
|
+
* migration it is the INDEX name, for every other type it is the TABLE name — so
|
|
66
|
+
* the kind is what keeps a table and a same-named index in separate migration
|
|
67
|
+
* streams (see {@link migrationObjectKind} and the `sm:` key layout in
|
|
68
|
+
* `metadata/keys.ts`).
|
|
69
|
+
*/
|
|
70
|
+
export type SchemaObjectKind = 'table' | 'index';
|
|
71
|
+
/**
|
|
72
|
+
* The object kind a migration type names. Derived, never carried on the wire:
|
|
73
|
+
* `SchemaMigration.type` already travels, so both ends compute the same kind and
|
|
74
|
+
* cannot disagree.
|
|
75
|
+
*/
|
|
76
|
+
export declare function migrationObjectKind(type: SchemaMigrationType): SchemaObjectKind;
|
|
61
77
|
/**
|
|
62
78
|
* A schema migration record.
|
|
63
79
|
*/
|
|
@@ -69,6 +85,17 @@ export interface SchemaMigration {
|
|
|
69
85
|
readonly hlc: HLC;
|
|
70
86
|
readonly schemaVersion: number;
|
|
71
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Order migrations causally — ascending HLC, stable, so migrations that cannot be
|
|
90
|
+
* distinguished by HLC keep arrival order.
|
|
91
|
+
*
|
|
92
|
+
* Every consumer replays DDL as a plain array in list order, and migrations are
|
|
93
|
+
* order-dependent across objects as well as within one: `create index` fails
|
|
94
|
+
* outright if its table's `create table` has not run. Neither the `sm:` key order
|
|
95
|
+
* (schema, then object kind, then name — every index before every table) nor
|
|
96
|
+
* changeset arrival order is causal, so both snapshot and delta paths sort here.
|
|
97
|
+
*/
|
|
98
|
+
export declare function sortMigrationsByHLC(migrations: readonly SchemaMigration[]): SchemaMigration[];
|
|
72
99
|
/**
|
|
73
100
|
* Exactly one source transaction's worth of changes.
|
|
74
101
|
*
|
|
@@ -369,6 +396,8 @@ export interface SchemaChangeToApply {
|
|
|
369
396
|
/** The DDL statement to execute. */
|
|
370
397
|
readonly ddl: string;
|
|
371
398
|
}
|
|
399
|
+
/** Narrow a migration to the fields the store adapter replays. */
|
|
400
|
+
export declare function toSchemaChange(migration: SchemaMigration): SchemaChangeToApply;
|
|
372
401
|
/**
|
|
373
402
|
* Result of applying changes to the store.
|
|
374
403
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/sync/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,35 @@
|
|
|
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 { compareHLC } from '../clock/hlc.js';
|
|
9
|
+
/**
|
|
10
|
+
* The object kind a migration type names. Derived, never carried on the wire:
|
|
11
|
+
* `SchemaMigration.type` already travels, so both ends compute the same kind and
|
|
12
|
+
* cannot disagree.
|
|
13
|
+
*/
|
|
14
|
+
export function migrationObjectKind(type) {
|
|
15
|
+
switch (type) {
|
|
16
|
+
case 'add_index':
|
|
17
|
+
case 'drop_index':
|
|
18
|
+
return 'index';
|
|
19
|
+
// create/drop table and the three column-level types all name a TABLE.
|
|
20
|
+
default:
|
|
21
|
+
return 'table';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Order migrations causally — ascending HLC, stable, so migrations that cannot be
|
|
26
|
+
* distinguished by HLC keep arrival order.
|
|
27
|
+
*
|
|
28
|
+
* Every consumer replays DDL as a plain array in list order, and migrations are
|
|
29
|
+
* order-dependent across objects as well as within one: `create index` fails
|
|
30
|
+
* outright if its table's `create table` has not run. Neither the `sm:` key order
|
|
31
|
+
* (schema, then object kind, then name — every index before every table) nor
|
|
32
|
+
* changeset arrival order is causal, so both snapshot and delta paths sort here.
|
|
33
|
+
*/
|
|
34
|
+
export function sortMigrationsByHLC(migrations) {
|
|
35
|
+
return [...migrations].sort((a, b) => compareHLC(a.hlc, b.hlc));
|
|
36
|
+
}
|
|
8
37
|
/**
|
|
9
38
|
* Snapshot wire-format version, stamped into both snapshot forms (the streaming
|
|
10
39
|
* header chunk and the non-streaming `Snapshot`). Both apply paths REFUSE a
|
|
@@ -20,6 +49,15 @@
|
|
|
20
49
|
* derives its own (see docs/sync.md § Row identity vs. address).
|
|
21
50
|
*/
|
|
22
51
|
export const SNAPSHOT_WIRE_FORMAT_VERSION = 1;
|
|
52
|
+
/** Narrow a migration to the fields the store adapter replays. */
|
|
53
|
+
export function toSchemaChange(migration) {
|
|
54
|
+
return {
|
|
55
|
+
type: migration.type,
|
|
56
|
+
schema: migration.schema,
|
|
57
|
+
table: migration.table,
|
|
58
|
+
ddl: migration.ddl,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
23
61
|
/**
|
|
24
62
|
* Default sync configuration.
|
|
25
63
|
*/
|
|
@@ -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;AAGH,OAAO,EAAY,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAmFvD;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAyB;IAC5D,QAAQ,IAAI,EAAE,CAAC;QACd,KAAK,WAAW,CAAC;QACjB,KAAK,YAAY;YAChB,OAAO,OAAO,CAAC;QAChB,uEAAuE;QACvE;YACC,OAAO,OAAO,CAAC;IACjB,CAAC;AACF,CAAC;AAcD;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAsC;IACzE,OAAO,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAwED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAwQ9C,kEAAkE;AAClE,MAAM,UAAU,cAAc,CAAC,SAA0B;IACxD,OAAO;QACN,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,MAAM,EAAE,SAAS,CAAC,MAAM;QACxB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,GAAG,EAAE,SAAS,CAAC,GAAG;KAClB,CAAC;AACH,CAAC;AAoPD;;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-identity.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAc,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,
|
|
1
|
+
{"version":3,"file":"snapshot-identity.d.ts","sourceRoot":"","sources":["../../../src/sync/snapshot-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAc,KAAK,GAAG,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAkC,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACpF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,6EAA6E;AAC7E,MAAM,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,QAAQ,EAAE,CAAC;IACf,KAAK,EAAE,GAAG,CAAC;IACX,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CAClD;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,GAAG,EAAE,WAAW,GAAG,sBAAsB,CAgBrF;AAED,yEAAyE;AACzE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzF;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAChC,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,QAAQ,GACd,IAAI,CAeN;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;CAAE,EACzD,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,EACvB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,GACV,IAAI,CAKN"}
|
|
@@ -10,16 +10,8 @@
|
|
|
10
10
|
* See docs/sync.md § Row identity vs. address.
|
|
11
11
|
*/
|
|
12
12
|
import { compareHLC } from '../clock/hlc.js';
|
|
13
|
-
import { encodePkIdentity } from '../metadata/keys.js';
|
|
13
|
+
import { encodePkIdentity, joinKeyParts } from '../metadata/keys.js';
|
|
14
14
|
import { toError } from './sync-context.js';
|
|
15
|
-
/**
|
|
16
|
-
* Length-prefixed join of components that may each contain any character (a
|
|
17
|
-
* quoted SQL identifier, an arbitrary pk identity), so no separator choice can
|
|
18
|
-
* let two distinct triples collide.
|
|
19
|
-
*/
|
|
20
|
-
function joinKeyParts(...parts) {
|
|
21
|
-
return parts.map(part => `${part.length}:${part}`).join('');
|
|
22
|
-
}
|
|
23
15
|
/**
|
|
24
16
|
* Memoized per-`(schema, table)` keying lookup for one snapshot apply.
|
|
25
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapshot-identity.js","sourceRoot":"","sources":["../../../src/sync/snapshot-identity.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,UAAU,EAAY,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"snapshot-identity.js","sourceRoot":"","sources":["../../../src/sync/snapshot-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;AAkBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAEN,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAcrB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,MAAM,CAAC;AA+MnC;;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;AAiED;;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,CAuWf;AAcD;;GAEG;AACH,wBAAsB,qBAAqB,CAC1C,GAAG,EAAE,WAAW,EAChB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAkBzC"}
|
|
@@ -7,9 +7,8 @@
|
|
|
7
7
|
import { assertWithinDrift } from '../clock/hlc.js';
|
|
8
8
|
import { deserializeColumnVersion } from '../metadata/column-version.js';
|
|
9
9
|
import { deserializeTombstone } from '../metadata/tombstones.js';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import { SNAPSHOT_WIRE_FORMAT_VERSION, } from './protocol.js';
|
|
10
|
+
import { buildAllColumnVersionsScanBounds, buildAllTombstonesScanBounds, buildAllChangeLogScanBounds, buildTableColumnVersionScanBounds, parseColumnVersionKey, parseTombstoneKey, parseChangeLogKey, encodePkIdentity, } from '../metadata/keys.js';
|
|
11
|
+
import { SNAPSHOT_WIRE_FORMAT_VERSION, migrationObjectKind, sortMigrationsByHLC, toSchemaChange, } from './protocol.js';
|
|
13
12
|
import { persistHLCState, toError } from './sync-context.js';
|
|
14
13
|
import { createSnapshotKeyingResolver, keepMaxHLC, reconcileCell, } from './snapshot-identity.js';
|
|
15
14
|
import { applyDataToStore } from './admission.js';
|
|
@@ -45,11 +44,14 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
45
44
|
if (parsed)
|
|
46
45
|
tableKeys.set(`${parsed.schema}.${parsed.table}`, { schema: parsed.schema, table: parsed.table });
|
|
47
46
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
// Collect migrations up front — the header needs their count anyway, and they must
|
|
48
|
+
// be emitted in causal order rather than `sm:` scan order (see `listAllMigrations`).
|
|
49
|
+
// NOTE: this holds the whole migration set in memory; one record per DDL statement
|
|
50
|
+
// ever run, so it is small next to the row data this same generator streams. If a
|
|
51
|
+
// replica's DDL history ever grows enough to matter, keep an HLC-ordered index over
|
|
52
|
+
// `sm:` and stream from that instead.
|
|
53
|
+
const migrations = await ctx.schemaMigrations.listAllMigrations();
|
|
54
|
+
const migrationCount = migrations.length;
|
|
53
55
|
// Yield header
|
|
54
56
|
const header = {
|
|
55
57
|
type: 'header',
|
|
@@ -67,22 +69,8 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
67
69
|
// a receiver that does not already have the table, every row in that early flush
|
|
68
70
|
// fails. DDL-first makes the streaming bootstrap work for tables of any size;
|
|
69
71
|
// `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
|
-
};
|
|
72
|
+
for (const migration of migrations) {
|
|
73
|
+
const migrationChunk = { type: 'schema-migration', migration };
|
|
86
74
|
yield migrationChunk;
|
|
87
75
|
}
|
|
88
76
|
// Stream each table, skipping completed ones
|
|
@@ -146,9 +134,11 @@ async function* streamSnapshotChunks(ctx, opts) {
|
|
|
146
134
|
// pass), batched by `(schema, table)` into `chunkSize` chunks. A row whose columns
|
|
147
135
|
// were all deleted has a tombstone but no live column-versions, so its table may be
|
|
148
136
|
// 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
|
-
//
|
|
137
|
+
// key-sorted, so all tombstones for one `(schema, table)` are contiguous: every
|
|
138
|
+
// `tb:` key opens with that pair LENGTH-PREFIXED (`tb:{n}:{schema}{n}:{table}…`),
|
|
139
|
+
// so one table's keys share an exact byte prefix that no other table's key can
|
|
140
|
+
// start with — no interleaving is possible, even between tables named `a` and
|
|
141
|
+
// `a:b`. A fresh chunk starts whenever the table changes or the batch fills.
|
|
152
142
|
// NOTE: on a RESUMED transfer this re-emits ALL tombstones regardless of the
|
|
153
143
|
// checkpoint's completed tables (tombstones are not tracked per-table there). The
|
|
154
144
|
// consumer re-writes them idempotently (same key, same bytes) — a deliberate
|
|
@@ -288,9 +278,18 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
288
278
|
let entriesProcessed = 0;
|
|
289
279
|
let currentTable;
|
|
290
280
|
const completedTables = [];
|
|
281
|
+
// Tables whose `table-end` arrived but whose trailing rows may still sit in
|
|
282
|
+
// `pendingDataChanges`. They graduate into `completedTables` only once
|
|
283
|
+
// `applyDataToStore` has returned — a checkpoint naming a table whose last rows
|
|
284
|
+
// are still in memory tells the sender to skip that table on resume, and those
|
|
285
|
+
// rows are then never sent, never reconciled, and never reported.
|
|
286
|
+
let stagedCompletedTables = [];
|
|
291
287
|
// Pending data to apply to store (batched for efficiency)
|
|
292
288
|
let pendingDataChanges = [];
|
|
293
|
-
|
|
289
|
+
// Held as full migrations, not `SchemaChangeToApply`, so the flush can re-order
|
|
290
|
+
// them causally instead of trusting the sender's chunk order — DDL replays in
|
|
291
|
+
// list order and `create index` needs its table's `create table` to have run.
|
|
292
|
+
let pendingSchemaMigrations = [];
|
|
294
293
|
const flushDataToStore = async () => {
|
|
295
294
|
// A streamed snapshot is a known-complete wholesale load: each flush is a
|
|
296
295
|
// bootstrap flush (the adapter skips the engine seam — no per-flush MV
|
|
@@ -300,9 +299,12 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
300
299
|
// storage failure emits `status:'error'` and aborts the stream mid-flight,
|
|
301
300
|
// before the footer emits `status:'synced'` / clears the checkpoint — so the
|
|
302
301
|
// checkpoint stays in place and the transfer resumes/retries.
|
|
303
|
-
|
|
302
|
+
const schemaChanges = sortMigrationsByHLC(pendingSchemaMigrations).map(toSchemaChange);
|
|
303
|
+
await applyDataToStore(ctx, pendingDataChanges, schemaChanges, { remote: true, bootstrap: true });
|
|
304
304
|
pendingDataChanges = [];
|
|
305
|
-
|
|
305
|
+
pendingSchemaMigrations = [];
|
|
306
|
+
completedTables.push(...stagedCompletedTables);
|
|
307
|
+
stagedCompletedTables = [];
|
|
306
308
|
};
|
|
307
309
|
// Process chunks
|
|
308
310
|
let batch = ctx.kv.batch();
|
|
@@ -320,6 +322,10 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
320
322
|
snapshotId,
|
|
321
323
|
siteId: ctx.getSiteId(),
|
|
322
324
|
hlc: snapshotHLC,
|
|
325
|
+
// NOTE: nothing reads these two — resume keys off `completedTables` alone.
|
|
326
|
+
// `tablesProcessed` counts `table-end`s, so it can exceed
|
|
327
|
+
// `completedTables.length` while tables are staged; if a resume path ever
|
|
328
|
+
// starts seeking by index, derive it from `completedTables`, not from here.
|
|
323
329
|
lastTableIndex: tablesProcessed,
|
|
324
330
|
lastEntryIndex: entriesProcessed,
|
|
325
331
|
completedTables: [...completedTables],
|
|
@@ -516,20 +522,16 @@ export async function applySnapshotStream(ctx, chunks, onProgress) {
|
|
|
516
522
|
}
|
|
517
523
|
tablesProcessed++;
|
|
518
524
|
if (currentTable) {
|
|
519
|
-
|
|
525
|
+
stagedCompletedTables.push(currentTable);
|
|
520
526
|
}
|
|
521
527
|
break;
|
|
522
528
|
case 'schema-migration': {
|
|
523
529
|
const migration = chunk.migration;
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
schema: migration.schema,
|
|
527
|
-
table: migration.table,
|
|
528
|
-
ddl: migration.ddl,
|
|
529
|
-
});
|
|
530
|
+
pendingSchemaMigrations.push(migration);
|
|
531
|
+
const kind = migrationObjectKind(migration.type);
|
|
530
532
|
const schemaVersion = migration.schemaVersion ??
|
|
531
|
-
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, migration.table)) + 1;
|
|
532
|
-
await ctx.schemaMigrations.recordMigration(migration.schema, migration.table, {
|
|
533
|
+
(await ctx.schemaMigrations.getCurrentVersion(migration.schema, kind, migration.table)) + 1;
|
|
534
|
+
await ctx.schemaMigrations.recordMigration(migration.schema, kind, migration.table, {
|
|
533
535
|
type: migration.type,
|
|
534
536
|
ddl: migration.ddl,
|
|
535
537
|
hlc: migration.hlc,
|
|
@@ -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;
|
|
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,CAyLf"}
|
|
@@ -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,10 +192,11 @@ 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,
|
|
219
201
|
ddl: migration.ddl,
|
|
220
202
|
hlc: migration.hlc,
|
|
@@ -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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"}
|