@powersync/service-module-mongodb-storage 0.23.1 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +201 -67
  3. package/dist/storage/MongoBucketStorage.d.ts +1 -0
  4. package/dist/storage/MongoBucketStorage.js +3 -0
  5. package/dist/storage/MongoBucketStorage.js.map +1 -1
  6. package/dist/storage/implementation/MongoBucketBatch.d.ts +60 -39
  7. package/dist/storage/implementation/MongoBucketBatch.js +123 -296
  8. package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
  9. package/dist/storage/implementation/MongoOpIdAllocator.d.ts +6 -1
  10. package/dist/storage/implementation/MongoOpIdAllocator.js +12 -5
  11. package/dist/storage/implementation/MongoOpIdAllocator.js.map +1 -1
  12. package/dist/storage/implementation/MongoParsedSyncConfigSet.d.ts +7 -0
  13. package/dist/storage/implementation/MongoParsedSyncConfigSet.js +28 -2
  14. package/dist/storage/implementation/MongoParsedSyncConfigSet.js.map +1 -1
  15. package/dist/storage/implementation/MongoReplicationOptions.d.ts +27 -0
  16. package/dist/storage/implementation/MongoReplicationOptions.js +26 -0
  17. package/dist/storage/implementation/MongoReplicationOptions.js.map +1 -0
  18. package/dist/storage/implementation/MongoSyncBucketStorage.js +2 -3
  19. package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
  20. package/dist/storage/implementation/MongoSyncRulesLock.d.ts +15 -2
  21. package/dist/storage/implementation/MongoSyncRulesLock.js +36 -14
  22. package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
  23. package/dist/storage/implementation/common/BatchOperationBuffer.d.ts +79 -0
  24. package/dist/storage/implementation/common/BatchOperationBuffer.js +286 -0
  25. package/dist/storage/implementation/common/BatchOperationBuffer.js.map +1 -0
  26. package/dist/storage/implementation/common/PersistedBatch.d.ts +10 -103
  27. package/dist/storage/implementation/common/PersistedBatch.js +1 -291
  28. package/dist/storage/implementation/common/PersistedBatch.js.map +1 -1
  29. package/dist/storage/implementation/common/PreparedPublication.d.ts +43 -0
  30. package/dist/storage/implementation/common/PreparedPublication.js +2 -0
  31. package/dist/storage/implementation/common/PreparedPublication.js.map +1 -0
  32. package/dist/storage/implementation/common/SourceRecordStore.d.ts +0 -2
  33. package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +17 -13
  34. package/dist/storage/implementation/v1/MongoBucketBatchV1.js +259 -18
  35. package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -1
  36. package/dist/storage/implementation/v1/PersistedBatchV1.d.ts +21 -15
  37. package/dist/storage/implementation/v1/PersistedBatchV1.js +58 -24
  38. package/dist/storage/implementation/v1/PersistedBatchV1.js.map +1 -1
  39. package/dist/storage/implementation/v1/SourceRecordStoreV1.d.ts +0 -2
  40. package/dist/storage/implementation/v1/SourceRecordStoreV1.js +0 -3
  41. package/dist/storage/implementation/v1/SourceRecordStoreV1.js.map +1 -1
  42. package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +25 -14
  43. package/dist/storage/implementation/v3/MongoBucketBatchV3.js +350 -23
  44. package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -1
  45. package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +1 -0
  46. package/dist/storage/implementation/v3/MongoCompactorV3.js +10 -4
  47. package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -1
  48. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +39 -28
  49. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -1
  50. package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +46 -24
  51. package/dist/storage/implementation/v3/PersistedBatchV3.js +159 -83
  52. package/dist/storage/implementation/v3/PersistedBatchV3.js.map +1 -1
  53. package/dist/storage/implementation/v3/SourceRecordStoreV3.d.ts +12 -0
  54. package/dist/storage/implementation/v3/SourceRecordStoreV3.js +41 -13
  55. package/dist/storage/implementation/v3/SourceRecordStoreV3.js.map +1 -1
  56. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.d.ts +4 -0
  57. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js +4 -0
  58. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js.map +1 -1
  59. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.d.ts +27 -2
  60. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js +61 -5
  61. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js.map +1 -1
  62. package/package.json +9 -10
  63. package/src/storage/MongoBucketStorage.ts +4 -0
  64. package/src/storage/implementation/MongoBucketBatch.ts +185 -392
  65. package/src/storage/implementation/MongoOpIdAllocator.ts +12 -5
  66. package/src/storage/implementation/MongoParsedSyncConfigSet.ts +40 -1
  67. package/src/storage/implementation/MongoReplicationOptions.ts +28 -0
  68. package/src/storage/implementation/MongoSyncBucketStorage.ts +2 -3
  69. package/src/storage/implementation/MongoSyncRulesLock.ts +39 -17
  70. package/src/storage/implementation/common/BatchOperationBuffer.ts +353 -0
  71. package/src/storage/implementation/common/PersistedBatch.ts +12 -390
  72. package/src/storage/implementation/common/PreparedPublication.ts +49 -0
  73. package/src/storage/implementation/common/SourceRecordStore.ts +0 -2
  74. package/src/storage/implementation/v1/MongoBucketBatchV1.ts +339 -27
  75. package/src/storage/implementation/v1/PersistedBatchV1.ts +74 -32
  76. package/src/storage/implementation/v1/SourceRecordStoreV1.ts +0 -5
  77. package/src/storage/implementation/v3/MongoBucketBatchV3.ts +430 -32
  78. package/src/storage/implementation/v3/MongoCompactorV3.ts +13 -4
  79. package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +43 -29
  80. package/src/storage/implementation/v3/PersistedBatchV3.ts +209 -108
  81. package/src/storage/implementation/v3/SourceRecordStoreV3.ts +45 -15
  82. package/src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts +9 -0
  83. package/src/storage/implementation/v3/object-storage/ObjectStorageLifecycle.ts +79 -5
  84. package/test/src/checkpoint_cleanup.test.ts +75 -0
  85. package/test/src/concurrent_writers.test.ts +127 -53
  86. package/test/src/helpers/PublicationCommandMonitor.ts +119 -0
  87. package/test/src/helpers/concurrentWriter.mjs +2 -2
  88. package/test/src/invalid_sync_config.test.ts +9 -0
  89. package/test/src/object_storage_lifecycle.test.ts +72 -2
  90. package/test/src/prepared_publication.test.ts +388 -0
  91. package/test/src/replication_preparation.test.ts +829 -0
  92. package/test/src/replication_publication_baseline.test.ts +203 -0
  93. package/test/src/replication_publication_batching.test.ts +212 -0
  94. package/test/src/replication_uploads.test.ts +393 -0
  95. package/test/src/source_table_config.test.ts +4 -4
  96. package/test/src/storage_object_storage_inline_threshold.test.ts +1 -1
  97. package/test/src/storage_s3_compaction_lifecycle.test.ts +93 -1
  98. package/test/src/storage_sync.test.ts +83 -2
  99. package/tsconfig.tsbuildinfo +1 -1
