@syncular/server 0.0.6-188 → 0.0.6-201
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/pull.d.ts +11 -0
- package/dist/pull.d.ts.map +1 -1
- package/dist/pull.js +108 -34
- package/dist/pull.js.map +1 -1
- package/package.json +2 -2
- package/src/pull.ts +156 -44
package/dist/pull.d.ts
CHANGED
|
@@ -6,6 +6,14 @@ import type { SyncServerAuth } from './handlers/types';
|
|
|
6
6
|
import type { SyncCoreDb } from './schema';
|
|
7
7
|
import type { SnapshotChunkStorage } from './snapshot-chunks/types';
|
|
8
8
|
import { type ScopeCacheBackend } from './subscriptions/cache';
|
|
9
|
+
interface PullBootstrapTimings {
|
|
10
|
+
snapshotQueryMs: number;
|
|
11
|
+
rowFrameEncodeMs: number;
|
|
12
|
+
chunkCacheLookupMs: number;
|
|
13
|
+
chunkGzipMs: number;
|
|
14
|
+
chunkHashMs: number;
|
|
15
|
+
chunkPersistMs: number;
|
|
16
|
+
}
|
|
9
17
|
export interface PullResult {
|
|
10
18
|
response: SyncPullResponse;
|
|
11
19
|
/**
|
|
@@ -15,6 +23,8 @@ export interface PullResult {
|
|
|
15
23
|
effectiveScopes: ScopeValues;
|
|
16
24
|
/** Minimum nextCursor across active subscriptions (for pruning cursor tracking). */
|
|
17
25
|
clientCursor: number;
|
|
26
|
+
/** Internal bootstrap timing breakdown used for benchmark-gated diagnostics. */
|
|
27
|
+
bootstrapTimings?: PullBootstrapTimings;
|
|
18
28
|
}
|
|
19
29
|
export declare function pull<DB extends SyncCoreDb, Auth extends SyncServerAuth>(args: {
|
|
20
30
|
db: Kysely<DB>;
|
|
@@ -35,4 +45,5 @@ export declare function pull<DB extends SyncCoreDb, Auth extends SyncServerAuth>
|
|
|
35
45
|
*/
|
|
36
46
|
scopeCache?: ScopeCacheBackend;
|
|
37
47
|
}): Promise<PullResult>;
|
|
48
|
+
export {};
|
|
38
49
|
//# sourceMappingURL=pull.d.ts.map
|
package/dist/pull.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,WAAW,EAMhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../src/pull.ts"],"names":[],"mappings":"AAAA,OAAO,EAQL,KAAK,WAAW,EAMhB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAKtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAM3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAS/B,UAAU,oBAAoB;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAsOD,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;OAGG;IACH,eAAe,EAAE,WAAW,CAAC;IAC7B,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAyND,wBAAsB,IAAI,CACxB,EAAE,SAAS,UAAU,EACrB,IAAI,SAAS,cAAc,EAC3B,IAAI,EAAE;IACN,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,uBAAuB,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,eAAe,CAAC;IACzB;;;;OAIG;IACH,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC,GAAG,OAAO,CAAC,UAAU,CAAC,CA6wBtB"}
|
package/dist/pull.js
CHANGED
|
@@ -8,6 +8,17 @@ const defaultScopeCache = createMemoryScopeCache();
|
|
|
8
8
|
const DEFAULT_MAX_SNAPSHOT_BUNDLE_ROW_FRAME_BYTES = 512 * 1024;
|
|
9
9
|
const MAX_ADAPTIVE_SNAPSHOT_BUNDLE_ROW_FRAME_BYTES = 4 * 1024 * 1024;
|
|
10
10
|
const DEFAULT_INLINE_SNAPSHOT_ROW_FRAME_BYTES = 256 * 1024;
|
|
11
|
+
const EMPTY_SNAPSHOT_ROW_FRAMES = encodeSnapshotRows([]);
|
|
12
|
+
function createPullBootstrapTimings() {
|
|
13
|
+
return {
|
|
14
|
+
snapshotQueryMs: 0,
|
|
15
|
+
rowFrameEncodeMs: 0,
|
|
16
|
+
chunkCacheLookupMs: 0,
|
|
17
|
+
chunkGzipMs: 0,
|
|
18
|
+
chunkHashMs: 0,
|
|
19
|
+
chunkPersistMs: 0,
|
|
20
|
+
};
|
|
21
|
+
}
|
|
11
22
|
function concatByteChunks(chunks) {
|
|
12
23
|
if (chunks.length === 1) {
|
|
13
24
|
return chunks[0] ?? new Uint8Array();
|
|
@@ -45,6 +56,39 @@ function bufferSourceToUint8Array(chunk) {
|
|
|
45
56
|
}
|
|
46
57
|
return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
|
|
47
58
|
}
|
|
59
|
+
async function streamToBytes(stream) {
|
|
60
|
+
const reader = stream.getReader();
|
|
61
|
+
const chunks = [];
|
|
62
|
+
let total = 0;
|
|
63
|
+
try {
|
|
64
|
+
while (true) {
|
|
65
|
+
const { done, value } = await reader.read();
|
|
66
|
+
if (done)
|
|
67
|
+
break;
|
|
68
|
+
if (!value)
|
|
69
|
+
continue;
|
|
70
|
+
const bytes = bufferSourceToUint8Array(value);
|
|
71
|
+
if (bytes.length === 0)
|
|
72
|
+
continue;
|
|
73
|
+
chunks.push(bytes);
|
|
74
|
+
total += bytes.length;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
reader.releaseLock();
|
|
79
|
+
}
|
|
80
|
+
if (chunks.length === 0)
|
|
81
|
+
return new Uint8Array();
|
|
82
|
+
if (chunks.length === 1)
|
|
83
|
+
return chunks[0] ?? new Uint8Array();
|
|
84
|
+
const merged = new Uint8Array(total);
|
|
85
|
+
let offset = 0;
|
|
86
|
+
for (const chunk of chunks) {
|
|
87
|
+
merged.set(chunk, offset);
|
|
88
|
+
offset += chunk.length;
|
|
89
|
+
}
|
|
90
|
+
return merged;
|
|
91
|
+
}
|
|
48
92
|
function bufferSourceStreamToUint8ArrayStream(stream) {
|
|
49
93
|
return new ReadableStream({
|
|
50
94
|
async start(controller) {
|
|
@@ -73,52 +117,48 @@ function bufferSourceStreamToUint8ArrayStream(stream) {
|
|
|
73
117
|
});
|
|
74
118
|
}
|
|
75
119
|
let nodeCryptoModulePromise = null;
|
|
76
|
-
let nodeZlibModulePromise = null;
|
|
77
120
|
async function getNodeCryptoModule() {
|
|
78
121
|
if (!nodeCryptoModulePromise) {
|
|
79
122
|
nodeCryptoModulePromise = import('node:crypto').catch(() => null);
|
|
80
123
|
}
|
|
81
124
|
return nodeCryptoModulePromise;
|
|
82
125
|
}
|
|
83
|
-
async function
|
|
84
|
-
if (!nodeZlibModulePromise) {
|
|
85
|
-
nodeZlibModulePromise = import('node:zlib').catch(() => null);
|
|
86
|
-
}
|
|
87
|
-
return nodeZlibModulePromise;
|
|
88
|
-
}
|
|
89
|
-
async function sha256HexFromBytes(bytes) {
|
|
126
|
+
async function sha256HexFromByteChunks(chunks) {
|
|
90
127
|
const nodeCrypto = await getNodeCryptoModule();
|
|
91
128
|
if (nodeCrypto && typeof nodeCrypto.createHash === 'function') {
|
|
92
129
|
const hasher = nodeCrypto.createHash('sha256');
|
|
93
|
-
|
|
130
|
+
for (const chunk of chunks) {
|
|
131
|
+
if (chunk.length === 0)
|
|
132
|
+
continue;
|
|
133
|
+
hasher.update(chunk);
|
|
134
|
+
}
|
|
94
135
|
return hasher.digest('hex');
|
|
95
136
|
}
|
|
96
|
-
return sha256Hex(
|
|
137
|
+
return sha256Hex(concatByteChunks(chunks));
|
|
97
138
|
}
|
|
98
|
-
async function
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
return
|
|
102
|
-
nodeZlib.gzip(payload, {
|
|
103
|
-
level: 1,
|
|
104
|
-
}, (error, compressed) => {
|
|
105
|
-
if (error) {
|
|
106
|
-
reject(error);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
resolve(new Uint8Array(compressed));
|
|
110
|
-
});
|
|
111
|
-
});
|
|
139
|
+
async function gzipByteChunks(chunks) {
|
|
140
|
+
if (typeof CompressionStream !== 'undefined') {
|
|
141
|
+
const stream = byteChunksToStream(chunks).pipeThrough(new CompressionStream('gzip'));
|
|
142
|
+
return streamToBytes(stream);
|
|
112
143
|
}
|
|
113
|
-
return gzipBytes(
|
|
144
|
+
return gzipBytes(concatByteChunks(chunks));
|
|
114
145
|
}
|
|
115
146
|
async function encodeCompressedSnapshotChunk(chunks) {
|
|
116
|
-
const
|
|
117
|
-
const
|
|
118
|
-
|
|
119
|
-
|
|
147
|
+
const gzipStartedAt = Date.now();
|
|
148
|
+
const gzipPromise = gzipByteChunks(chunks).then((body) => ({
|
|
149
|
+
body,
|
|
150
|
+
gzipMs: Math.max(0, Date.now() - gzipStartedAt),
|
|
151
|
+
}));
|
|
152
|
+
const hashStartedAt = Date.now();
|
|
153
|
+
const hashPromise = sha256HexFromByteChunks(chunks).then((sha256) => ({
|
|
154
|
+
sha256,
|
|
155
|
+
hashMs: Math.max(0, Date.now() - hashStartedAt),
|
|
156
|
+
}));
|
|
157
|
+
const [{ body, gzipMs }, { sha256, hashMs }] = await Promise.all([
|
|
158
|
+
gzipPromise,
|
|
159
|
+
hashPromise,
|
|
120
160
|
]);
|
|
121
|
-
return { body, sha256 };
|
|
161
|
+
return { body, sha256, gzipMs, hashMs };
|
|
122
162
|
}
|
|
123
163
|
async function encodeCompressedSnapshotChunkToStream(chunks) {
|
|
124
164
|
const encoded = await encodeCompressedSnapshotChunk(chunks);
|
|
@@ -126,6 +166,8 @@ async function encodeCompressedSnapshotChunkToStream(chunks) {
|
|
|
126
166
|
stream: bufferSourceStreamToUint8ArrayStream(byteChunksToStream([encoded.body])),
|
|
127
167
|
byteLength: encoded.body.length,
|
|
128
168
|
sha256: encoded.sha256,
|
|
169
|
+
gzipMs: encoded.gzipMs,
|
|
170
|
+
hashMs: encoded.hashMs,
|
|
129
171
|
};
|
|
130
172
|
}
|
|
131
173
|
function resolveSnapshotBundleMaxBytes(args) {
|
|
@@ -300,6 +342,7 @@ export async function pull(args) {
|
|
|
300
342
|
const maxSnapshotPages = sanitizeLimit(request.maxSnapshotPages, 4, 1, 50);
|
|
301
343
|
const dedupeRows = request.dedupeRows === true;
|
|
302
344
|
const pendingExternalChunkWrites = [];
|
|
345
|
+
const bootstrapTimings = createPullBootstrapTimings();
|
|
303
346
|
// Resolve effective scopes for each subscription
|
|
304
347
|
const resolved = await resolveEffectiveScopesForSubscriptions({
|
|
305
348
|
db,
|
|
@@ -419,6 +462,7 @@ export async function pull(args) {
|
|
|
419
462
|
}
|
|
420
463
|
const nowIso = new Date().toISOString();
|
|
421
464
|
const bundleRowLimit = Math.max(1, limitSnapshotRows * bundle.pageCount);
|
|
465
|
+
const cacheLookupStartedAt = Date.now();
|
|
422
466
|
const cached = await readSnapshotChunkRefByPageKey(trx, {
|
|
423
467
|
partitionId,
|
|
424
468
|
scopeKey: cacheKey,
|
|
@@ -430,6 +474,7 @@ export async function pull(args) {
|
|
|
430
474
|
compression: SYNC_SNAPSHOT_CHUNK_COMPRESSION,
|
|
431
475
|
nowIso,
|
|
432
476
|
});
|
|
477
|
+
bootstrapTimings.chunkCacheLookupMs += Math.max(0, Date.now() - cacheLookupStartedAt);
|
|
433
478
|
let chunkRef = cached;
|
|
434
479
|
if (!chunkRef) {
|
|
435
480
|
const expiresAt = new Date(Date.now() + Math.max(1000, bundle.ttlMs)).toISOString();
|
|
@@ -458,7 +503,10 @@ export async function pull(args) {
|
|
|
458
503
|
return;
|
|
459
504
|
}
|
|
460
505
|
const encodedChunk = await encodeCompressedSnapshotChunk(bundle.rowFrameParts);
|
|
506
|
+
bootstrapTimings.chunkGzipMs += encodedChunk.gzipMs;
|
|
507
|
+
bootstrapTimings.chunkHashMs += encodedChunk.hashMs;
|
|
461
508
|
const chunkId = randomId();
|
|
509
|
+
const chunkPersistStartedAt = Date.now();
|
|
462
510
|
chunkRef = await insertSnapshotChunk(trx, {
|
|
463
511
|
chunkId,
|
|
464
512
|
partitionId,
|
|
@@ -473,6 +521,7 @@ export async function pull(args) {
|
|
|
473
521
|
body: encodedChunk.body,
|
|
474
522
|
expiresAt,
|
|
475
523
|
});
|
|
524
|
+
bootstrapTimings.chunkPersistMs += Math.max(0, Date.now() - chunkPersistStartedAt);
|
|
476
525
|
}
|
|
477
526
|
snapshots.push({
|
|
478
527
|
table: bundle.table,
|
|
@@ -504,7 +553,7 @@ export async function pull(args) {
|
|
|
504
553
|
if (activeBundle) {
|
|
505
554
|
await flushSnapshotBundle(activeBundle);
|
|
506
555
|
}
|
|
507
|
-
const bundleHeader =
|
|
556
|
+
const bundleHeader = EMPTY_SNAPSHOT_ROW_FRAMES;
|
|
508
557
|
activeBundle = {
|
|
509
558
|
table: nextTableName,
|
|
510
559
|
startCursor: nextState.rowCursor,
|
|
@@ -517,6 +566,7 @@ export async function pull(args) {
|
|
|
517
566
|
inlineRows: null,
|
|
518
567
|
};
|
|
519
568
|
}
|
|
569
|
+
const snapshotQueryStartedAt = Date.now();
|
|
520
570
|
const page = await tableHandler.snapshot({
|
|
521
571
|
db: trx,
|
|
522
572
|
actorId: args.auth.actorId,
|
|
@@ -525,7 +575,10 @@ export async function pull(args) {
|
|
|
525
575
|
cursor: nextState.rowCursor,
|
|
526
576
|
limit: limitSnapshotRows,
|
|
527
577
|
}, sub.params);
|
|
578
|
+
bootstrapTimings.snapshotQueryMs += Math.max(0, Date.now() - snapshotQueryStartedAt);
|
|
579
|
+
const rowFrameEncodeStartedAt = Date.now();
|
|
528
580
|
const rowFrames = encodeSnapshotRowFrames(page.rows ?? []);
|
|
581
|
+
bootstrapTimings.rowFrameEncodeMs += Math.max(0, Date.now() - rowFrameEncodeStartedAt);
|
|
529
582
|
const bundleMaxBytes = resolveSnapshotBundleMaxBytes({
|
|
530
583
|
configuredMaxBytes: tableHandler.snapshotBundleMaxBytes,
|
|
531
584
|
pageRowCount: page.rows?.length ?? 0,
|
|
@@ -535,7 +588,7 @@ export async function pull(args) {
|
|
|
535
588
|
activeBundle.rowFrameByteLength + rowFrames.length >
|
|
536
589
|
bundleMaxBytes) {
|
|
537
590
|
await flushSnapshotBundle(activeBundle);
|
|
538
|
-
const bundleHeader =
|
|
591
|
+
const bundleHeader = EMPTY_SNAPSHOT_ROW_FRAMES;
|
|
539
592
|
activeBundle = {
|
|
540
593
|
table: nextTableName,
|
|
541
594
|
startCursor: nextState.rowCursor,
|
|
@@ -761,6 +814,7 @@ export async function pull(args) {
|
|
|
761
814
|
const chunkStorage = args.chunkStorage;
|
|
762
815
|
if (chunkStorage && pendingExternalChunkWrites.length > 0) {
|
|
763
816
|
await runWithConcurrency(pendingExternalChunkWrites, 4, async (pending) => {
|
|
817
|
+
const cacheLookupStartedAt = Date.now();
|
|
764
818
|
let chunkRef = await readSnapshotChunkRefByPageKey(db, {
|
|
765
819
|
partitionId: pending.cacheLookup.partitionId,
|
|
766
820
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -771,9 +825,13 @@ export async function pull(args) {
|
|
|
771
825
|
encoding: SYNC_SNAPSHOT_CHUNK_ENCODING,
|
|
772
826
|
compression: SYNC_SNAPSHOT_CHUNK_COMPRESSION,
|
|
773
827
|
});
|
|
828
|
+
bootstrapTimings.chunkCacheLookupMs += Math.max(0, Date.now() - cacheLookupStartedAt);
|
|
774
829
|
if (!chunkRef) {
|
|
775
830
|
if (chunkStorage.storeChunkStream) {
|
|
776
|
-
const { stream: bodyStream, byteLength, sha256, } = await encodeCompressedSnapshotChunkToStream(pending.rowFrameParts);
|
|
831
|
+
const { stream: bodyStream, byteLength, sha256, gzipMs, hashMs, } = await encodeCompressedSnapshotChunkToStream(pending.rowFrameParts);
|
|
832
|
+
bootstrapTimings.chunkGzipMs += gzipMs;
|
|
833
|
+
bootstrapTimings.chunkHashMs += hashMs;
|
|
834
|
+
const chunkPersistStartedAt = Date.now();
|
|
777
835
|
chunkRef = await chunkStorage.storeChunkStream({
|
|
778
836
|
partitionId: pending.cacheLookup.partitionId,
|
|
779
837
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -788,9 +846,13 @@ export async function pull(args) {
|
|
|
788
846
|
bodyStream,
|
|
789
847
|
expiresAt: pending.expiresAt,
|
|
790
848
|
});
|
|
849
|
+
bootstrapTimings.chunkPersistMs += Math.max(0, Date.now() - chunkPersistStartedAt);
|
|
791
850
|
}
|
|
792
851
|
else {
|
|
793
852
|
const encodedChunk = await encodeCompressedSnapshotChunk(pending.rowFrameParts);
|
|
853
|
+
bootstrapTimings.chunkGzipMs += encodedChunk.gzipMs;
|
|
854
|
+
bootstrapTimings.chunkHashMs += encodedChunk.hashMs;
|
|
855
|
+
const chunkPersistStartedAt = Date.now();
|
|
794
856
|
chunkRef = await chunkStorage.storeChunk({
|
|
795
857
|
partitionId: pending.cacheLookup.partitionId,
|
|
796
858
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -804,6 +866,7 @@ export async function pull(args) {
|
|
|
804
866
|
body: encodedChunk.body,
|
|
805
867
|
expiresAt: pending.expiresAt,
|
|
806
868
|
});
|
|
869
|
+
bootstrapTimings.chunkPersistMs += Math.max(0, Date.now() - chunkPersistStartedAt);
|
|
807
870
|
}
|
|
808
871
|
}
|
|
809
872
|
pending.snapshot.chunks = [chunkRef];
|
|
@@ -817,6 +880,14 @@ export async function pull(args) {
|
|
|
817
880
|
span.setAttribute('commit_count', stats.commitCount);
|
|
818
881
|
span.setAttribute('change_count', stats.changeCount);
|
|
819
882
|
span.setAttribute('snapshot_page_count', stats.snapshotPageCount);
|
|
883
|
+
span.setAttributes({
|
|
884
|
+
bootstrap_snapshot_query_ms: bootstrapTimings.snapshotQueryMs,
|
|
885
|
+
bootstrap_row_frame_encode_ms: bootstrapTimings.rowFrameEncodeMs,
|
|
886
|
+
bootstrap_chunk_cache_lookup_ms: bootstrapTimings.chunkCacheLookupMs,
|
|
887
|
+
bootstrap_chunk_gzip_ms: bootstrapTimings.chunkGzipMs,
|
|
888
|
+
bootstrap_chunk_hash_ms: bootstrapTimings.chunkHashMs,
|
|
889
|
+
bootstrap_chunk_persist_ms: bootstrapTimings.chunkPersistMs,
|
|
890
|
+
});
|
|
820
891
|
span.setStatus('ok');
|
|
821
892
|
recordPullMetrics({
|
|
822
893
|
status: 'ok',
|
|
@@ -824,7 +895,10 @@ export async function pull(args) {
|
|
|
824
895
|
durationMs,
|
|
825
896
|
stats,
|
|
826
897
|
});
|
|
827
|
-
return
|
|
898
|
+
return {
|
|
899
|
+
...result,
|
|
900
|
+
bootstrapTimings,
|
|
901
|
+
};
|
|
828
902
|
}
|
|
829
903
|
catch (error) {
|
|
830
904
|
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@syncular/server",
|
|
3
|
-
"version": "0.0.6-
|
|
3
|
+
"version": "0.0.6-201",
|
|
4
4
|
"description": "Server-side sync engine with push/pull, pruning, and snapshot support",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Benjamin Kniffler",
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"release": "bunx syncular-publish"
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@syncular/core": "0.0.6-
|
|
65
|
+
"@syncular/core": "0.0.6-201"
|
|
66
66
|
},
|
|
67
67
|
"peerDependencies": {
|
|
68
68
|
"kysely": "^0.28.0",
|
package/src/pull.ts
CHANGED
|
@@ -44,6 +44,34 @@ const defaultScopeCache = createMemoryScopeCache();
|
|
|
44
44
|
const DEFAULT_MAX_SNAPSHOT_BUNDLE_ROW_FRAME_BYTES = 512 * 1024;
|
|
45
45
|
const MAX_ADAPTIVE_SNAPSHOT_BUNDLE_ROW_FRAME_BYTES = 4 * 1024 * 1024;
|
|
46
46
|
const DEFAULT_INLINE_SNAPSHOT_ROW_FRAME_BYTES = 256 * 1024;
|
|
47
|
+
const EMPTY_SNAPSHOT_ROW_FRAMES = encodeSnapshotRows([]);
|
|
48
|
+
|
|
49
|
+
interface PullBootstrapTimings {
|
|
50
|
+
snapshotQueryMs: number;
|
|
51
|
+
rowFrameEncodeMs: number;
|
|
52
|
+
chunkCacheLookupMs: number;
|
|
53
|
+
chunkGzipMs: number;
|
|
54
|
+
chunkHashMs: number;
|
|
55
|
+
chunkPersistMs: number;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
interface SnapshotChunkEncodeResult {
|
|
59
|
+
body: Uint8Array;
|
|
60
|
+
sha256: string;
|
|
61
|
+
gzipMs: number;
|
|
62
|
+
hashMs: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
function createPullBootstrapTimings(): PullBootstrapTimings {
|
|
66
|
+
return {
|
|
67
|
+
snapshotQueryMs: 0,
|
|
68
|
+
rowFrameEncodeMs: 0,
|
|
69
|
+
chunkCacheLookupMs: 0,
|
|
70
|
+
chunkGzipMs: 0,
|
|
71
|
+
chunkHashMs: 0,
|
|
72
|
+
chunkPersistMs: 0,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
47
75
|
|
|
48
76
|
function concatByteChunks(chunks: readonly Uint8Array[]): Uint8Array {
|
|
49
77
|
if (chunks.length === 1) {
|
|
@@ -88,6 +116,39 @@ function bufferSourceToUint8Array(chunk: BufferSource): Uint8Array {
|
|
|
88
116
|
return new Uint8Array(chunk.buffer, chunk.byteOffset, chunk.byteLength);
|
|
89
117
|
}
|
|
90
118
|
|
|
119
|
+
async function streamToBytes(
|
|
120
|
+
stream: ReadableStream<BufferSource>
|
|
121
|
+
): Promise<Uint8Array> {
|
|
122
|
+
const reader = stream.getReader();
|
|
123
|
+
const chunks: Uint8Array[] = [];
|
|
124
|
+
let total = 0;
|
|
125
|
+
|
|
126
|
+
try {
|
|
127
|
+
while (true) {
|
|
128
|
+
const { done, value } = await reader.read();
|
|
129
|
+
if (done) break;
|
|
130
|
+
if (!value) continue;
|
|
131
|
+
const bytes = bufferSourceToUint8Array(value);
|
|
132
|
+
if (bytes.length === 0) continue;
|
|
133
|
+
chunks.push(bytes);
|
|
134
|
+
total += bytes.length;
|
|
135
|
+
}
|
|
136
|
+
} finally {
|
|
137
|
+
reader.releaseLock();
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (chunks.length === 0) return new Uint8Array();
|
|
141
|
+
if (chunks.length === 1) return chunks[0] ?? new Uint8Array();
|
|
142
|
+
|
|
143
|
+
const merged = new Uint8Array(total);
|
|
144
|
+
let offset = 0;
|
|
145
|
+
for (const chunk of chunks) {
|
|
146
|
+
merged.set(chunk, offset);
|
|
147
|
+
offset += chunk.length;
|
|
148
|
+
}
|
|
149
|
+
return merged;
|
|
150
|
+
}
|
|
151
|
+
|
|
91
152
|
function bufferSourceStreamToUint8ArrayStream(
|
|
92
153
|
stream: ReadableStream<BufferSource>
|
|
93
154
|
): ReadableStream<Uint8Array> {
|
|
@@ -116,8 +177,6 @@ function bufferSourceStreamToUint8ArrayStream(
|
|
|
116
177
|
let nodeCryptoModulePromise: Promise<
|
|
117
178
|
typeof import('node:crypto') | null
|
|
118
179
|
> | null = null;
|
|
119
|
-
let nodeZlibModulePromise: Promise<typeof import('node:zlib') | null> | null =
|
|
120
|
-
null;
|
|
121
180
|
|
|
122
181
|
async function getNodeCryptoModule(): Promise<
|
|
123
182
|
typeof import('node:crypto') | null
|
|
@@ -128,61 +187,53 @@ async function getNodeCryptoModule(): Promise<
|
|
|
128
187
|
return nodeCryptoModulePromise;
|
|
129
188
|
}
|
|
130
189
|
|
|
131
|
-
async function
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
return nodeZlibModulePromise;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
async function sha256HexFromBytes(bytes: Uint8Array): Promise<string> {
|
|
190
|
+
async function sha256HexFromByteChunks(
|
|
191
|
+
chunks: readonly Uint8Array[]
|
|
192
|
+
): Promise<string> {
|
|
139
193
|
const nodeCrypto = await getNodeCryptoModule();
|
|
140
194
|
if (nodeCrypto && typeof nodeCrypto.createHash === 'function') {
|
|
141
195
|
const hasher = nodeCrypto.createHash('sha256');
|
|
142
|
-
|
|
196
|
+
for (const chunk of chunks) {
|
|
197
|
+
if (chunk.length === 0) continue;
|
|
198
|
+
hasher.update(chunk);
|
|
199
|
+
}
|
|
143
200
|
return hasher.digest('hex');
|
|
144
201
|
}
|
|
145
202
|
|
|
146
|
-
return sha256Hex(
|
|
203
|
+
return sha256Hex(concatByteChunks(chunks));
|
|
147
204
|
}
|
|
148
205
|
|
|
149
|
-
async function
|
|
150
|
-
|
|
206
|
+
async function gzipByteChunks(
|
|
207
|
+
chunks: readonly Uint8Array[]
|
|
151
208
|
): Promise<Uint8Array> {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
{
|
|
158
|
-
level: 1,
|
|
159
|
-
},
|
|
160
|
-
(error, compressed) => {
|
|
161
|
-
if (error) {
|
|
162
|
-
reject(error);
|
|
163
|
-
return;
|
|
164
|
-
}
|
|
165
|
-
resolve(new Uint8Array(compressed));
|
|
166
|
-
}
|
|
167
|
-
);
|
|
168
|
-
});
|
|
209
|
+
if (typeof CompressionStream !== 'undefined') {
|
|
210
|
+
const stream = byteChunksToStream(chunks).pipeThrough(
|
|
211
|
+
new CompressionStream('gzip')
|
|
212
|
+
);
|
|
213
|
+
return streamToBytes(stream);
|
|
169
214
|
}
|
|
170
215
|
|
|
171
|
-
return gzipBytes(
|
|
216
|
+
return gzipBytes(concatByteChunks(chunks));
|
|
172
217
|
}
|
|
173
218
|
|
|
174
219
|
async function encodeCompressedSnapshotChunk(
|
|
175
220
|
chunks: readonly Uint8Array[]
|
|
176
|
-
): Promise<{
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
221
|
+
): Promise<SnapshotChunkEncodeResult> {
|
|
222
|
+
const gzipStartedAt = Date.now();
|
|
223
|
+
const gzipPromise = gzipByteChunks(chunks).then((body) => ({
|
|
224
|
+
body,
|
|
225
|
+
gzipMs: Math.max(0, Date.now() - gzipStartedAt),
|
|
226
|
+
}));
|
|
227
|
+
const hashStartedAt = Date.now();
|
|
228
|
+
const hashPromise = sha256HexFromByteChunks(chunks).then((sha256) => ({
|
|
229
|
+
sha256,
|
|
230
|
+
hashMs: Math.max(0, Date.now() - hashStartedAt),
|
|
231
|
+
}));
|
|
232
|
+
const [{ body, gzipMs }, { sha256, hashMs }] = await Promise.all([
|
|
233
|
+
gzipPromise,
|
|
234
|
+
hashPromise,
|
|
184
235
|
]);
|
|
185
|
-
return { body, sha256 };
|
|
236
|
+
return { body, sha256, gzipMs, hashMs };
|
|
186
237
|
}
|
|
187
238
|
|
|
188
239
|
async function encodeCompressedSnapshotChunkToStream(
|
|
@@ -191,6 +242,8 @@ async function encodeCompressedSnapshotChunkToStream(
|
|
|
191
242
|
stream: ReadableStream<Uint8Array>;
|
|
192
243
|
byteLength: number;
|
|
193
244
|
sha256: string;
|
|
245
|
+
gzipMs: number;
|
|
246
|
+
hashMs: number;
|
|
194
247
|
}> {
|
|
195
248
|
const encoded = await encodeCompressedSnapshotChunk(chunks);
|
|
196
249
|
return {
|
|
@@ -199,6 +252,8 @@ async function encodeCompressedSnapshotChunkToStream(
|
|
|
199
252
|
),
|
|
200
253
|
byteLength: encoded.body.length,
|
|
201
254
|
sha256: encoded.sha256,
|
|
255
|
+
gzipMs: encoded.gzipMs,
|
|
256
|
+
hashMs: encoded.hashMs,
|
|
202
257
|
};
|
|
203
258
|
}
|
|
204
259
|
|
|
@@ -237,6 +292,8 @@ export interface PullResult {
|
|
|
237
292
|
effectiveScopes: ScopeValues;
|
|
238
293
|
/** Minimum nextCursor across active subscriptions (for pruning cursor tracking). */
|
|
239
294
|
clientCursor: number;
|
|
295
|
+
/** Internal bootstrap timing breakdown used for benchmark-gated diagnostics. */
|
|
296
|
+
bootstrapTimings?: PullBootstrapTimings;
|
|
240
297
|
}
|
|
241
298
|
|
|
242
299
|
interface PendingExternalChunkWrite {
|
|
@@ -511,6 +568,7 @@ export async function pull<
|
|
|
511
568
|
);
|
|
512
569
|
const dedupeRows = request.dedupeRows === true;
|
|
513
570
|
const pendingExternalChunkWrites: PendingExternalChunkWrite[] = [];
|
|
571
|
+
const bootstrapTimings = createPullBootstrapTimings();
|
|
514
572
|
|
|
515
573
|
// Resolve effective scopes for each subscription
|
|
516
574
|
const resolved = await resolveEffectiveScopesForSubscriptions({
|
|
@@ -684,6 +742,7 @@ export async function pull<
|
|
|
684
742
|
limitSnapshotRows * bundle.pageCount
|
|
685
743
|
);
|
|
686
744
|
|
|
745
|
+
const cacheLookupStartedAt = Date.now();
|
|
687
746
|
const cached = await readSnapshotChunkRefByPageKey(trx, {
|
|
688
747
|
partitionId,
|
|
689
748
|
scopeKey: cacheKey,
|
|
@@ -695,6 +754,10 @@ export async function pull<
|
|
|
695
754
|
compression: SYNC_SNAPSHOT_CHUNK_COMPRESSION,
|
|
696
755
|
nowIso,
|
|
697
756
|
});
|
|
757
|
+
bootstrapTimings.chunkCacheLookupMs += Math.max(
|
|
758
|
+
0,
|
|
759
|
+
Date.now() - cacheLookupStartedAt
|
|
760
|
+
);
|
|
698
761
|
|
|
699
762
|
let chunkRef = cached;
|
|
700
763
|
if (!chunkRef) {
|
|
@@ -729,7 +792,10 @@ export async function pull<
|
|
|
729
792
|
const encodedChunk = await encodeCompressedSnapshotChunk(
|
|
730
793
|
bundle.rowFrameParts
|
|
731
794
|
);
|
|
795
|
+
bootstrapTimings.chunkGzipMs += encodedChunk.gzipMs;
|
|
796
|
+
bootstrapTimings.chunkHashMs += encodedChunk.hashMs;
|
|
732
797
|
const chunkId = randomId();
|
|
798
|
+
const chunkPersistStartedAt = Date.now();
|
|
733
799
|
chunkRef = await insertSnapshotChunk(trx, {
|
|
734
800
|
chunkId,
|
|
735
801
|
partitionId,
|
|
@@ -744,6 +810,10 @@ export async function pull<
|
|
|
744
810
|
body: encodedChunk.body,
|
|
745
811
|
expiresAt,
|
|
746
812
|
});
|
|
813
|
+
bootstrapTimings.chunkPersistMs += Math.max(
|
|
814
|
+
0,
|
|
815
|
+
Date.now() - chunkPersistStartedAt
|
|
816
|
+
);
|
|
747
817
|
}
|
|
748
818
|
|
|
749
819
|
snapshots.push({
|
|
@@ -784,7 +854,7 @@ export async function pull<
|
|
|
784
854
|
if (activeBundle) {
|
|
785
855
|
await flushSnapshotBundle(activeBundle);
|
|
786
856
|
}
|
|
787
|
-
const bundleHeader =
|
|
857
|
+
const bundleHeader = EMPTY_SNAPSHOT_ROW_FRAMES;
|
|
788
858
|
activeBundle = {
|
|
789
859
|
table: nextTableName,
|
|
790
860
|
startCursor: nextState.rowCursor,
|
|
@@ -799,6 +869,7 @@ export async function pull<
|
|
|
799
869
|
};
|
|
800
870
|
}
|
|
801
871
|
|
|
872
|
+
const snapshotQueryStartedAt = Date.now();
|
|
802
873
|
const page: { rows: unknown[]; nextCursor: string | null } =
|
|
803
874
|
await tableHandler.snapshot(
|
|
804
875
|
{
|
|
@@ -811,8 +882,17 @@ export async function pull<
|
|
|
811
882
|
},
|
|
812
883
|
sub.params
|
|
813
884
|
);
|
|
885
|
+
bootstrapTimings.snapshotQueryMs += Math.max(
|
|
886
|
+
0,
|
|
887
|
+
Date.now() - snapshotQueryStartedAt
|
|
888
|
+
);
|
|
814
889
|
|
|
890
|
+
const rowFrameEncodeStartedAt = Date.now();
|
|
815
891
|
const rowFrames = encodeSnapshotRowFrames(page.rows ?? []);
|
|
892
|
+
bootstrapTimings.rowFrameEncodeMs += Math.max(
|
|
893
|
+
0,
|
|
894
|
+
Date.now() - rowFrameEncodeStartedAt
|
|
895
|
+
);
|
|
816
896
|
const bundleMaxBytes = resolveSnapshotBundleMaxBytes({
|
|
817
897
|
configuredMaxBytes: tableHandler.snapshotBundleMaxBytes,
|
|
818
898
|
pageRowCount: page.rows?.length ?? 0,
|
|
@@ -824,7 +904,7 @@ export async function pull<
|
|
|
824
904
|
bundleMaxBytes
|
|
825
905
|
) {
|
|
826
906
|
await flushSnapshotBundle(activeBundle);
|
|
827
|
-
const bundleHeader =
|
|
907
|
+
const bundleHeader = EMPTY_SNAPSHOT_ROW_FRAMES;
|
|
828
908
|
activeBundle = {
|
|
829
909
|
table: nextTableName,
|
|
830
910
|
startCursor: nextState.rowCursor,
|
|
@@ -1092,6 +1172,7 @@ export async function pull<
|
|
|
1092
1172
|
pendingExternalChunkWrites,
|
|
1093
1173
|
4,
|
|
1094
1174
|
async (pending) => {
|
|
1175
|
+
const cacheLookupStartedAt = Date.now();
|
|
1095
1176
|
let chunkRef = await readSnapshotChunkRefByPageKey(db, {
|
|
1096
1177
|
partitionId: pending.cacheLookup.partitionId,
|
|
1097
1178
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -1102,6 +1183,10 @@ export async function pull<
|
|
|
1102
1183
|
encoding: SYNC_SNAPSHOT_CHUNK_ENCODING,
|
|
1103
1184
|
compression: SYNC_SNAPSHOT_CHUNK_COMPRESSION,
|
|
1104
1185
|
});
|
|
1186
|
+
bootstrapTimings.chunkCacheLookupMs += Math.max(
|
|
1187
|
+
0,
|
|
1188
|
+
Date.now() - cacheLookupStartedAt
|
|
1189
|
+
);
|
|
1105
1190
|
|
|
1106
1191
|
if (!chunkRef) {
|
|
1107
1192
|
if (chunkStorage.storeChunkStream) {
|
|
@@ -1109,9 +1194,14 @@ export async function pull<
|
|
|
1109
1194
|
stream: bodyStream,
|
|
1110
1195
|
byteLength,
|
|
1111
1196
|
sha256,
|
|
1197
|
+
gzipMs,
|
|
1198
|
+
hashMs,
|
|
1112
1199
|
} = await encodeCompressedSnapshotChunkToStream(
|
|
1113
1200
|
pending.rowFrameParts
|
|
1114
1201
|
);
|
|
1202
|
+
bootstrapTimings.chunkGzipMs += gzipMs;
|
|
1203
|
+
bootstrapTimings.chunkHashMs += hashMs;
|
|
1204
|
+
const chunkPersistStartedAt = Date.now();
|
|
1115
1205
|
chunkRef = await chunkStorage.storeChunkStream({
|
|
1116
1206
|
partitionId: pending.cacheLookup.partitionId,
|
|
1117
1207
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -1126,10 +1216,17 @@ export async function pull<
|
|
|
1126
1216
|
bodyStream,
|
|
1127
1217
|
expiresAt: pending.expiresAt,
|
|
1128
1218
|
});
|
|
1219
|
+
bootstrapTimings.chunkPersistMs += Math.max(
|
|
1220
|
+
0,
|
|
1221
|
+
Date.now() - chunkPersistStartedAt
|
|
1222
|
+
);
|
|
1129
1223
|
} else {
|
|
1130
1224
|
const encodedChunk = await encodeCompressedSnapshotChunk(
|
|
1131
1225
|
pending.rowFrameParts
|
|
1132
1226
|
);
|
|
1227
|
+
bootstrapTimings.chunkGzipMs += encodedChunk.gzipMs;
|
|
1228
|
+
bootstrapTimings.chunkHashMs += encodedChunk.hashMs;
|
|
1229
|
+
const chunkPersistStartedAt = Date.now();
|
|
1133
1230
|
chunkRef = await chunkStorage.storeChunk({
|
|
1134
1231
|
partitionId: pending.cacheLookup.partitionId,
|
|
1135
1232
|
scopeKey: pending.cacheLookup.scopeKey,
|
|
@@ -1143,6 +1240,10 @@ export async function pull<
|
|
|
1143
1240
|
body: encodedChunk.body,
|
|
1144
1241
|
expiresAt: pending.expiresAt,
|
|
1145
1242
|
});
|
|
1243
|
+
bootstrapTimings.chunkPersistMs += Math.max(
|
|
1244
|
+
0,
|
|
1245
|
+
Date.now() - chunkPersistStartedAt
|
|
1246
|
+
);
|
|
1146
1247
|
}
|
|
1147
1248
|
}
|
|
1148
1249
|
|
|
@@ -1160,6 +1261,14 @@ export async function pull<
|
|
|
1160
1261
|
span.setAttribute('commit_count', stats.commitCount);
|
|
1161
1262
|
span.setAttribute('change_count', stats.changeCount);
|
|
1162
1263
|
span.setAttribute('snapshot_page_count', stats.snapshotPageCount);
|
|
1264
|
+
span.setAttributes({
|
|
1265
|
+
bootstrap_snapshot_query_ms: bootstrapTimings.snapshotQueryMs,
|
|
1266
|
+
bootstrap_row_frame_encode_ms: bootstrapTimings.rowFrameEncodeMs,
|
|
1267
|
+
bootstrap_chunk_cache_lookup_ms: bootstrapTimings.chunkCacheLookupMs,
|
|
1268
|
+
bootstrap_chunk_gzip_ms: bootstrapTimings.chunkGzipMs,
|
|
1269
|
+
bootstrap_chunk_hash_ms: bootstrapTimings.chunkHashMs,
|
|
1270
|
+
bootstrap_chunk_persist_ms: bootstrapTimings.chunkPersistMs,
|
|
1271
|
+
});
|
|
1163
1272
|
span.setStatus('ok');
|
|
1164
1273
|
|
|
1165
1274
|
recordPullMetrics({
|
|
@@ -1169,7 +1278,10 @@ export async function pull<
|
|
|
1169
1278
|
stats,
|
|
1170
1279
|
});
|
|
1171
1280
|
|
|
1172
|
-
return
|
|
1281
|
+
return {
|
|
1282
|
+
...result,
|
|
1283
|
+
bootstrapTimings,
|
|
1284
|
+
};
|
|
1173
1285
|
} catch (error) {
|
|
1174
1286
|
const durationMs = Math.max(0, Date.now() - startedAtMs);
|
|
1175
1287
|
|