@powersync/service-core 0.0.0-dev-20260602073133 → 0.0.0-dev-20260803144812
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/CHANGELOG.md +83 -4
- package/dist/api/RouteAPI.d.ts +42 -14
- package/dist/api/diagnostics.d.ts +12 -1
- package/dist/api/diagnostics.js +34 -22
- package/dist/api/diagnostics.js.map +1 -1
- package/dist/entry/commands/compact-action.js +5 -1
- package/dist/entry/commands/compact-action.js.map +1 -1
- package/dist/modules/AbstractModule.d.ts +6 -2
- package/dist/modules/AbstractModule.js.map +1 -1
- package/dist/replication/AbstractReplicator.d.ts +26 -7
- package/dist/replication/AbstractReplicator.js +148 -68
- package/dist/replication/AbstractReplicator.js.map +1 -1
- package/dist/replication/ReplicationModule.d.ts +3 -3
- package/dist/replication/ReplicationModule.js.map +1 -1
- package/dist/routes/RouterEngine.d.ts +1 -0
- package/dist/routes/RouterEngine.js +6 -1
- package/dist/routes/RouterEngine.js.map +1 -1
- package/dist/routes/configure-fastify.d.ts +95 -56
- package/dist/routes/configure-fastify.js +15 -2
- package/dist/routes/configure-fastify.js.map +1 -1
- package/dist/routes/endpoints/admin.d.ts +24 -24
- package/dist/routes/endpoints/admin.js +46 -35
- package/dist/routes/endpoints/admin.js.map +1 -1
- package/dist/routes/endpoints/checkpointing.d.ts +62 -0
- package/dist/routes/endpoints/checkpointing.js +65 -7
- package/dist/routes/endpoints/checkpointing.js.map +1 -1
- package/dist/routes/endpoints/socket-route.js +3 -2
- package/dist/routes/endpoints/socket-route.js.map +1 -1
- package/dist/routes/endpoints/sync-rules.js +22 -13
- package/dist/routes/endpoints/sync-rules.js.map +1 -1
- package/dist/routes/endpoints/sync-stream.js +1 -1
- package/dist/routes/endpoints/sync-stream.js.map +1 -1
- package/dist/runner/teardown.js +8 -8
- package/dist/runner/teardown.js.map +1 -1
- package/dist/storage/BucketStorageBatch.d.ts +63 -17
- package/dist/storage/BucketStorageBatch.js.map +1 -1
- package/dist/storage/BucketStorageFactory.d.ts +22 -27
- package/dist/storage/BucketStorageFactory.js +4 -18
- package/dist/storage/BucketStorageFactory.js.map +1 -1
- package/dist/storage/CheckpointChecksumInvalidatedError.d.ts +12 -0
- package/dist/storage/CheckpointChecksumInvalidatedError.js +17 -0
- package/dist/storage/CheckpointChecksumInvalidatedError.js.map +1 -0
- package/dist/storage/ChecksumCache.d.ts +11 -6
- package/dist/storage/ChecksumCache.js +5 -4
- package/dist/storage/ChecksumCache.js.map +1 -1
- package/dist/storage/ParsedSyncConfigSet.d.ts +23 -0
- package/dist/storage/ParsedSyncConfigSet.js +2 -0
- package/dist/storage/ParsedSyncConfigSet.js.map +1 -0
- package/dist/storage/PersistedReplicationStream.d.ts +32 -0
- package/dist/storage/PersistedReplicationStream.js +26 -0
- package/dist/storage/PersistedReplicationStream.js.map +1 -0
- package/dist/storage/PersistedSyncConfigContent.d.ts +63 -0
- package/dist/storage/PersistedSyncConfigContent.js +125 -0
- package/dist/storage/PersistedSyncConfigContent.js.map +1 -0
- package/dist/storage/PersistedSyncConfigStatus.d.ts +13 -0
- package/dist/storage/PersistedSyncConfigStatus.js +2 -0
- package/dist/storage/PersistedSyncConfigStatus.js.map +1 -0
- package/dist/storage/SourceEntity.d.ts +6 -0
- package/dist/storage/SourceTable.d.ts +21 -3
- package/dist/storage/SourceTable.js +26 -3
- package/dist/storage/SourceTable.js.map +1 -1
- package/dist/storage/SyncRulesBucketStorage.d.ts +119 -21
- package/dist/storage/SyncRulesBucketStorage.js +3 -0
- package/dist/storage/SyncRulesBucketStorage.js.map +1 -1
- package/dist/storage/WriteCheckpointAPI.d.ts +60 -3
- package/dist/storage/WriteCheckpointAPI.js +33 -0
- package/dist/storage/WriteCheckpointAPI.js.map +1 -1
- package/dist/storage/implementation/BucketDefinitionMapping.d.ts +117 -0
- package/dist/storage/implementation/BucketDefinitionMapping.js +277 -0
- package/dist/storage/implementation/BucketDefinitionMapping.js.map +1 -0
- package/dist/storage/implementation/IncrementalReprocessingCompatibility.d.ts +6 -0
- package/dist/storage/implementation/IncrementalReprocessingCompatibility.js +31 -0
- package/dist/storage/implementation/IncrementalReprocessingCompatibility.js.map +1 -0
- package/dist/storage/implementation/IncrementalReprocessingSyncConfigLog.d.ts +17 -0
- package/dist/storage/implementation/IncrementalReprocessingSyncConfigLog.js +62 -0
- package/dist/storage/implementation/IncrementalReprocessingSyncConfigLog.js.map +1 -0
- package/dist/storage/implementation/ReplicationStreamStorageIds.d.ts +15 -0
- package/dist/storage/implementation/ReplicationStreamStorageIds.js +20 -0
- package/dist/storage/implementation/ReplicationStreamStorageIds.js.map +1 -0
- package/dist/storage/storage-index.d.ts +9 -1
- package/dist/storage/storage-index.js +9 -1
- package/dist/storage/storage-index.js.map +1 -1
- package/dist/sync/BucketChecksumState.d.ts +12 -2
- package/dist/sync/BucketChecksumState.js +69 -21
- package/dist/sync/BucketChecksumState.js.map +1 -1
- package/dist/sync/RequestTracker.d.ts +7 -0
- package/dist/sync/RequestTracker.js +12 -0
- package/dist/sync/RequestTracker.js.map +1 -1
- package/dist/sync/sync.js +154 -41
- package/dist/sync/sync.js.map +1 -1
- package/dist/sync/util.d.ts +5 -0
- package/dist/sync/util.js +9 -0
- package/dist/sync/util.js.map +1 -1
- package/dist/system/ServiceContext.d.ts +2 -0
- package/dist/system/ServiceContext.js +2 -0
- package/dist/system/ServiceContext.js.map +1 -1
- package/dist/tracing/PerformanceTracer.d.ts +23 -1
- package/dist/tracing/PerformanceTracer.js +11 -0
- package/dist/tracing/PerformanceTracer.js.map +1 -1
- package/dist/util/checkpointing.d.ts +4 -8
- package/dist/util/checkpointing.js +1 -16
- package/dist/util/checkpointing.js.map +1 -1
- package/dist/util/config/compound-config-collector.js +18 -2
- package/dist/util/config/compound-config-collector.js.map +1 -1
- package/dist/util/config/defaults.d.ts +2 -0
- package/dist/util/config/defaults.js +2 -0
- package/dist/util/config/defaults.js.map +1 -1
- package/dist/util/config/types.d.ts +3 -1
- package/dist/util/lsn.d.ts +4 -0
- package/dist/util/lsn.js +10 -0
- package/dist/util/lsn.js.map +1 -1
- package/dist/util/util-index.d.ts +1 -0
- package/dist/util/util-index.js +1 -0
- package/dist/util/util-index.js.map +1 -1
- package/dist/util/utils.d.ts +1 -1
- package/dist/util/utils.js +1 -1
- package/dist/util/write-checkpoint-batcher.d.ts +19 -0
- package/dist/util/write-checkpoint-batcher.js +100 -0
- package/dist/util/write-checkpoint-batcher.js.map +1 -0
- package/package.json +6 -7
- package/src/api/RouteAPI.ts +43 -14
- package/src/api/diagnostics.ts +43 -26
- package/src/entry/commands/compact-action.ts +7 -1
- package/src/modules/AbstractModule.ts +6 -2
- package/src/replication/AbstractReplicator.ts +181 -72
- package/src/replication/ReplicationModule.ts +2 -3
- package/src/routes/RouterEngine.ts +7 -1
- package/src/routes/configure-fastify.ts +25 -2
- package/src/routes/endpoints/admin.ts +72 -50
- package/src/routes/endpoints/checkpointing.ts +79 -8
- package/src/routes/endpoints/socket-route.ts +3 -2
- package/src/routes/endpoints/sync-rules.ts +23 -13
- package/src/routes/endpoints/sync-stream.ts +1 -1
- package/src/runner/teardown.ts +8 -8
- package/src/storage/BucketStorageBatch.ts +64 -18
- package/src/storage/BucketStorageFactory.ts +30 -39
- package/src/storage/CheckpointChecksumInvalidatedError.ts +17 -0
- package/src/storage/ChecksumCache.ts +27 -14
- package/src/storage/ParsedSyncConfigSet.ts +25 -0
- package/src/storage/PersistedReplicationStream.ts +55 -0
- package/src/storage/PersistedSyncConfigContent.ts +192 -0
- package/src/storage/PersistedSyncConfigStatus.ts +14 -0
- package/src/storage/SourceEntity.ts +6 -0
- package/src/storage/SourceTable.ts +34 -3
- package/src/storage/SyncRulesBucketStorage.ts +138 -22
- package/src/storage/WriteCheckpointAPI.ts +108 -3
- package/src/storage/implementation/BucketDefinitionMapping.ts +436 -0
- package/src/storage/implementation/IncrementalReprocessingCompatibility.ts +41 -0
- package/src/storage/implementation/IncrementalReprocessingSyncConfigLog.ts +109 -0
- package/src/storage/implementation/ReplicationStreamStorageIds.ts +21 -0
- package/src/storage/storage-index.ts +10 -1
- package/src/sync/BucketChecksumState.ts +103 -21
- package/src/sync/RequestTracker.ts +20 -0
- package/src/sync/sync.ts +183 -48
- package/src/sync/util.ts +12 -0
- package/src/system/ServiceContext.ts +7 -0
- package/src/tracing/PerformanceTracer.ts +41 -1
- package/src/util/checkpointing.ts +4 -22
- package/src/util/config/compound-config-collector.ts +25 -1
- package/src/util/config/defaults.ts +2 -0
- package/src/util/config/types.ts +3 -1
- package/src/util/lsn.ts +9 -0
- package/src/util/util-index.ts +1 -0
- package/src/util/utils.ts +1 -1
- package/src/util/write-checkpoint-batcher.ts +142 -0
- package/test/src/AbstractReplicator.test.ts +115 -0
- package/test/src/checksum_cache.test.ts +22 -0
- package/test/src/config.test.ts +102 -0
- package/test/src/diagnostics.test.ts +62 -34
- package/test/src/module-loader.test.ts +33 -1
- package/test/src/routes/admin.test.ts +182 -18
- package/test/src/routes/checkpointing.test.ts +54 -0
- package/test/src/routes/mocks.ts +6 -2
- package/test/src/storage/SourceTable.test.ts +89 -0
- package/test/src/sync/BucketChecksumState.test.ts +98 -12
- package/test/src/sync/util.test.ts +13 -1
- package/test/src/util/checkpointing.test.ts +249 -0
- package/tsconfig.json +1 -4
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/storage/PersistedSyncRulesContent.d.ts +0 -59
- package/dist/storage/PersistedSyncRulesContent.js +0 -100
- package/dist/storage/PersistedSyncRulesContent.js.map +0 -1
- package/src/storage/PersistedSyncRulesContent.ts +0 -174
package/dist/sync/sync.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { JSONBig, JsonContainer } from '@powersync/service-jsonbig';
|
|
2
|
-
import
|
|
2
|
+
import * as storage from '../storage/storage-index.js';
|
|
3
3
|
import * as util from '../util/util-index.js';
|
|
4
4
|
import { logger as defaultLogger } from '@powersync/lib-services-framework';
|
|
5
|
+
import { isBatchEnd } from '../storage/storage-index.js';
|
|
5
6
|
import { mergeAsyncIterables } from '../streams/streams-index.js';
|
|
7
|
+
import { PerformanceTracer } from '../tracing/PerformanceTracer.js';
|
|
6
8
|
import { BucketChecksumState } from './BucketChecksumState.js';
|
|
7
9
|
import { statsForBatch } from './RequestTracker.js';
|
|
8
|
-
import { acquireSemaphoreAbortable, settledPromise, tokenStream } from './util.js';
|
|
10
|
+
import { acquireSemaphoreAbortable, isAbortError, settledPromise, tokenStream } from './util.js';
|
|
9
11
|
export async function* streamResponse(options) {
|
|
10
12
|
const { syncContext, bucketStorage, syncRules, params, token, tokenStreamOptions, tracker, signal, isEncodingAsBson } = options;
|
|
11
13
|
const logger = options.logger ?? defaultLogger;
|
|
@@ -27,7 +29,7 @@ export async function* streamResponse(options) {
|
|
|
27
29
|
yield* merged;
|
|
28
30
|
}
|
|
29
31
|
catch (e) {
|
|
30
|
-
if (e
|
|
32
|
+
if (isAbortError(e)) {
|
|
31
33
|
return;
|
|
32
34
|
}
|
|
33
35
|
else {
|
|
@@ -60,8 +62,37 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
60
62
|
if (next.done) {
|
|
61
63
|
return { done: true, value: undefined };
|
|
62
64
|
}
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
+
const cp = next.value.base;
|
|
66
|
+
const tracer = new PerformanceTracer(`sync checkpoint ${cp.checkpoint}`);
|
|
67
|
+
const trace = {
|
|
68
|
+
tracer,
|
|
69
|
+
span: tracer.span('checkpoint')
|
|
70
|
+
};
|
|
71
|
+
try {
|
|
72
|
+
const line = await checksumState.buildNextCheckpointLine(next.value, trace.tracer);
|
|
73
|
+
return { done: false, value: { checkpoint: cp, line, trace: line == null ? null : trace } };
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
if (e instanceof storage.CheckpointChecksumInvalidatedError) {
|
|
77
|
+
// The checksum was not usable, so buildNextCheckpointLine has not advanced
|
|
78
|
+
// the connection state. Drop this candidate and wait for a checkpoint that
|
|
79
|
+
// is not split by a compaction-produced bucket-data document.
|
|
80
|
+
// This is different from other checkpoint_invalidated cases in that we hit
|
|
81
|
+
// this during checksum calculation, instead of on data read.
|
|
82
|
+
trace.span.end();
|
|
83
|
+
checksumState.invalidateChecksumBaseline();
|
|
84
|
+
logger.info(`checkpoint_invalidated: ${cp.checkpoint}`, {
|
|
85
|
+
reason: 'compacted_before_checkpoint_line',
|
|
86
|
+
bucket: e.bucket,
|
|
87
|
+
checkpoint: cp.checkpoint,
|
|
88
|
+
user_id: tokenPayload.userIdJson
|
|
89
|
+
});
|
|
90
|
+
return { done: false, value: { checkpoint: cp, line: null, trace: null } };
|
|
91
|
+
}
|
|
92
|
+
// Only end the span if we error. If we return normally, we pass ownership on to the caller.
|
|
93
|
+
trace.span.end();
|
|
94
|
+
throw e;
|
|
95
|
+
}
|
|
65
96
|
}
|
|
66
97
|
try {
|
|
67
98
|
let nextCheckpointPromise;
|
|
@@ -84,16 +115,23 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
84
115
|
// No update to sync
|
|
85
116
|
continue;
|
|
86
117
|
}
|
|
87
|
-
const
|
|
118
|
+
const trace = next.value.value.trace;
|
|
119
|
+
const checkpoint = next.value.value.checkpoint;
|
|
120
|
+
const tracer = trace.tracer;
|
|
121
|
+
const { checkpointLine, bucketsToFetch, bucketDataRequestHint } = line;
|
|
88
122
|
// Since yielding can block, we update the state just before yielding the line.
|
|
89
123
|
line.advance();
|
|
90
|
-
|
|
124
|
+
{
|
|
125
|
+
using _ = tracer.span('sending', 'checkpoint');
|
|
126
|
+
yield checkpointLine;
|
|
127
|
+
}
|
|
91
128
|
// Start syncing data for buckets up to the checkpoint. As soon as we have completed at least one priority and
|
|
92
129
|
// at least 1000 operations, we also start listening for new checkpoints concurrently. When a new checkpoint comes
|
|
93
130
|
// in while we're still busy syncing data for lower priorities, interrupt the current operation and start syncing
|
|
94
131
|
// the new checkpoint.
|
|
95
132
|
const abortCheckpointController = new AbortController();
|
|
96
133
|
let syncedOperations = 0;
|
|
134
|
+
let checkpointResult = null;
|
|
97
135
|
const abortCheckpointSignal = AbortSignal.any([abortCheckpointController.signal, signal]);
|
|
98
136
|
const bucketsByPriority = [...Map.groupBy(bucketsToFetch, (bucket) => bucket.priority).entries()];
|
|
99
137
|
bucketsByPriority.sort((a, b) => a[0] - b[0]); // Sort from high to lower priorities
|
|
@@ -112,6 +150,12 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
112
150
|
while (true) {
|
|
113
151
|
const next = await settledPromise(waitForNewCheckpointLine());
|
|
114
152
|
if (next.status == 'rejected') {
|
|
153
|
+
if (isAbortError(next.reason)) {
|
|
154
|
+
checkpointResult = { result: 'invalidated', invalidationReason: 'checkpoint_cancelled' };
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
checkpointResult = { result: 'invalidated', invalidationReason: 'checkpoint_error' };
|
|
158
|
+
}
|
|
115
159
|
abortCheckpointController.abort();
|
|
116
160
|
}
|
|
117
161
|
else if (!next.value.done) {
|
|
@@ -122,6 +166,7 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
122
166
|
}
|
|
123
167
|
// A new sync line can be emitted. Stop running the bucketDataInBatches() iterations, making the
|
|
124
168
|
// main flow reach the new checkpoint.
|
|
169
|
+
checkpointResult = { result: 'invalidated', invalidationReason: 'checkpoint_superseded' };
|
|
125
170
|
abortCheckpointController.abort();
|
|
126
171
|
}
|
|
127
172
|
return next;
|
|
@@ -134,6 +179,13 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
134
179
|
tracker.addOperationsSynced(stats);
|
|
135
180
|
maybeRaceForNewCheckpoint();
|
|
136
181
|
}
|
|
182
|
+
function checkpointLogDetails(cp) {
|
|
183
|
+
return {
|
|
184
|
+
checkpoint: cp.checkpoint,
|
|
185
|
+
user_id: tokenPayload.userIdJson,
|
|
186
|
+
...tracker.getIncrementalCheckpointStats()
|
|
187
|
+
};
|
|
188
|
+
}
|
|
137
189
|
// This incrementally updates dataBuckets with each individual bucket position.
|
|
138
190
|
// At the end of this, we can be sure that all buckets have data up to the checkpoint.
|
|
139
191
|
for (const [priority, buckets] of priorityBatches) {
|
|
@@ -141,11 +193,12 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
141
193
|
if (abortCheckpointSignal.aborted) {
|
|
142
194
|
break;
|
|
143
195
|
}
|
|
144
|
-
yield* bucketDataInBatches({
|
|
196
|
+
const batchResult = yield* bucketDataInBatches({
|
|
145
197
|
syncContext: syncContext,
|
|
146
198
|
bucketStorage: bucketStorage,
|
|
147
|
-
checkpoint
|
|
199
|
+
checkpoint,
|
|
148
200
|
bucketsToFetch: buckets,
|
|
201
|
+
requestHint: bucketDataRequestHint,
|
|
149
202
|
checkpointLine: line,
|
|
150
203
|
legacyDataLines: !isEncodingAsBson && params.raw_data != true,
|
|
151
204
|
onRowsSent: markOperationsSent,
|
|
@@ -155,7 +208,36 @@ async function* streamResponseInner(syncContext, bucketStorage, syncRules, param
|
|
|
155
208
|
// Passing null here will emit a full sync complete message at the end. If we pass a priority, we'll emit a partial
|
|
156
209
|
// sync complete message instead.
|
|
157
210
|
forPriority: !isLast ? priority : null,
|
|
158
|
-
logger
|
|
211
|
+
logger,
|
|
212
|
+
tracer
|
|
213
|
+
});
|
|
214
|
+
if (batchResult?.result == 'partial_checkpoint_complete') {
|
|
215
|
+
// We don't specifically include timing details here, since that would end the span.
|
|
216
|
+
// Timings are included in the checkpoint_complete following this.
|
|
217
|
+
logger.info(`partial_checkpoint_complete: ${checkpoint.checkpoint}`, {
|
|
218
|
+
priority,
|
|
219
|
+
...checkpointLogDetails(checkpoint)
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
else if (batchResult?.result != null) {
|
|
223
|
+
checkpointResult = batchResult;
|
|
224
|
+
break;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
if (checkpointResult?.result == 'checkpoint_complete') {
|
|
228
|
+
logger.info(`checkpoint_complete: ${checkpoint.checkpoint}`, {
|
|
229
|
+
// Incremental stats since the last checkpoint_complete, partial_checkpoint_complete or checkpoint_invalidated
|
|
230
|
+
...checkpointLogDetails(checkpoint),
|
|
231
|
+
// Timings since the last checkpoint or checkpoint_diff
|
|
232
|
+
ms: getCheckpointTraceTimings(trace.span)
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
else if (checkpointResult?.result == 'invalidated') {
|
|
236
|
+
// A new checkpoint and checkpoint_complete should follow soon, but we log the stats already
|
|
237
|
+
logger.info(`checkpoint_invalidated: ${checkpoint.checkpoint}`, {
|
|
238
|
+
reason: checkpointResult.invalidationReason,
|
|
239
|
+
...checkpointLogDetails(checkpoint),
|
|
240
|
+
ms: getCheckpointTraceTimings(trace.span)
|
|
159
241
|
});
|
|
160
242
|
}
|
|
161
243
|
if (!abortCheckpointSignal.aborted) {
|
|
@@ -184,10 +266,14 @@ async function* bucketDataInBatches(request) {
|
|
|
184
266
|
while (true) {
|
|
185
267
|
const { value, done: iterDone } = await iter.next();
|
|
186
268
|
if (iterDone) {
|
|
269
|
+
if (value != null) {
|
|
270
|
+
return value;
|
|
271
|
+
}
|
|
187
272
|
break;
|
|
188
273
|
}
|
|
189
274
|
else {
|
|
190
275
|
const { done, data } = value;
|
|
276
|
+
using _ = request.tracer.span('sending', 'data');
|
|
191
277
|
yield data;
|
|
192
278
|
if (done) {
|
|
193
279
|
isDone = true;
|
|
@@ -196,50 +282,64 @@ async function* bucketDataInBatches(request) {
|
|
|
196
282
|
}
|
|
197
283
|
}
|
|
198
284
|
finally {
|
|
199
|
-
await iter.return();
|
|
285
|
+
await iter.return(null);
|
|
200
286
|
}
|
|
201
287
|
}
|
|
288
|
+
return null;
|
|
202
289
|
}
|
|
203
290
|
/**
|
|
204
291
|
* Extracted as a separate internal function just to avoid memory leaks.
|
|
205
292
|
*/
|
|
206
293
|
async function* bucketDataBatch(request) {
|
|
207
|
-
const { syncContext, bucketStorage: storage, checkpoint, bucketsToFetch, checkpointLine, legacyDataLines, abort_connection, abort_batch, onRowsSent, logger } = request;
|
|
294
|
+
const { syncContext, bucketStorage: storage, checkpoint, requestHint, bucketsToFetch, checkpointLine, legacyDataLines, abort_connection, abort_batch, onRowsSent, logger } = request;
|
|
295
|
+
const tracer = request.tracer;
|
|
208
296
|
let checkpointInvalidated = false;
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
}
|
|
212
|
-
const acquired = await acquireSemaphoreAbortable(syncContext.syncSemaphore, AbortSignal.any([abort_batch]));
|
|
297
|
+
const acquired = await tracer.span('acquiring_lock').with(async () => {
|
|
298
|
+
return acquireSemaphoreAbortable(syncContext.syncSemaphore, AbortSignal.any([abort_batch]));
|
|
299
|
+
});
|
|
213
300
|
if (acquired === 'aborted') {
|
|
214
|
-
return;
|
|
301
|
+
return null;
|
|
215
302
|
}
|
|
216
|
-
const [
|
|
303
|
+
const [, release] = acquired;
|
|
217
304
|
try {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
// concurrency limit.
|
|
221
|
-
logger.info(`Got sync lock. Slots available: ${value - 1}`, {
|
|
222
|
-
user_id: request.userIdForLogs,
|
|
223
|
-
sync_data_slots: value - 1
|
|
224
|
-
});
|
|
225
|
-
}
|
|
305
|
+
using _ = tracer.span('bucket_data');
|
|
306
|
+
let has_more = false;
|
|
226
307
|
// Optimization: Only fetch buckets for which the checksums have changed since the last checkpoint
|
|
227
308
|
// For the first batch, this will be all buckets.
|
|
228
309
|
const filteredBuckets = checkpointLine.getFilteredBucketPositions(bucketsToFetch);
|
|
229
|
-
const dataBatches = storage.getBucketDataBatch(checkpoint, filteredBuckets
|
|
230
|
-
|
|
231
|
-
|
|
310
|
+
const dataBatches = storage.getBucketDataBatch(checkpoint, filteredBuckets, {
|
|
311
|
+
requestHint,
|
|
312
|
+
// Checkpoint supersession is a cooperative batch handoff. Only abort
|
|
313
|
+
// in-flight storage work when the connection itself is closed.
|
|
314
|
+
signal: abort_connection
|
|
315
|
+
});
|
|
316
|
+
for await (let chunk of dataBatches) {
|
|
232
317
|
// Abort in current batch if the connection is closed
|
|
233
318
|
if (abort_connection.aborted) {
|
|
234
|
-
return;
|
|
319
|
+
return null;
|
|
235
320
|
}
|
|
321
|
+
if (isBatchEnd(chunk)) {
|
|
322
|
+
// This replaces any other has_more value, since the batch end is the last chunk.
|
|
323
|
+
has_more = chunk.hasMore;
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
const { chunkData: r, targetOp } = chunk;
|
|
236
327
|
if (r.has_more) {
|
|
237
328
|
has_more = true;
|
|
238
329
|
}
|
|
239
|
-
if (targetOp != null && targetOp > checkpoint) {
|
|
330
|
+
if (targetOp != null && targetOp > checkpoint.checkpoint) {
|
|
240
331
|
checkpointInvalidated = true;
|
|
241
332
|
}
|
|
242
333
|
if (r.data.length == 0) {
|
|
334
|
+
// An empty chunk is not sent to the client, but may still report progress:
|
|
335
|
+
// storage can emit an empty chunk for a bucket that has no operations in the
|
|
336
|
+
// requested range, and its position must advance so the bucket is not
|
|
337
|
+
// re-requested indefinitely.
|
|
338
|
+
checkpointLine.updateBucketPosition({
|
|
339
|
+
bucket: r.bucket,
|
|
340
|
+
nextAfter: BigInt(r.next_after),
|
|
341
|
+
hasMore: r.has_more
|
|
342
|
+
});
|
|
243
343
|
continue;
|
|
244
344
|
}
|
|
245
345
|
logger.debug(`Sending data for ${r.bucket}`);
|
|
@@ -260,7 +360,7 @@ async function* bucketDataBatch(request) {
|
|
|
260
360
|
// Check if syncing bucket data is supposed to stop before fetching more data
|
|
261
361
|
// from storage.
|
|
262
362
|
if (abort_batch.aborted) {
|
|
263
|
-
return;
|
|
363
|
+
return null;
|
|
264
364
|
}
|
|
265
365
|
}
|
|
266
366
|
if (!has_more) {
|
|
@@ -269,38 +369,51 @@ async function* bucketDataBatch(request) {
|
|
|
269
369
|
// Don't send the checkpoint_complete line in this case.
|
|
270
370
|
// More data should be available immediately for a new checkpoint.
|
|
271
371
|
yield { data: null, done: true };
|
|
372
|
+
return { result: 'invalidated', invalidationReason: 'compacted' };
|
|
272
373
|
}
|
|
273
374
|
else {
|
|
274
375
|
if (request.forPriority != null) {
|
|
275
376
|
const line = {
|
|
276
377
|
partial_checkpoint_complete: {
|
|
277
|
-
last_op_id: util.internalToExternalOpId(checkpoint),
|
|
378
|
+
last_op_id: util.internalToExternalOpId(checkpoint.checkpoint),
|
|
278
379
|
priority: request.forPriority
|
|
279
380
|
}
|
|
280
381
|
};
|
|
281
382
|
yield { data: line, done: true };
|
|
383
|
+
return { result: 'partial_checkpoint_complete' };
|
|
282
384
|
}
|
|
283
385
|
else {
|
|
284
386
|
const line = {
|
|
285
387
|
checkpoint_complete: {
|
|
286
|
-
last_op_id: util.internalToExternalOpId(checkpoint)
|
|
388
|
+
last_op_id: util.internalToExternalOpId(checkpoint.checkpoint)
|
|
287
389
|
}
|
|
288
390
|
};
|
|
289
391
|
yield { data: line, done: true };
|
|
392
|
+
return { result: 'checkpoint_complete' };
|
|
290
393
|
}
|
|
291
394
|
}
|
|
292
395
|
}
|
|
293
396
|
}
|
|
294
397
|
finally {
|
|
295
|
-
if (value <= 3) {
|
|
296
|
-
// This can be noisy, so we only log when we get close to the
|
|
297
|
-
// concurrency limit.
|
|
298
|
-
logger.info(`Releasing sync lock`, {
|
|
299
|
-
user_id: request.userIdForLogs
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
398
|
release();
|
|
303
399
|
}
|
|
400
|
+
return null;
|
|
401
|
+
}
|
|
402
|
+
function getCheckpointTraceTimings(span) {
|
|
403
|
+
const timings = span.end();
|
|
404
|
+
const result = {};
|
|
405
|
+
for (let key in timings) {
|
|
406
|
+
addTiming(result, key, timings[key]);
|
|
407
|
+
}
|
|
408
|
+
addTiming(result, 'other', span.selfDuration);
|
|
409
|
+
addTiming(result, 'total', span.endAt - span.startAt);
|
|
410
|
+
return result;
|
|
411
|
+
}
|
|
412
|
+
function addTiming(timings, key, durationMicros) {
|
|
413
|
+
const ms = Math.round(durationMicros / 1000);
|
|
414
|
+
if (ms > 0) {
|
|
415
|
+
timings[key] = (timings[key] ?? 0) + ms;
|
|
416
|
+
}
|
|
304
417
|
}
|
|
305
418
|
function transformLegacyResponse(bucketData) {
|
|
306
419
|
return {
|
package/dist/sync/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/sync/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/sync/util.d.ts
CHANGED
|
@@ -11,6 +11,11 @@ export type TokenStreamOptions = {
|
|
|
11
11
|
*/
|
|
12
12
|
expire_warning_period: number;
|
|
13
13
|
};
|
|
14
|
+
/**
|
|
15
|
+
* Recognize both ix's AbortError and native abort errors, which Node represents
|
|
16
|
+
* as DOMExceptions with the name "AbortError".
|
|
17
|
+
*/
|
|
18
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
14
19
|
/**
|
|
15
20
|
* An iterator that periodically yields token and optionally keepalive events, and returns once the
|
|
16
21
|
* provided token expiry is reached.
|
package/dist/sync/util.js
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
import * as timers from 'timers/promises';
|
|
2
2
|
import { serialize } from 'bson';
|
|
3
|
+
import { AbortError } from 'ix/aborterror.js';
|
|
3
4
|
const KEEPALIVE_INTERVAL = 20_000;
|
|
4
5
|
const DEFAULT_TOKEN_STREAM_OPTIONS = {
|
|
5
6
|
keep_alive: true,
|
|
6
7
|
expire_warning_period: 20_000
|
|
7
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Recognize both ix's AbortError and native abort errors, which Node represents
|
|
11
|
+
* as DOMExceptions with the name "AbortError".
|
|
12
|
+
*/
|
|
13
|
+
export function isAbortError(error) {
|
|
14
|
+
return (error instanceof AbortError ||
|
|
15
|
+
(typeof error == 'object' && error != null && 'name' in error && error.name === 'AbortError'));
|
|
16
|
+
}
|
|
8
17
|
/**
|
|
9
18
|
* An iterator that periodically yields token and optionally keepalive events, and returns once the
|
|
10
19
|
* provided token expiry is reached.
|
package/dist/sync/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/sync/util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAG1C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/sync/util.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ export interface ServiceContext {
|
|
|
16
16
|
storageEngine: storage.StorageEngine;
|
|
17
17
|
migrations: PowerSyncMigrationManager;
|
|
18
18
|
syncContext: SyncContext;
|
|
19
|
+
writeCheckpointBatcher: utils.WriteCheckpointBatcher;
|
|
19
20
|
serviceMode: ServiceContextMode;
|
|
20
21
|
eventsEngine: EventsEngine;
|
|
21
22
|
}
|
|
@@ -44,6 +45,7 @@ export declare class ServiceContextContainer implements ServiceContext {
|
|
|
44
45
|
eventsEngine: EventsEngine;
|
|
45
46
|
syncContext: SyncContext;
|
|
46
47
|
routerEngine: routes.RouterEngine;
|
|
48
|
+
writeCheckpointBatcher: utils.WriteCheckpointBatcher;
|
|
47
49
|
serviceMode: ServiceContextMode;
|
|
48
50
|
constructor(options: ServiceContextOptions);
|
|
49
51
|
get replicationEngine(): replication.ReplicationEngine | null;
|
|
@@ -29,6 +29,7 @@ export class ServiceContextContainer {
|
|
|
29
29
|
eventsEngine;
|
|
30
30
|
syncContext;
|
|
31
31
|
routerEngine;
|
|
32
|
+
writeCheckpointBatcher;
|
|
32
33
|
serviceMode;
|
|
33
34
|
constructor(options) {
|
|
34
35
|
this.serviceMode = options.serviceMode;
|
|
@@ -56,6 +57,7 @@ export class ServiceContextContainer {
|
|
|
56
57
|
this.lifeCycleEngine.withLifecycle(this.routerEngine, {
|
|
57
58
|
stop: (routerEngine) => routerEngine.shutDown()
|
|
58
59
|
});
|
|
60
|
+
this.writeCheckpointBatcher = new utils.WriteCheckpointBatcher(() => this.routerEngine.getAPI(), () => this.storageEngine.activeBucketStorage);
|
|
59
61
|
this.syncContext = new SyncContext({
|
|
60
62
|
maxDataFetchConcurrency: configuration.api_parameters.max_data_fetch_concurrency,
|
|
61
63
|
maxBuckets: configuration.api_parameters.max_buckets_per_connection,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServiceContext.js","sourceRoot":"","sources":["../../src/system/ServiceContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAqB,MAAM,mCAAmC,CAAC;AAErH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AAEvD,OAAO,KAAK,WAAW,MAAM,qCAAqC,CAAC;AACnE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,OAAO,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ServiceContext.js","sourceRoot":"","sources":["../../src/system/ServiceContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,41 @@
|
|
|
1
1
|
export interface Span extends Disposable {
|
|
2
2
|
name: string;
|
|
3
|
+
/**
|
|
4
|
+
* Start time in microseconds since an arbitrary epoch.
|
|
5
|
+
*/
|
|
3
6
|
startAt: number;
|
|
7
|
+
/**
|
|
8
|
+
* End time in microseconds since an arbitrary epoch.
|
|
9
|
+
*
|
|
10
|
+
* 0 if the span hasn't ended yet.
|
|
11
|
+
*/
|
|
4
12
|
endAt: number;
|
|
13
|
+
/**
|
|
14
|
+
* Time spent not in nested spans, in microseconds.
|
|
15
|
+
*/
|
|
5
16
|
selfDuration: number;
|
|
6
17
|
nestedSince: number | undefined;
|
|
7
18
|
subtrackFromSelf: number;
|
|
19
|
+
/**
|
|
20
|
+
* Durations spent in nested spans, in microseconds.
|
|
21
|
+
*/
|
|
8
22
|
nestedDurations: Record<string, number>;
|
|
23
|
+
/**
|
|
24
|
+
* Total duration of this span in milliseconds, rounded up. Only valid after the span has ended.
|
|
25
|
+
*/
|
|
26
|
+
durationMillis: number;
|
|
9
27
|
/**
|
|
10
28
|
* End the span - same as [Symbol.dispose]().
|
|
11
29
|
*
|
|
12
30
|
* Safe to call multiple times. Any nested spans will automatically end as well.
|
|
13
31
|
*
|
|
14
|
-
* Returns an aggregate record of category -> "selfDuration".
|
|
32
|
+
* Returns an aggregate record of category -> "selfDuration", in microseconds.
|
|
15
33
|
*/
|
|
16
34
|
end(): Record<string, number>;
|
|
35
|
+
/**
|
|
36
|
+
* Call a nested function, then end the span, returning the function's result.
|
|
37
|
+
*/
|
|
38
|
+
with<T>(cb: () => Promise<T>): Promise<T>;
|
|
17
39
|
}
|
|
18
40
|
/**
|
|
19
41
|
* Lightweight tracing helper, with two main goals:
|
|
@@ -91,8 +91,19 @@ export class PerformanceTracer {
|
|
|
91
91
|
}
|
|
92
92
|
return this.nestedDurations;
|
|
93
93
|
},
|
|
94
|
+
get durationMillis() {
|
|
95
|
+
return Math.ceil((this.endAt - this.startAt) / 1000);
|
|
96
|
+
},
|
|
94
97
|
[Symbol.dispose]() {
|
|
95
98
|
this.end();
|
|
99
|
+
},
|
|
100
|
+
async with(cb) {
|
|
101
|
+
try {
|
|
102
|
+
return await cb();
|
|
103
|
+
}
|
|
104
|
+
finally {
|
|
105
|
+
this.end();
|
|
106
|
+
}
|
|
96
107
|
}
|
|
97
108
|
};
|
|
98
109
|
this.stack.push(s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PerformanceTracer.js","sourceRoot":"","sources":["../../src/tracing/PerformanceTracer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"PerformanceTracer.js","sourceRoot":"","sources":["../../src/tracing/PerformanceTracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BucketStorageFactory } from '../storage/storage-index.js';
|
|
1
|
+
import { WriteCheckpointBatcher } from './write-checkpoint-batcher.js';
|
|
3
2
|
export interface CreateWriteCheckpointOptions {
|
|
4
3
|
userId: string | undefined;
|
|
5
4
|
clientId: string | undefined;
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
checkpointRequestId?: bigint;
|
|
6
|
+
batcher: WriteCheckpointBatcher;
|
|
8
7
|
}
|
|
9
|
-
export declare function createWriteCheckpoint(options: CreateWriteCheckpointOptions): Promise<
|
|
10
|
-
writeCheckpoint: string;
|
|
11
|
-
replicationHead: string;
|
|
12
|
-
}>;
|
|
8
|
+
export declare function createWriteCheckpoint(options: CreateWriteCheckpointOptions): Promise<import("./write-checkpoint-batcher.js").CreateWriteCheckpointResult>;
|
|
13
9
|
export declare function checkpointUserId(user_id: string | undefined, client_id: string | undefined): string;
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
import { ErrorCode, ServiceError } from '@powersync/lib-services-framework';
|
|
2
1
|
export async function createWriteCheckpoint(options) {
|
|
3
2
|
const full_user_id = checkpointUserId(options.userId, options.clientId);
|
|
4
|
-
|
|
5
|
-
if (!syncBucketStorage) {
|
|
6
|
-
throw new ServiceError(ErrorCode.PSYNC_S2302, `Cannot create Write Checkpoint since no sync config is active.`);
|
|
7
|
-
}
|
|
8
|
-
const { writeCheckpoint, currentCheckpoint } = await options.api.createReplicationHead(async (currentCheckpoint) => {
|
|
9
|
-
const writeCheckpoint = await syncBucketStorage.createManagedWriteCheckpoint({
|
|
10
|
-
user_id: full_user_id,
|
|
11
|
-
heads: { '1': currentCheckpoint }
|
|
12
|
-
});
|
|
13
|
-
return { writeCheckpoint, currentCheckpoint };
|
|
14
|
-
});
|
|
15
|
-
return {
|
|
16
|
-
writeCheckpoint: String(writeCheckpoint),
|
|
17
|
-
replicationHead: currentCheckpoint
|
|
18
|
-
};
|
|
3
|
+
return options.batcher.enqueue(full_user_id, options.checkpointRequestId);
|
|
19
4
|
}
|
|
20
5
|
export function checkpointUserId(user_id, client_id) {
|
|
21
6
|
if (user_id == null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpointing.js","sourceRoot":"","sources":["../../src/util/checkpointing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"checkpointing.js","sourceRoot":"","sources":["../../src/util/checkpointing.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,OAAqC;IAC/E,MAAM,YAAY,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAExE,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAA2B,EAAE,SAA6B;IACzF,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,OAAO,GAAG,OAAO,IAAI,SAAS,EAAE,CAAC;AACnC,CAAC"}
|