@@ -1,39 +1,126 @@
1
1
  import { ReplicationAssertionError } from '@powersync/lib-services-framework';
2
2
  import * as bson from 'bson';
3
3
  import { mongoTableId } from '../../../utils/util.js';
4
- import { PersistedBatch } from '../common/PersistedBatch.js';
4
+ import { BatchOperationBuffer } from '../common/BatchOperationBuffer.js';
5
5
  import { serializeBucketData } from './bucket-format.js';
6
6
  import { chunkBucketData } from './chunking.js';
7
7
  import { DEFAULT_MIN_COMPACT_CHUNK_INTERVAL_MS } from './compaction-constants.js';
8
8
  import { serializeParameterLookup, taggedBucketParameterDocumentToTagged } from './models.js';
9
9
  import { ObjectStorageLifecycle } from './object-storage/ObjectStorageLifecycle.js';
10
10
  import { ObjectStorageUsage } from './object-storage/ObjectStorageUsage.js';
11
- export class PersistedBatchV3 extends PersistedBatch {
11
+ export const DEFAULT_INLINE_THRESHOLD_BYTES = 16 * 1024;
12
+ export class PersistedBatchV3 {
13
+ db;
14
+ group_id;
15
+ mapping;
12
16
  // Upserts and soft deletes supply the complete source-record state, including
13
17
  // pending_delete. Keep the final state per key, without removing any history.
14
18
  currentData = new Map();
15
19
  sourceTablePendingDeletes = new Map();
16
20
  objectStorageLifecycle;
17
21
  objectStorageUsage;
22
+ operations;
23
+ inlineThresholdBytes;
24
+ signal;
25
+ sealed = false;
26
+ preparation;
27
+ payloadsReady = false;
18
28
  constructor(db, group_id, mapping, writtenSize, options) {
19
- super(db, group_id, mapping, writtenSize, options);
20
- if (this.objectStorage) {
21
- this.objectStorageLifecycle = new ObjectStorageLifecycle(this.db, this.group_id, this.objectStorage);
22
- this.objectStorageUsage = new ObjectStorageUsage(this.db, this.group_id, this.objectStorageUsageWriterId);
29
+ this.db = db;
30
+ this.group_id = group_id;
31
+ this.mapping = mapping;
32
+ this.operations = new BatchOperationBuffer(group_id, writtenSize, {
33
+ // V3-specific definition validation; v1 does not persist definition ids.
34
+ checkDefinitionId: (definitionId) => {
35
+ if (definitionId == null) {
36
+ throw new ReplicationAssertionError('Expected v3 bucket when incrementalReprocessing is enabled');
37
+ }
38
+ return definitionId;
39
+ },
40
+ getBucketDefinitionId: (source) => mapping.bucketSourceId(source)
41
+ }, options?.logger);
42
+ this.inlineThresholdBytes = options?.inlineThresholdBytes ?? DEFAULT_INLINE_THRESHOLD_BYTES;
43
+ this.signal = options?.signal;
44
+ if (options?.objectStorage) {
45
+ this.objectStorageLifecycle = new ObjectStorageLifecycle(db, group_id, options.objectStorage);
46
+ this.objectStorageUsage = new ObjectStorageUsage(db, group_id, options.objectStorageUsageWriterId);
47
+ }
48
+ }
49
+ get currentSize() {
50
+ return this.operations.currentSize;
51
+ }
52
+ saveBucketData(options) {
53
+ this.assertMutable();
54
+ this.operations.saveBucketData(options);
55
+ }
56
+ shouldFlushTransaction() {
57
+ return this.operations.shouldFlushTransaction(this.currentData.size);
58
+ }
59
+ append(row) {
60
+ this.assertMutable();
61
+ this.operations.append(row.operations);
62
+ for (const [key, value] of row.currentData) {
63
+ this.currentData.set(key, value);
23
64
  }
65
+ for (const [key, value] of row.sourceTablePendingDeletes) {
66
+ const previous = this.sourceTablePendingDeletes.get(key) ?? 0n;
67
+ this.sourceTablePendingDeletes.set(key, value > previous ? value : previous);
68
+ }
69
+ }
70
+ /** Return the sealed view of this batch without starting I/O or moving its data. */
71
+ seal() {
72
+ this.assertMutable();
73
+ this.sealed = true;
74
+ return this;
24
75
  }
25
- // Abstract override from PersistedBatch (V3-specific error message)
26
- checkDefinitionId(definitionId) {
27
- if (definitionId == null) {
28
- throw new ReplicationAssertionError('Expected v3 bucket when incrementalReprocessing is enabled');
76
+ assertMutable() {
77
+ if (this.sealed) {
78
+ throw new Error('Cannot modify a sealed publication');
29
79
  }
30
- return definitionId;
31
80
  }
32
- // Concrete implementations from PersistedBatchShared
33
- getBucketDefinitionId(bucketSource) {
34
- return this.mapping.bucketSourceId(bucketSource);
81
+ /** Cache readiness, including failure; the v3 batch owns the entire lifecycle. */
82
+ preparePayloads() {
83
+ if (!this.sealed) {
84
+ throw new ReplicationAssertionError('Cannot prepare an unsealed publication');
85
+ }
86
+ return (this.preparation ??= Promise.resolve()
87
+ .then(() => this.preparePayloadsImpl())
88
+ .then(() => {
89
+ this.payloadsReady = true;
90
+ }));
91
+ }
92
+ async publish(session, options, additionalWrites) {
93
+ // Never start preparation from a transaction attempt. The eager coordinator
94
+ // awaits readiness for the entire bounded prefix before opening a transaction.
95
+ if (!this.payloadsReady) {
96
+ throw new ReplicationAssertionError('Prepare publication payloads before starting the transaction');
97
+ }
98
+ return this.write(session, options, additionalWrites);
99
+ }
100
+ async write(session, options, additionalWrites) {
101
+ const startAt = performance.now();
102
+ const writes = additionalWrites ?? this.db.createWriteBatch(session, { ordered: false });
103
+ // Checked marker removal, references and usage must commit together. Recheck
104
+ // expiry on every attempt; neither an expired nor a missing marker is a
105
+ // transient MongoDB error that may replay this generation indefinitely.
106
+ this.objectStorageLifecycle?.publishUploads(this.preparedUploads, writes);
107
+ if (this.operations.bucketDataCount > 0) {
108
+ await this.queueBucketData(writes);
109
+ }
110
+ if (this.operations.bucketParameters.length > 0) {
111
+ this.queueBucketParameters(writes);
112
+ }
113
+ if (this.currentData.size > 0) {
114
+ this.queueCurrentData(writes);
115
+ }
116
+ if (this.operations.bucketStates.size > 0) {
117
+ this.queueBucketStates(writes);
118
+ }
119
+ await writes.execute();
120
+ return this.operations.logFlush(startAt, this.currentData.size, options);
35
121
  }
36
122
  saveParameterData(data) {
123
+ this.assertMutable();
37
124
  const { sourceTable, sourceKey, evaluated } = data;
38
125
  const remaining_lookups = new Map();
39
126
  for (let lookup of data.existing_lookups) {
@@ -52,7 +139,7 @@ export class PersistedBatchV3 extends PersistedBatch {
52
139
  const binLookup = serializeParameterLookup(result.lookup);
53
140
  remaining_lookups.delete(`${sourceDefinitionId}.${binLookup.toString('base64')}`);
54
141
  const op_id = data.op_seq.next();
55
- this.debugLastOpId = op_id;
142
+ this.operations.debugLastOpId = op_id;
56
143
  const values = {
57
144
  _id: op_id,
58
145
  key: {
@@ -62,15 +149,15 @@ export class PersistedBatchV3 extends PersistedBatch {
62
149
  lookup: binLookup,
63
150
  bucket_parameters: result.bucketParameters
64
151
  };
65
- this.bucketParameters.push({
152
+ this.operations.bucketParameters.push({
66
153
  ...values,
67
154
  index: sourceDefinitionId
68
155
  });
69
- this.currentSize += 200;
156
+ this.operations.currentSize += 200;
70
157
  }
71
158
  for (let lookup of remaining_lookups.values()) {
72
159
  const op_id = data.op_seq.next();
73
- this.debugLastOpId = op_id;
160
+ this.operations.debugLastOpId = op_id;
74
161
  const indexId = lookup.indexId;
75
162
  if (indexId == null) {
76
163
  throw new ReplicationAssertionError('Expected lookup when incrementalReprocessing is enabled');
@@ -84,14 +171,15 @@ export class PersistedBatchV3 extends PersistedBatch {
84
171
  lookup: lookup.lookup,
85
172
  bucket_parameters: []
86
173
  };
87
- this.bucketParameters.push({
174
+ this.operations.bucketParameters.push({
88
175
  ...values,
89
176
  index: indexId
90
177
  });
91
- this.currentSize += 200;
178
+ this.operations.currentSize += 200;
92
179
  }
93
180
  }
94
181
  hardDeleteCurrentData(sourceTableId, replicaId) {
182
+ this.assertMutable();
95
183
  this.currentData.set(this.currentDataKey(sourceTableId, replicaId), {
96
184
  sourceTableId,
97
185
  operation: {
@@ -100,9 +188,10 @@ export class PersistedBatchV3 extends PersistedBatch {
100
188
  }
101
189
  }
102
190
  });
103
- this.currentSize += 50;
191
+ this.operations.currentSize += 50;
104
192
  }
105
193
  softDeleteCurrentData(sourceTableId, replicaId, checkpointGreaterThan) {
194
+ this.assertMutable();
106
195
  this.currentData.set(this.currentDataKey(sourceTableId, replicaId), {
107
196
  sourceTableId,
108
197
  operation: {
@@ -125,9 +214,10 @@ export class PersistedBatchV3 extends PersistedBatch {
125
214
  if (existingPendingDelete == null || checkpointGreaterThan > existingPendingDelete) {
126
215
  this.sourceTablePendingDeletes.set(sourceTableKey, checkpointGreaterThan);
127
216
  }
128
- this.currentSize += 50;
217
+ this.operations.currentSize += 50;
129
218
  }
130
219
  upsertCurrentData(values) {
220
+ this.assertMutable();
131
221
  const buckets = values.buckets.map((bucket) => {
132
222
  if (bucket.definitionId == null) {
133
223
  throw new ReplicationAssertionError('Expected bucket when incrementalReprocessing is enabled');
@@ -165,85 +255,75 @@ export class PersistedBatchV3 extends PersistedBatch {
165
255
  }
166
256
  }
167
257
  });
168
- this.currentSize += (values.data?.length() ?? 0) + 100;
169
- }
170
- get currentDataCount() {
171
- return this.currentData.size;
258
+ this.operations.currentSize += (values.data?.length() ?? 0) + 100;
172
259
  }
173
- // Flush methods
174
- async queueBucketData(writes) {
260
+ preparedBucketWrites;
261
+ preparedUsageDeltas = new Map();
262
+ preparedUploads = [];
263
+ async preparePayloadsImpl() {
175
264
  const operationsByDefinition = new Map();
176
- for (const document of this.bucketData) {
265
+ for (const document of this.operations.bucketData) {
177
266
  const existing = operationsByDefinition.get(document.bucketKey.definitionId) ?? [];
178
267
  existing.push(document);
179
268
  operationsByDefinition.set(document.bucketKey.definitionId, existing);
180
269
  }
181
- const plans = Array.from(operationsByDefinition, ([definitionId, documents]) => {
270
+ const uploads = [];
271
+ this.preparedBucketWrites = Array.from(operationsByDefinition, ([definitionId, documents]) => {
182
272
  const operationsByBucket = Map.groupBy(documents, (document) => document.bucketKey.bucket);
183
273
  const lifecycle = this.objectStorageLifecycle;
184
- const createInserts = [];
274
+ const preparedDocuments = [];
185
275
  for (const [bucket, ops] of operationsByBucket) {
186
- this.resetBucketPersistedBytes(definitionId, bucket);
276
+ this.operations.resetBucketPersistedBytes(definitionId, bucket);
187
277
  for (const chunk of chunkBucketData(ops)) {
188
278
  const serialized = serializeBucketData(bucket, chunk);
189
- this.incrementBucketPersistedChunk(definitionId, bucket, serialized.size);
279
+ this.operations.incrementBucketPersistedChunk(definitionId, bucket, serialized.size);
190
280
  if (lifecycle == null || serialized.size <= this.inlineThresholdBytes) {
191
- createInserts.push(async () => ({
192
- insertOne: {
193
- document: serialized
194
- }
195
- }));
281
+ preparedDocuments.push(serialized);
196
282
  continue;
197
283
  }
198
- createInserts.push(async () => {
199
- const minOp = chunk[0].o;
200
- const maxOp = chunk[chunk.length - 1].o;
201
- const { ops: bucketOps, ...metadata } = serialized;
202
- const path = lifecycle.allocatePath(definitionId, bucket, minOp, maxOp);
203
- const { fileSize } = await lifecycle.bucketData.store(path, bucketOps, { signal: this.signal });
204
- return {
205
- insertOne: {
206
- document: {
207
- ...metadata,
208
- storage_ref: {
209
- path,
210
- file_size: fileSize
211
- }
212
- }
213
- }
214
- };
284
+ const minOp = chunk[0].o;
285
+ const maxOp = chunk[chunk.length - 1].o;
286
+ const { ops: bucketOps, ...metadata } = serialized;
287
+ const path = lifecycle.allocatePath(definitionId, bucket, minOp, maxOp);
288
+ // Seal paths and bytes before starting any upload. Publication reads
289
+ // only the resulting metadata and never regenerates an object.
290
+ const payload = bson.serialize({ ops: bucketOps });
291
+ preparedDocuments.push({
292
+ ...metadata,
293
+ storage_ref: { path, file_size: payload.byteLength }
215
294
  });
295
+ uploads.push({ path, payload });
216
296
  }
217
297
  }
218
- return { definitionId, createInserts };
219
- });
220
- const createAllInserts = () => Promise.all(plans.map(async ({ definitionId, createInserts }) => ({
221
- definitionId,
222
- inserts: await Promise.all(createInserts.map((createInsert) => createInsert()))
223
- })));
224
- // S3ObjectStorage applies one shared concurrency limit across all callers,
225
- // so replication can schedule its uploads together without creating a
226
- // separate limiter here.
227
- const bucketWrites = await createAllInserts();
228
- const usageDeltas = this.objectStorageUsage == null ? undefined : new Map();
229
- for (const { definitionId, inserts } of bucketWrites) {
230
- if (usageDeltas != null) {
231
- const delta = inserts.reduce((sum, operation) => sum + ObjectStorageUsage.bytes(operation.insertOne.document), 0n);
232
- if (delta !== 0n) {
233
- usageDeltas.set(definitionId, delta);
234
- }
235
- }
236
- if (inserts.length > 0) {
237
- writes.bulkWriteUnordered(this.db.bucketData(this.group_id, definitionId), inserts);
298
+ const delta = preparedDocuments.reduce((sum, document) => sum + ObjectStorageUsage.bytes(document), 0n);
299
+ if (delta !== 0n) {
300
+ this.preparedUsageDeltas.set(definitionId, delta);
238
301
  }
302
+ return { definitionId, documents: preparedDocuments };
303
+ });
304
+ const lifecycle = this.objectStorageLifecycle;
305
+ if (uploads.length === 0 || lifecycle == null) {
306
+ return;
239
307
  }
240
- if (usageDeltas != null) {
241
- this.objectStorageUsage.applyDeltas(usageDeltas, writes);
308
+ this.signal?.throwIfAborted();
309
+ // Seal every path/byte first, then register the whole group durably. No PUT
310
+ // may start after a partial or ambiguous registration failure.
311
+ this.preparedUploads = await lifecycle.prepareUploads(uploads.map((upload) => upload.path), new Date());
312
+ this.signal?.throwIfAborted();
313
+ await lifecycle.storeUploads(uploads.map(({ payload }, index) => ({ upload: this.preparedUploads[index], payload })), { signal: this.signal });
314
+ }
315
+ async queueBucketData(writes) {
316
+ if (this.preparedBucketWrites == null) {
317
+ throw new ReplicationAssertionError('Publication payloads have not been prepared');
318
+ }
319
+ for (const { definitionId, documents } of this.preparedBucketWrites) {
320
+ writes.bulkWriteUnordered(this.db.bucketData(this.group_id, definitionId), documents.map((document) => ({ insertOne: { document } })));
242
321
  }
322
+ this.objectStorageUsage?.applyDeltas(this.preparedUsageDeltas, writes);
243
323
  }
244
324
  queueBucketParameters(writes) {
245
325
  const operationsByIndex = new Map();
246
- for (const document of this.bucketParameters) {
326
+ for (const document of this.operations.bucketParameters) {
247
327
  const existing = operationsByIndex.get(document.index) ?? [];
248
328
  existing.push(document);
249
329
  operationsByIndex.set(document.index, existing);
@@ -289,15 +369,11 @@ export class PersistedBatchV3 extends PersistedBatch {
289
369
  queueBucketStates(writes) {
290
370
  writes.bulkWriteUnordered(this.db.bucketState(this.group_id), this.getBucketStateUpdates());
291
371
  }
292
- resetCurrentData() {
293
- this.currentData.clear();
294
- this.sourceTablePendingDeletes.clear();
295
- }
296
372
  currentDataKey(sourceTableId, replicaId) {
297
373
  return Buffer.from(bson.serialize({ t: sourceTableId, k: replicaId })).toString('base64');
298
374
  }
299
375
  getBucketStateUpdates() {
300
- return Array.from(this.bucketStates.values()).map((state) => {
376
+ return Array.from(this.operations.bucketStates.values()).map((state) => {
301
377
  if (state.definitionId == null) {
302
378
  throw new ReplicationAssertionError('Expected bucket definition id when incrementalReprocessing is enabled');
303
379
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PersistedBatchV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/PersistedBatchV3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PersistedBatchV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/PersistedBatchV3.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,17 @@ import { EvaluatedParameters, EvaluatedRow } from '@powersync/service-sync-rules
5
5
  import * as bson from 'bson';
6
6
  import { LoadedSourceRecord, SourceRecordLookupEntry, SourceRecordStore } from '../common/SourceRecordStore.js';
7
7
  import { VersionedPowerSyncMongoV3 } from './VersionedPowerSyncMongoV3.js';
8
+ /**
9
+ * Source-record access for v3/v4 preparation and post-commit cleanup.
10
+ *
11
+ * The loadSizes(), loadDocuments() and loadTruncateBatch() methods are preparation
12
+ * reads: callers must hold the lease's writer mutex and use its shared causal
13
+ * session outside any transaction. These reads always request primary/majority
14
+ * consistency, so they observe earlier writes in that session. Keep the mutex
15
+ * held through publication to prevent another local writer from changing the
16
+ * source records between preparation and commit. Publication transactions write
17
+ * the prepared result without calling these read methods again.
18
+ */
8
19
  export declare class SourceRecordStoreV3 implements SourceRecordStore {
9
20
  private readonly db;
10
21
  private readonly replicationStreamId;
@@ -18,5 +29,6 @@ export declare class SourceRecordStoreV3 implements SourceRecordStore {
18
29
  loadTruncateBatch(session: mongo.ClientSession, sourceTableId: bson.ObjectId, limit: number): Promise<LoadedSourceRecord[]>;
19
30
  postCommitCleanup(lastCheckpoint: bigint, logger: Logger): Promise<void>;
20
31
  private deletePendingDeletes;
32
+ /** Group table IDs by value and deduplicate replica IDs, preserving first-seen order. */
21
33
  private groupEntries;
22
34
  }
@@ -1,7 +1,19 @@
1
1
  import * as lib_mongo from '@powersync/lib-service-mongodb';
2
2
  import { retryOnMongoMaxTimeMSExpired } from '../../../utils/util.js';
3
+ import { REPLICATION_READ_OPTIONS, REPLICATION_WRITE_OPTIONS } from '../MongoReplicationOptions.js';
3
4
  import { cacheKey } from '../OperationBatch.js';
4
5
  import { serializeParameterLookup } from './models.js';
6
+ /**
7
+ * Source-record access for v3/v4 preparation and post-commit cleanup.
8
+ *
9
+ * The loadSizes(), loadDocuments() and loadTruncateBatch() methods are preparation
10
+ * reads: callers must hold the lease's writer mutex and use its shared causal
11
+ * session outside any transaction. These reads always request primary/majority
12
+ * consistency, so they observe earlier writes in that session. Keep the mutex
13
+ * held through publication to prevent another local writer from changing the
14
+ * source records between preparation and commit. Publication transactions write
15
+ * the prepared result without calling these read methods again.
16
+ */
5
17
  export class SourceRecordStoreV3 {
6
18
  db;
7
19
  replicationStreamId;
@@ -45,7 +57,7 @@ export class SourceRecordStoreV3 {
45
57
  }
46
58
  async loadSizes(session, entries) {
47
59
  const sizes = new Map();
48
- for (const [sourceTableId, replicaIds] of this.groupEntries(entries)) {
60
+ for (const { sourceTableId, replicaIds } of this.groupEntries(entries)) {
49
61
  const filter = {
50
62
  _id: { $in: replicaIds }
51
63
  };
@@ -61,7 +73,7 @@ export class SourceRecordStoreV3 {
61
73
  size: { $bsonSize: '$$ROOT' }
62
74
  }
63
75
  }
64
- ], { session });
76
+ ], { session, ...REPLICATION_READ_OPTIONS });
65
77
  for await (const doc of sizeCursor.stream()) {
66
78
  sizes.set(cacheKey(sourceTableId, doc._id), doc.size);
67
79
  }
@@ -71,13 +83,15 @@ export class SourceRecordStoreV3 {
71
83
  async loadDocuments(session, entries, idsOnly) {
72
84
  const documents = new Map();
73
85
  const projection = idsOnly ? { _id: 1 } : undefined;
74
- for (const [sourceTableId, replicaIds] of this.groupEntries(entries)) {
86
+ for (const { sourceTableId, replicaIds } of this.groupEntries(entries)) {
75
87
  const filter = {
76
88
  _id: { $in: replicaIds }
77
89
  };
78
- const cursor = this.db
79
- .sourceRecords(this.replicationStreamId, sourceTableId)
80
- .find(filter, { session, projection });
90
+ const cursor = this.db.sourceRecords(this.replicationStreamId, sourceTableId).find(filter, {
91
+ session,
92
+ projection,
93
+ ...REPLICATION_READ_OPTIONS
94
+ });
81
95
  for await (const doc of cursor.stream()) {
82
96
  const loaded = this.createLoadedDocument(sourceTableId, doc._id, idsOnly ? null : doc.data, idsOnly ? [] : doc.buckets, idsOnly ? [] : doc.lookups);
83
97
  documents.set(loaded.cacheKey, loaded);
@@ -95,7 +109,8 @@ export class SourceRecordStoreV3 {
95
109
  lookups: 1
96
110
  },
97
111
  limit,
98
- session
112
+ session,
113
+ ...REPLICATION_READ_OPTIONS
99
114
  });
100
115
  return (await cursor.toArray()).map((doc) => this.createLoadedDocument(sourceTableId, doc._id, null, doc.buckets, doc.lookups));
101
116
  }
@@ -135,17 +150,22 @@ export class SourceRecordStoreV3 {
135
150
  }
136
151
  }
137
152
  if (sourceTableUpdates.length > 0) {
138
- await this.db.sourceTables(this.replicationStreamId).bulkWrite(sourceTableUpdates, { ordered: false });
153
+ await this.db
154
+ .sourceTables(this.replicationStreamId)
155
+ .bulkWrite(sourceTableUpdates, { ordered: false, ...REPLICATION_WRITE_OPTIONS });
139
156
  }
140
157
  if (deletedCount > 0) {
141
158
  logger.info(`Cleaned up ${deletedCount} pending delete current_data records for checkpoint ${lastCheckpoint}`);
142
159
  }
143
160
  }
144
161
  async deletePendingDeletes(collection, sourceTableId, lastCheckpoint, logger) {
162
+ // A previous owner's in-flight cleanup must commute with a new
163
+ // publisher: live upserts clear pending_delete and never match.
145
164
  return retryOnMongoMaxTimeMSExpired(() => collection.deleteMany({
146
165
  pending_delete: { $exists: true, $lte: lastCheckpoint }
147
166
  }, {
148
- maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS
167
+ maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS,
168
+ ...REPLICATION_WRITE_OPTIONS
149
169
  }), {
150
170
  retryDelayMs: lib_mongo.db.MONGO_OPERATION_TIMEOUT_MS / 5,
151
171
  onRetry: (n) => {
@@ -153,14 +173,22 @@ export class SourceRecordStoreV3 {
153
173
  }
154
174
  });
155
175
  }
176
+ /** Group table IDs by value and deduplicate replica IDs, preserving first-seen order. */
156
177
  groupEntries(entries) {
157
178
  const grouped = new Map();
158
179
  for (const entry of entries) {
159
- const existing = grouped.get(entry.sourceTableId) ?? [];
160
- existing.push(entry.replicaId);
161
- grouped.set(entry.sourceTableId, existing);
180
+ const key = entry.sourceTableId.toHexString();
181
+ let group = grouped.get(key);
182
+ if (group == null) {
183
+ group = { sourceTableId: entry.sourceTableId, replicas: new Map() };
184
+ grouped.set(key, group);
185
+ }
186
+ group.replicas.set(cacheKey(entry.sourceTableId, entry.replicaId), entry.replicaId);
162
187
  }
163
- return grouped;
188
+ return [...grouped.values()].map(({ sourceTableId, replicas }) => ({
189
+ sourceTableId,
190
+ replicaIds: [...replicas.values()]
191
+ }));
164
192
  }
165
193
  }
166
194
  //# sourceMappingURL=SourceRecordStoreV3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SourceRecordStoreV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/SourceRecordStoreV3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SourceRecordStoreV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/SourceRecordStoreV3.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,10 @@ export declare class BucketDataObjectStorage {
7
7
  store(path: string, ops: BucketOperation[], options?: ObjectStorageOperationOptions): Promise<{
8
8
  fileSize: number;
9
9
  }>;
10
+ /** Store an already sealed BSON { ops } payload without serializing it again. */
11
+ storeSerialized(path: string, bsonBuffer: Uint8Array, options?: ObjectStorageOperationOptions): Promise<{
12
+ fileSize: number;
13
+ }>;
10
14
  retrieve(path: string, options: ObjectStorageOperationOptions): Promise<BucketOperation[]>;
11
15
  delete(paths: string[], options?: ObjectStorageOperationOptions): Promise<void>;
12
16
  }
@@ -7,6 +7,10 @@ export class BucketDataObjectStorage {
7
7
  }
8
8
  async store(path, ops, options) {
9
9
  const bsonBuffer = bson.serialize({ ops });
10
+ return this.storeSerialized(path, bsonBuffer, options);
11
+ }
12
+ /** Store an already sealed BSON { ops } payload without serializing it again. */
13
+ async storeSerialized(path, bsonBuffer, options) {
10
14
  await this.storage.put(path, bsonBuffer, { contentType: 'application/bson', contentEncoding: null }, options);
11
15
  return { fileSize: bsonBuffer.byteLength };
12
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BucketDataObjectStorage.js","sourceRoot":"","sources":["../../../../../src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BucketDataObjectStorage.js","sourceRoot":"","sources":["../../../../../src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts"],"names":[],"mappings":"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"}