@syncular/server 0.0.1-91 → 0.0.1-95
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dialect/base.d.ts +5 -21
- package/dist/dialect/base.d.ts.map +1 -1
- package/dist/dialect/base.js +33 -1
- package/dist/dialect/base.js.map +1 -1
- package/dist/dialect/types.d.ts +23 -44
- package/dist/dialect/types.d.ts.map +1 -1
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +132 -87
- package/dist/pull.js.map +1 -1
- package/dist/snapshot-chunks/adapters/s3.d.ts +11 -0
- package/dist/snapshot-chunks/adapters/s3.d.ts.map +1 -1
- package/dist/snapshot-chunks/db-metadata.d.ts +5 -0
- package/dist/snapshot-chunks/db-metadata.d.ts.map +1 -1
- package/dist/snapshot-chunks/db-metadata.js +168 -49
- package/dist/snapshot-chunks/db-metadata.js.map +1 -1
- package/dist/snapshot-chunks/types.d.ts +13 -0
- package/dist/snapshot-chunks/types.d.ts.map +1 -1
- package/dist/snapshot-chunks.d.ts +2 -1
- package/dist/snapshot-chunks.d.ts.map +1 -1
- package/dist/snapshot-chunks.js +27 -7
- package/dist/snapshot-chunks.js.map +1 -1
- package/package.json +1 -1
- package/src/dialect/base.ts +55 -25
- package/src/dialect/types.ts +27 -52
- package/src/pull.ts +167 -101
- package/src/snapshot-chunks/db-metadata.ts +218 -56
- package/src/snapshot-chunks/types.ts +20 -0
- package/src/snapshot-chunks.ts +31 -9
package/dist/dialect/base.d.ts
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* Abstract base class that implements shared query methods for all
|
|
5
5
|
* database-specific sync dialect implementations.
|
|
6
6
|
*/
|
|
7
|
-
import type { ScopeValues, StoredScopes
|
|
7
|
+
import type { ScopeValues, StoredScopes } from '@syncular/core';
|
|
8
8
|
import type { Kysely, RawBuilder, Transaction } from 'kysely';
|
|
9
9
|
import type { SyncChangeRow, SyncCommitRow, SyncCoreDb } from '../schema';
|
|
10
|
-
import type { DbExecutor, ServerSyncDialect } from './types';
|
|
10
|
+
import type { DbExecutor, IncrementalPullRow, IncrementalPullRowsArgs, ServerSyncDialect } from './types';
|
|
11
11
|
/**
|
|
12
12
|
* Abstract base class for server sync dialects.
|
|
13
13
|
*
|
|
@@ -17,7 +17,7 @@ import type { DbExecutor, ServerSyncDialect } from './types';
|
|
|
17
17
|
* provided via small abstract hook methods.
|
|
18
18
|
*
|
|
19
19
|
* Genuinely different methods (DDL, transaction control, scope filtering,
|
|
20
|
-
* compaction
|
|
20
|
+
* compaction) remain abstract for each dialect to implement.
|
|
21
21
|
*/
|
|
22
22
|
export declare abstract class BaseServerSyncDialect implements ServerSyncDialect {
|
|
23
23
|
abstract readonly name: string;
|
|
@@ -45,24 +45,7 @@ export declare abstract class BaseServerSyncDialect implements ServerSyncDialect
|
|
|
45
45
|
scopes: ScopeValues;
|
|
46
46
|
partitionId?: string;
|
|
47
47
|
}): Promise<SyncChangeRow[]>;
|
|
48
|
-
abstract
|
|
49
|
-
table: string;
|
|
50
|
-
scopes: ScopeValues;
|
|
51
|
-
cursor: number;
|
|
52
|
-
limitCommits: number;
|
|
53
|
-
partitionId?: string;
|
|
54
|
-
}): Promise<Array<{
|
|
55
|
-
commit_seq: number;
|
|
56
|
-
actor_id: string;
|
|
57
|
-
created_at: string;
|
|
58
|
-
change_id: number;
|
|
59
|
-
table: string;
|
|
60
|
-
row_id: string;
|
|
61
|
-
op: SyncOp;
|
|
62
|
-
row_json: unknown | null;
|
|
63
|
-
row_version: number | null;
|
|
64
|
-
scopes: StoredScopes;
|
|
65
|
-
}>>;
|
|
48
|
+
protected abstract readIncrementalPullRowsBatch<DB extends SyncCoreDb>(db: DbExecutor<DB>, args: Omit<IncrementalPullRowsArgs, 'batchSize'>): Promise<IncrementalPullRow[]>;
|
|
66
49
|
abstract compactChanges<DB extends SyncCoreDb>(db: DbExecutor<DB>, args: {
|
|
67
50
|
fullHistoryHours: number;
|
|
68
51
|
}): Promise<number>;
|
|
@@ -95,5 +78,6 @@ export declare abstract class BaseServerSyncDialect implements ServerSyncDialect
|
|
|
95
78
|
cursor: number;
|
|
96
79
|
effectiveScopes: ScopeValues;
|
|
97
80
|
}): Promise<void>;
|
|
81
|
+
iterateIncrementalPullRows<DB extends SyncCoreDb>(db: DbExecutor<DB>, args: IncrementalPullRowsArgs): AsyncGenerator<IncrementalPullRow>;
|
|
98
82
|
}
|
|
99
83
|
//# sourceMappingURL=base.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/dialect/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/dialect/base.ts"],"names":[],"mappings":"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"}
|
package/dist/dialect/base.js
CHANGED
|
@@ -15,7 +15,7 @@ import { coerceIsoString, coerceNumber, parseScopes } from './helpers.js';
|
|
|
15
15
|
* provided via small abstract hook methods.
|
|
16
16
|
*
|
|
17
17
|
* Genuinely different methods (DDL, transaction control, scope filtering,
|
|
18
|
-
* compaction
|
|
18
|
+
* compaction) remain abstract for each dialect to implement.
|
|
19
19
|
*/
|
|
20
20
|
export class BaseServerSyncDialect {
|
|
21
21
|
// ===========================================================================
|
|
@@ -108,5 +108,37 @@ export class BaseServerSyncDialect {
|
|
|
108
108
|
updated_at = ${now}
|
|
109
109
|
`.execute(db);
|
|
110
110
|
}
|
|
111
|
+
async *iterateIncrementalPullRows(db, args) {
|
|
112
|
+
const limitCommits = Math.max(1, Math.min(500, args.limitCommits));
|
|
113
|
+
const batchSize = Math.max(1, Math.min(limitCommits, args.batchSize ?? 100, 500));
|
|
114
|
+
let processedCommits = 0;
|
|
115
|
+
let cursor = args.cursor;
|
|
116
|
+
while (processedCommits < limitCommits) {
|
|
117
|
+
const remainingCommits = limitCommits - processedCommits;
|
|
118
|
+
const commitLimit = Math.min(batchSize, remainingCommits);
|
|
119
|
+
const rows = await this.readIncrementalPullRowsBatch(db, {
|
|
120
|
+
table: args.table,
|
|
121
|
+
scopes: args.scopes,
|
|
122
|
+
cursor,
|
|
123
|
+
limitCommits: commitLimit,
|
|
124
|
+
partitionId: args.partitionId,
|
|
125
|
+
});
|
|
126
|
+
if (rows.length === 0)
|
|
127
|
+
break;
|
|
128
|
+
let maxCommitSeq = cursor;
|
|
129
|
+
const commitSeqs = new Set();
|
|
130
|
+
for (const row of rows) {
|
|
131
|
+
maxCommitSeq = Math.max(maxCommitSeq, row.commit_seq);
|
|
132
|
+
commitSeqs.add(row.commit_seq);
|
|
133
|
+
yield row;
|
|
134
|
+
}
|
|
135
|
+
if (maxCommitSeq <= cursor)
|
|
136
|
+
break;
|
|
137
|
+
processedCommits += commitSeqs.size;
|
|
138
|
+
cursor = maxCommitSeq;
|
|
139
|
+
if (commitSeqs.size < commitLimit)
|
|
140
|
+
break;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
111
143
|
}
|
|
112
144
|
//# sourceMappingURL=base.js.map
|
package/dist/dialect/base.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/dialect/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/dialect/base.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAQvE;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,qBAAqB;IAwEzC,8EAA8E;IAC9E,mDAAmD;IACnD,8EAA8E;IAE9E,KAAK,CAAC,gBAAgB,CACpB,EAAgC,EAChC,OAAkC,EACjB;QACjB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAsB;;;6BAGlB,WAAW;KACnC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAA,CAChD;IAED,KAAK,CAAC,gBAAgB,CACpB,EAAgC,EAChC,OAAkC,EACjB;QACjB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAsB;;;6BAGlB,WAAW;KACnC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAAA,CAChD;IAED,KAAK,CAAC,6BAA6B,CACjC,EAAgC,EAChC,SAAiB,EACjB,OAAkC,EACf;QACnB,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC;QACtD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAmB;;;2BAGjB,SAAS;6BACP,WAAW;KACnC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,GAAG,CAAC,IAAI;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;aACnB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAAA,CACtE;IAED,UAAU,CAAC,KAAc,EAAgB;QACvC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC;IAAA,CAC3B;IAED,8EAA8E;IAC9E,uDAAuD;IACvD,8EAA8E;IAE9E,KAAK,CAAC,qBAAqB,CACzB,EAAgC,EAChC,IAKC,EACkB;QACnB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,GAAG,GAAG,MAAM,GAAG,CAAyB;;;6BAGrB,WAAW;sBAClB,YAAY;2BACP,IAAI,CAAC,MAAM;;cAExB,IAAI,CAAC,YAAY;KAC1B,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,GAAG,CAAC,IAAI;aACZ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;aACtC,MAAM,CACL,CAAC,CAAC,EAAe,EAAE,CACjB,OAAO,CAAC,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CACjE,CAAC;IAAA,CACL;IAED,KAAK,CAAC,WAAW,CACf,EAAgC,EAChC,UAAoB,EACpB,OAAkC,EACR;QAC1B,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC;QACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAE1D,MAAM,GAAG,GAAG,MAAM,GAAG,CAKnB;;;yBAGmB,UAAU;6BACN,WAAW;;KAEnC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEd,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC5B,UAAU,EAAE,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7C,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC;YAC3C,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,IAAI;SACrC,CAAC,CAAC,CAAC;IAAA,CACL;IAED,KAAK,CAAC,kBAAkB,CACtB,EAAgC,EAChC,IAMC,EACc;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,SAAS,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAExD,MAAM,GAAG,CAAA;;gBAEG,WAAW,KAAK,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,KAAK,UAAU,KAAK,GAAG;;qBAEhF,IAAI,CAAC,OAAO;mBACd,IAAI,CAAC,MAAM;6BACD,UAAU;uBAChB,GAAG;KACrB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAAA,CACf;IAED,KAAK,CAAC,CAAC,0BAA0B,CAC/B,EAAkB,EAClB,IAA6B,EACO;QACpC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,CAAC,CACnD,CAAC;QAEF,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAEzB,OAAO,gBAAgB,GAAG,YAAY,EAAE,CAAC;YACvC,MAAM,gBAAgB,GAAG,YAAY,GAAG,gBAAgB,CAAC;YACzD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,EAAE,EAAE;gBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,MAAM;gBACN,YAAY,EAAE,WAAW;gBACzB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAE7B,IAAI,YAAY,GAAG,MAAM,CAAC;YAC1B,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;YAErC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;gBACtD,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC/B,MAAM,GAAG,CAAC;YACZ,CAAC;YAED,IAAI,YAAY,IAAI,MAAM;gBAAE,MAAM;YAElC,gBAAgB,IAAI,UAAU,CAAC,IAAI,CAAC;YACpC,MAAM,GAAG,YAAY,CAAC;YAEtB,IAAI,UAAU,CAAC,IAAI,GAAG,WAAW;gBAAE,MAAM;QAC3C,CAAC;IAAA,CACF;CACF"}
|
package/dist/dialect/types.d.ts
CHANGED
|
@@ -16,6 +16,26 @@ export type DbExecutor<DB extends SyncCoreDb = SyncCoreDb> = Kysely<DB> | Transa
|
|
|
16
16
|
* Supported dialect names.
|
|
17
17
|
*/
|
|
18
18
|
export type ServerSyncDialectName = string;
|
|
19
|
+
export interface IncrementalPullRowsArgs {
|
|
20
|
+
table: string;
|
|
21
|
+
scopes: ScopeValues;
|
|
22
|
+
cursor: number;
|
|
23
|
+
limitCommits: number;
|
|
24
|
+
partitionId?: string;
|
|
25
|
+
batchSize?: number;
|
|
26
|
+
}
|
|
27
|
+
export interface IncrementalPullRow {
|
|
28
|
+
commit_seq: number;
|
|
29
|
+
actor_id: string;
|
|
30
|
+
created_at: string;
|
|
31
|
+
change_id: number;
|
|
32
|
+
table: string;
|
|
33
|
+
row_id: string;
|
|
34
|
+
op: SyncOp;
|
|
35
|
+
row_json: unknown | null;
|
|
36
|
+
row_version: number | null;
|
|
37
|
+
scopes: StoredScopes;
|
|
38
|
+
}
|
|
19
39
|
export interface ServerSyncDialect {
|
|
20
40
|
readonly name: ServerSyncDialectName;
|
|
21
41
|
/** Create sync tables + indexes (idempotent) */
|
|
@@ -59,53 +79,12 @@ export interface ServerSyncDialect {
|
|
|
59
79
|
partitionId?: string;
|
|
60
80
|
}): Promise<SyncChangeRow[]>;
|
|
61
81
|
/**
|
|
62
|
-
*
|
|
82
|
+
* Incremental pull iterator for a subscription.
|
|
63
83
|
*
|
|
64
|
-
*
|
|
84
|
+
* Yields change rows joined with commit metadata and filtered by
|
|
65
85
|
* the subscription's table and scope values.
|
|
66
86
|
*/
|
|
67
|
-
|
|
68
|
-
table: string;
|
|
69
|
-
scopes: ScopeValues;
|
|
70
|
-
cursor: number;
|
|
71
|
-
limitCommits: number;
|
|
72
|
-
partitionId?: string;
|
|
73
|
-
}): Promise<Array<{
|
|
74
|
-
commit_seq: number;
|
|
75
|
-
actor_id: string;
|
|
76
|
-
created_at: string;
|
|
77
|
-
change_id: number;
|
|
78
|
-
table: string;
|
|
79
|
-
row_id: string;
|
|
80
|
-
op: SyncOp;
|
|
81
|
-
row_json: unknown | null;
|
|
82
|
-
row_version: number | null;
|
|
83
|
-
scopes: StoredScopes;
|
|
84
|
-
}>>;
|
|
85
|
-
/**
|
|
86
|
-
* Streaming incremental pull for large result sets.
|
|
87
|
-
*
|
|
88
|
-
* Yields changes one at a time instead of loading all into memory.
|
|
89
|
-
* Use this when expecting large numbers of changes.
|
|
90
|
-
*/
|
|
91
|
-
streamIncrementalPullRows?<DB extends SyncCoreDb>(db: DbExecutor<DB>, args: {
|
|
92
|
-
table: string;
|
|
93
|
-
scopes: ScopeValues;
|
|
94
|
-
cursor: number;
|
|
95
|
-
limitCommits: number;
|
|
96
|
-
partitionId?: string;
|
|
97
|
-
}): AsyncGenerator<{
|
|
98
|
-
commit_seq: number;
|
|
99
|
-
actor_id: string;
|
|
100
|
-
created_at: string;
|
|
101
|
-
change_id: number;
|
|
102
|
-
table: string;
|
|
103
|
-
row_id: string;
|
|
104
|
-
op: SyncOp;
|
|
105
|
-
row_json: unknown | null;
|
|
106
|
-
row_version: number | null;
|
|
107
|
-
scopes: StoredScopes;
|
|
108
|
-
}>;
|
|
87
|
+
iterateIncrementalPullRows<DB extends SyncCoreDb>(db: DbExecutor<DB>, args: IncrementalPullRowsArgs): AsyncGenerator<IncrementalPullRow>;
|
|
109
88
|
/**
|
|
110
89
|
* Optional compaction of the change log to reduce storage.
|
|
111
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialect/types.ts"],"names":[],"mappings":"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"}
|
package/dist/pull.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,WAAW,EAIhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,WAAW,EAIhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAItB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AA4BpE,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;OAGG;IACH,eAAe,EAAE,WAAW,CAAC;IAC7B,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;CACtB;AA0JD,wBAAsB,IAAI,CAAC,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;IACtD,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC,GAAG,OAAO,CAAC,UAAU,CAAC,CAkkBtB"}
|
package/dist/pull.js
CHANGED
|
@@ -13,6 +13,20 @@ async function compressSnapshotNdjson(ndjson) {
|
|
|
13
13
|
const compressed = await gzipAsync(ndjson);
|
|
14
14
|
return new Uint8Array(compressed);
|
|
15
15
|
}
|
|
16
|
+
function concatUint8Arrays(chunks) {
|
|
17
|
+
if (chunks.length === 0)
|
|
18
|
+
return new Uint8Array();
|
|
19
|
+
if (chunks.length === 1)
|
|
20
|
+
return chunks[0] ?? new Uint8Array();
|
|
21
|
+
const total = chunks.reduce((sum, chunk) => sum + chunk.length, 0);
|
|
22
|
+
const out = new Uint8Array(total);
|
|
23
|
+
let offset = 0;
|
|
24
|
+
for (const chunk of chunks) {
|
|
25
|
+
out.set(chunk, offset);
|
|
26
|
+
offset += chunk.length;
|
|
27
|
+
}
|
|
28
|
+
return out;
|
|
29
|
+
}
|
|
16
30
|
/**
|
|
17
31
|
* Generate a stable cache key for snapshot chunks.
|
|
18
32
|
*/
|
|
@@ -217,98 +231,147 @@ export async function pull(args) {
|
|
|
217
231
|
}
|
|
218
232
|
const snapshots = [];
|
|
219
233
|
let nextState = effectiveState;
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
break;
|
|
223
|
-
const nextTableName = nextState.tables[nextState.tableIndex];
|
|
224
|
-
if (!nextTableName) {
|
|
225
|
-
nextState = null;
|
|
226
|
-
break;
|
|
227
|
-
}
|
|
228
|
-
const tableHandler = args.shapes.getOrThrow(nextTableName);
|
|
229
|
-
const isFirstPage = nextState.rowCursor == null;
|
|
230
|
-
const page = await tableHandler.snapshot({
|
|
231
|
-
db: trx,
|
|
232
|
-
actorId: args.actorId,
|
|
233
|
-
scopeValues: effectiveScopes,
|
|
234
|
-
cursor: nextState.rowCursor,
|
|
235
|
-
limit: limitSnapshotRows,
|
|
236
|
-
}, sub.params);
|
|
237
|
-
const isLastPage = page.nextCursor == null;
|
|
238
|
-
// Always use NDJSON+gzip for bootstrap snapshots
|
|
239
|
-
const ttlMs = tableHandler.snapshotChunkTtlMs ?? 24 * 60 * 60 * 1000; // 24h
|
|
234
|
+
const cacheKey = `${partitionId}:${scopesToCacheKey(effectiveScopes)}`;
|
|
235
|
+
const flushSnapshotBundle = async (bundle) => {
|
|
240
236
|
const nowIso = new Date().toISOString();
|
|
241
|
-
|
|
242
|
-
const cacheKey = `${partitionId}:${scopesToCacheKey(effectiveScopes)}`;
|
|
237
|
+
const bundleRowLimit = Math.max(1, limitSnapshotRows * bundle.pageCount);
|
|
243
238
|
const cached = await readSnapshotChunkRefByPageKey(trx, {
|
|
244
239
|
partitionId,
|
|
245
240
|
scopeKey: cacheKey,
|
|
246
|
-
scope:
|
|
241
|
+
scope: bundle.table,
|
|
247
242
|
asOfCommitSeq: effectiveState.asOfCommitSeq,
|
|
248
|
-
rowCursor:
|
|
249
|
-
rowLimit:
|
|
243
|
+
rowCursor: bundle.startCursor,
|
|
244
|
+
rowLimit: bundleRowLimit,
|
|
250
245
|
encoding: 'ndjson',
|
|
251
246
|
compression: 'gzip',
|
|
252
247
|
nowIso,
|
|
253
248
|
});
|
|
254
249
|
let chunkRef = cached;
|
|
255
250
|
if (!chunkRef) {
|
|
256
|
-
const
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
lines.push(s === undefined ? 'null' : s);
|
|
260
|
-
}
|
|
261
|
-
const ndjson = lines.length > 0 ? `${lines.join('\n')}\n` : '';
|
|
262
|
-
const gz = await compressSnapshotNdjson(ndjson);
|
|
263
|
-
const sha256 = createHash('sha256')
|
|
264
|
-
.update(ndjson)
|
|
265
|
-
.digest('hex');
|
|
266
|
-
const expiresAt = new Date(Date.now() + Math.max(1000, ttlMs)).toISOString();
|
|
267
|
-
// Use external chunk storage if available, otherwise fall back to inline
|
|
251
|
+
const sha256 = bundle.hash.digest('hex');
|
|
252
|
+
const expiresAt = new Date(Date.now() + Math.max(1000, bundle.ttlMs)).toISOString();
|
|
253
|
+
const byteLength = bundle.compressedParts.reduce((sum, part) => sum + part.length, 0);
|
|
268
254
|
if (args.chunkStorage) {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
255
|
+
if (args.chunkStorage.storeChunkStream) {
|
|
256
|
+
chunkRef = await args.chunkStorage.storeChunkStream({
|
|
257
|
+
partitionId,
|
|
258
|
+
scopeKey: cacheKey,
|
|
259
|
+
scope: bundle.table,
|
|
260
|
+
asOfCommitSeq: effectiveState.asOfCommitSeq,
|
|
261
|
+
rowCursor: bundle.startCursor,
|
|
262
|
+
rowLimit: bundleRowLimit,
|
|
263
|
+
encoding: 'ndjson',
|
|
264
|
+
compression: 'gzip',
|
|
265
|
+
sha256,
|
|
266
|
+
byteLength,
|
|
267
|
+
bodyStream: new ReadableStream({
|
|
268
|
+
start(controller) {
|
|
269
|
+
for (const part of bundle.compressedParts) {
|
|
270
|
+
controller.enqueue(part);
|
|
271
|
+
}
|
|
272
|
+
controller.close();
|
|
273
|
+
},
|
|
274
|
+
}),
|
|
275
|
+
expiresAt,
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
else {
|
|
279
|
+
const body = concatUint8Arrays(bundle.compressedParts);
|
|
280
|
+
chunkRef = await args.chunkStorage.storeChunk({
|
|
281
|
+
partitionId,
|
|
282
|
+
scopeKey: cacheKey,
|
|
283
|
+
scope: bundle.table,
|
|
284
|
+
asOfCommitSeq: effectiveState.asOfCommitSeq,
|
|
285
|
+
rowCursor: bundle.startCursor,
|
|
286
|
+
rowLimit: bundleRowLimit,
|
|
287
|
+
encoding: 'ndjson',
|
|
288
|
+
compression: 'gzip',
|
|
289
|
+
sha256,
|
|
290
|
+
body,
|
|
291
|
+
expiresAt,
|
|
292
|
+
});
|
|
293
|
+
}
|
|
282
294
|
}
|
|
283
295
|
else {
|
|
296
|
+
const body = concatUint8Arrays(bundle.compressedParts);
|
|
284
297
|
const chunkId = randomUUID();
|
|
285
298
|
chunkRef = await insertSnapshotChunk(trx, {
|
|
286
299
|
chunkId,
|
|
287
300
|
partitionId,
|
|
288
301
|
scopeKey: cacheKey,
|
|
289
|
-
scope:
|
|
302
|
+
scope: bundle.table,
|
|
290
303
|
asOfCommitSeq: effectiveState.asOfCommitSeq,
|
|
291
|
-
rowCursor:
|
|
292
|
-
rowLimit:
|
|
304
|
+
rowCursor: bundle.startCursor,
|
|
305
|
+
rowLimit: bundleRowLimit,
|
|
293
306
|
encoding: 'ndjson',
|
|
294
307
|
compression: 'gzip',
|
|
295
308
|
sha256,
|
|
296
|
-
body
|
|
309
|
+
body,
|
|
297
310
|
expiresAt,
|
|
298
311
|
});
|
|
299
312
|
}
|
|
300
313
|
}
|
|
301
314
|
snapshots.push({
|
|
302
|
-
table:
|
|
315
|
+
table: bundle.table,
|
|
303
316
|
rows: [],
|
|
304
317
|
chunks: [chunkRef],
|
|
305
|
-
isFirstPage,
|
|
306
|
-
isLastPage,
|
|
318
|
+
isFirstPage: bundle.isFirstPage,
|
|
319
|
+
isLastPage: bundle.isLastPage,
|
|
307
320
|
});
|
|
321
|
+
};
|
|
322
|
+
let activeBundle = null;
|
|
323
|
+
for (let pageIndex = 0; pageIndex < maxSnapshotPages; pageIndex++) {
|
|
324
|
+
if (!nextState)
|
|
325
|
+
break;
|
|
326
|
+
const nextTableName = nextState.tables[nextState.tableIndex];
|
|
327
|
+
if (!nextTableName) {
|
|
328
|
+
if (activeBundle) {
|
|
329
|
+
activeBundle.isLastPage = true;
|
|
330
|
+
await flushSnapshotBundle(activeBundle);
|
|
331
|
+
activeBundle = null;
|
|
332
|
+
}
|
|
333
|
+
nextState = null;
|
|
334
|
+
break;
|
|
335
|
+
}
|
|
336
|
+
const tableHandler = args.shapes.getOrThrow(nextTableName);
|
|
337
|
+
if (!activeBundle || activeBundle.table !== nextTableName) {
|
|
338
|
+
if (activeBundle) {
|
|
339
|
+
await flushSnapshotBundle(activeBundle);
|
|
340
|
+
}
|
|
341
|
+
activeBundle = {
|
|
342
|
+
table: nextTableName,
|
|
343
|
+
startCursor: nextState.rowCursor,
|
|
344
|
+
isFirstPage: nextState.rowCursor == null,
|
|
345
|
+
isLastPage: false,
|
|
346
|
+
pageCount: 0,
|
|
347
|
+
ttlMs: tableHandler.snapshotChunkTtlMs ?? 24 * 60 * 60 * 1000,
|
|
348
|
+
hash: createHash('sha256'),
|
|
349
|
+
compressedParts: [],
|
|
350
|
+
};
|
|
351
|
+
}
|
|
352
|
+
const page = await tableHandler.snapshot({
|
|
353
|
+
db: trx,
|
|
354
|
+
actorId: args.actorId,
|
|
355
|
+
scopeValues: effectiveScopes,
|
|
356
|
+
cursor: nextState.rowCursor,
|
|
357
|
+
limit: limitSnapshotRows,
|
|
358
|
+
}, sub.params);
|
|
359
|
+
const lines = [];
|
|
360
|
+
for (const r of page.rows ?? []) {
|
|
361
|
+
const s = JSON.stringify(r);
|
|
362
|
+
lines.push(s === undefined ? 'null' : s);
|
|
363
|
+
}
|
|
364
|
+
const ndjson = lines.length > 0 ? `${lines.join('\n')}\n` : '';
|
|
365
|
+
activeBundle.hash.update(ndjson);
|
|
366
|
+
activeBundle.compressedParts.push(await compressSnapshotNdjson(ndjson));
|
|
367
|
+
activeBundle.pageCount += 1;
|
|
308
368
|
if (page.nextCursor != null) {
|
|
309
369
|
nextState = { ...nextState, rowCursor: page.nextCursor };
|
|
310
370
|
continue;
|
|
311
371
|
}
|
|
372
|
+
activeBundle.isLastPage = true;
|
|
373
|
+
await flushSnapshotBundle(activeBundle);
|
|
374
|
+
activeBundle = null;
|
|
312
375
|
if (nextState.tableIndex + 1 < nextState.tables.length) {
|
|
313
376
|
nextState = {
|
|
314
377
|
...nextState,
|
|
@@ -320,6 +383,9 @@ export async function pull(args) {
|
|
|
320
383
|
nextState = null;
|
|
321
384
|
break;
|
|
322
385
|
}
|
|
386
|
+
if (activeBundle) {
|
|
387
|
+
await flushSnapshotBundle(activeBundle);
|
|
388
|
+
}
|
|
323
389
|
subResponses.push({
|
|
324
390
|
id: sub.id,
|
|
325
391
|
status: 'active',
|
|
@@ -345,39 +411,18 @@ export async function pull(args) {
|
|
|
345
411
|
const maxScannedCommitSeq = scannedCommitSeqs.length > 0
|
|
346
412
|
? scannedCommitSeqs[scannedCommitSeqs.length - 1]
|
|
347
413
|
: cursor;
|
|
348
|
-
// Use streaming when available to reduce memory pressure for large pulls
|
|
349
|
-
const pullRowStream = dialect.streamIncrementalPullRows
|
|
350
|
-
? dialect.streamIncrementalPullRows(trx, {
|
|
351
|
-
partitionId,
|
|
352
|
-
table: sub.shape,
|
|
353
|
-
scopes: effectiveScopes,
|
|
354
|
-
cursor,
|
|
355
|
-
limitCommits,
|
|
356
|
-
})
|
|
357
|
-
: null;
|
|
358
414
|
// Collect rows and compute nextCursor in a single pass
|
|
359
415
|
const incrementalRows = [];
|
|
360
416
|
let nextCursor = cursor;
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
const rows = await dialect.readIncrementalPullRows(trx, {
|
|
371
|
-
partitionId,
|
|
372
|
-
table: sub.shape,
|
|
373
|
-
scopes: effectiveScopes,
|
|
374
|
-
cursor,
|
|
375
|
-
limitCommits,
|
|
376
|
-
});
|
|
377
|
-
incrementalRows.push(...rows);
|
|
378
|
-
for (const r of incrementalRows) {
|
|
379
|
-
nextCursor = Math.max(nextCursor, r.commit_seq);
|
|
380
|
-
}
|
|
417
|
+
for await (const row of dialect.iterateIncrementalPullRows(trx, {
|
|
418
|
+
partitionId,
|
|
419
|
+
table: sub.shape,
|
|
420
|
+
scopes: effectiveScopes,
|
|
421
|
+
cursor,
|
|
422
|
+
limitCommits,
|
|
423
|
+
})) {
|
|
424
|
+
incrementalRows.push(row);
|
|
425
|
+
nextCursor = Math.max(nextCursor, row.commit_seq);
|
|
381
426
|
}
|
|
382
427
|
nextCursor = Math.max(nextCursor, maxScannedCommitSeq);
|
|
383
428
|
if (incrementalRows.length === 0) {
|
package/dist/pull.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pull.js","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"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"}
|