@powersync/service-module-mongodb-storage 0.23.2 → 0.24.1

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 +45 -0
  2. package/LICENSE +201 -67
  3. package/dist/storage/MongoBucketStorage.d.ts +1 -0
  4. package/dist/storage/MongoBucketStorage.js +45 -83
  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 +55 -122
  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 +101 -2
  99. package/tsconfig.tsbuildinfo +1 -1
@@ -1,10 +1,12 @@
1
- import { ReplicationAssertionError } from '@powersync/lib-services-framework';
1
+ import { ErrorCode, ReplicationAssertionError, ServiceError } from '@powersync/lib-services-framework';
2
2
  import { storage } from '@powersync/service-core';
3
3
  import * as bson from 'bson';
4
4
  import { mongoTableId } from '../../../utils/util.js';
5
5
  import { calculateCheckpointState } from '../CheckpointState.js';
6
6
  import { MongoBucketBatch } from '../MongoBucketBatch.js';
7
+ import { OpIdRangeExhausted } from '../MongoIdSequence.js';
7
8
  import { MongoSyncRulesLock } from '../MongoSyncRulesLock.js';
9
+ import { OperationBatch } from '../OperationBatch.js';
8
10
  import { PersistedBatchV1 } from './PersistedBatchV1.js';
9
11
  import { SourceRecordStoreV1 } from './SourceRecordStoreV1.js';
10
12
  export class MongoBucketBatchV1 extends MongoBucketBatch {
@@ -23,6 +25,241 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
23
25
  this.persisted_op = options.keepaliveOp ?? null;
24
26
  this.store = new SourceRecordStoreV1(this.db, this.replicationStreamId);
25
27
  }
28
+ async withReplicationTransaction(description, callback, finish, projection) {
29
+ let flushTry = 0;
30
+ const lastTry = Date.now() + 90000;
31
+ const allocator = this.options.opIdAllocator;
32
+ let lastOp = 0n;
33
+ // Refill outside the publication transaction, before evaluating any rows.
34
+ // Exhaustion remains a fallback for large batches or a newer stream head.
35
+ this.options.replicationLock.throwIfAborted();
36
+ await allocator.ensureCapacity();
37
+ while (true) {
38
+ try {
39
+ await this.withFencedTransaction(() => this.fence(this.session, projection), async (stream) => {
40
+ flushTry += 1;
41
+ if (flushTry > 20 && Date.now() > lastTry) {
42
+ throw new ServiceError(ErrorCode.PSYNC_S1402, 'Max transaction tries exceeded');
43
+ }
44
+ // The fence already holds this stream document for the transaction.
45
+ // A different writer may have used higher IDs since our last flush.
46
+ const opSeq = allocator.sequence(this.persistedOpHead(stream));
47
+ await callback(this.session, opSeq);
48
+ lastOp = opSeq.last();
49
+ if (!(await finish?.(stream, lastOp))) {
50
+ const writes = this.db.createWriteBatch(this.session, { ordered: false });
51
+ this.onReplicationTransactionFlush(writes, lastOp);
52
+ await writes.execute();
53
+ }
54
+ }, this.session, description);
55
+ allocator.consume(lastOp);
56
+ return;
57
+ }
58
+ catch (error) {
59
+ if (!(error instanceof OpIdRangeExhausted)) {
60
+ throw error;
61
+ }
62
+ // The transaction aborted every write. Reserve outside it and replay
63
+ // evaluation from the same committed stream head.
64
+ this.options.replicationLock.throwIfAborted();
65
+ await allocator.reserve();
66
+ }
67
+ }
68
+ }
69
+ async clearError(session) {
70
+ await this.db.sync_rules.updateOne({ _id: this.replicationStreamId }, { $set: { last_fatal_error: null, last_fatal_error_ts: null } }, { session });
71
+ }
72
+ async flushInner(options, checkpoint, projection) {
73
+ const batch = this.batch;
74
+ let last_op = null;
75
+ let resumeBatch = null;
76
+ let clearedError = false;
77
+ using _ = this.tracer.span('storage', 'flush');
78
+ await this.hooks?.beforeBatchFlush?.(this);
79
+ if (this.write_checkpoint_batch.length > 0) {
80
+ // Collection/index creation cannot run inside the replication transaction.
81
+ await this.prepareCustomWriteCheckpoints();
82
+ }
83
+ await this.withReplicationTransaction(`Flushing ${batch?.length ?? 0} ops`, async (session, opSeq) => {
84
+ clearedError = false;
85
+ if (batch != null) {
86
+ const result = await this.replicateBatch(session, batch, opSeq, options);
87
+ resumeBatch = result.resumeBatch;
88
+ clearedError ||= result.clearedError;
89
+ }
90
+ if (this.write_checkpoint_batch.length > 0) {
91
+ this.logger.info(`Writing ${this.write_checkpoint_batch.length} custom write checkpoints`);
92
+ await this.batchCreateCustomWriteCheckpoints(session, opSeq.next());
93
+ }
94
+ last_op = opSeq.last();
95
+ }, async (stream, lastOp) => {
96
+ if (checkpoint != null && resumeBatch == null) {
97
+ // The checkpoint must also persist the head, including when visibility is blocked.
98
+ await checkpoint(stream, lastOp);
99
+ return true;
100
+ }
101
+ return false;
102
+ }, projection);
103
+ // Keep checkpoints available if the transaction retries after writing them.
104
+ this.write_checkpoint_batch = [];
105
+ if (clearedError) {
106
+ this.clearedError = true;
107
+ }
108
+ // null if done, set if we need another flush
109
+ this.batch = resumeBatch;
110
+ if (last_op == null) {
111
+ throw new ReplicationAssertionError('Unexpected last_op == null');
112
+ }
113
+ this.recordPersistedOp(last_op);
114
+ this.last_flushed_op = last_op;
115
+ await this.hooks?.afterBatchFlush?.(this);
116
+ return { flushed_op: last_op };
117
+ }
118
+ async replicateBatch(session, batch, op_seq, options) {
119
+ let sizes = undefined;
120
+ using _ = this.tracer.span('storage', 'replicate_batch');
121
+ // Only look up current_data sizes if the batch stores current_data and at least one
122
+ // table in it does too (per-table can disable it, e.g. Postgres REPLICA IDENTITY FULL).
123
+ const anyTableStoresCurrentData = this.storeCurrentData && batch.batch.some((r) => r.record.sourceTable.storeCurrentData);
124
+ if (anyTableStoresCurrentData && !this.skipExistingRows) {
125
+ // We skip this step if no tables store current_data, since the sizes will
126
+ // always be small in that case.
127
+ // With skipExistingRows, we don't load the full documents into memory,
128
+ // so we can also skip the size lookup step.
129
+ // Find sizes of current_data documents, to assist in intelligent batching without
130
+ // exceeding memory limits.
131
+ //
132
+ // A previous attempt tried to do batching by the results of the current_data query
133
+ // (automatically limited to 48MB(?) per batch by MongoDB). The issue is that it changes
134
+ // the order of processing, which then becomes really tricky to manage.
135
+ // This now takes 2+ queries, but doesn't have any issues with order of operations.
136
+ // Within this branch this.storeCurrentData is true, so the per-table flag is the
137
+ // effective value - only look up sizes for tables that actually store current_data.
138
+ const sizeLookups = batch.batch
139
+ .filter((r) => r.record.sourceTable.storeCurrentData)
140
+ .map((r) => ({
141
+ sourceTableId: mongoTableId(r.record.sourceTable.id),
142
+ replicaId: r.beforeId
143
+ }));
144
+ sizes = await this.sourceRecordStore.loadSizes(session, sizeLookups);
145
+ }
146
+ // If set, we need to start a new transaction with this batch.
147
+ let resumeBatch = null;
148
+ let transactionSize = 0;
149
+ let didFlush = false;
150
+ // Now batch according to the sizes
151
+ // This is a single batch if storeCurrentData == false
152
+ for await (let b of batch.batched(sizes)) {
153
+ if (resumeBatch) {
154
+ for (let op of b) {
155
+ resumeBatch.push(op);
156
+ }
157
+ continue;
158
+ }
159
+ using lookupSpan = this.tracer.span('storage', 'lookup');
160
+ const lookups = b.map((r) => ({
161
+ sourceTableId: mongoTableId(r.record.sourceTable.id),
162
+ replicaId: r.beforeId
163
+ }));
164
+ let sourceRecordLookup = await this.sourceRecordStore.loadDocuments(session, lookups, this.skipExistingRows);
165
+ lookupSpan.end();
166
+ let persistedBatch = this.createPersistedBatch(transactionSize);
167
+ // The current code structure makes it tricky to cleanly split this span from the one
168
+ // where fluhsing. So we manually end and re-create this span whenever we flush.
169
+ let evalSpan = this.tracer.span('evaluate');
170
+ for (let op of b) {
171
+ if (resumeBatch) {
172
+ resumeBatch.push(op);
173
+ continue;
174
+ }
175
+ const sourceRecord = sourceRecordLookup.get(op.internalBeforeKey) ?? null;
176
+ if (sourceRecord != null) {
177
+ // If it will be used again later, it will be set again using nextData below
178
+ sourceRecordLookup.delete(op.internalBeforeKey);
179
+ }
180
+ const nextData = this.saveOperation(persistedBatch, op, sourceRecord, op_seq, this.markRecordUnavailable);
181
+ if (nextData != null) {
182
+ // Update our current_data and size cache
183
+ sourceRecordLookup.set(op.internalAfterKey, nextData);
184
+ sizes?.set(op.internalAfterKey, nextData.data?.length() ?? 0);
185
+ }
186
+ if (persistedBatch.shouldFlushTransaction()) {
187
+ evalSpan.end();
188
+ // Transaction is getting big.
189
+ // Flush, and resume in a new transaction.
190
+ using persistSpan = this.tracer.span('storage', 'persist_flush');
191
+ const { flushedAny } = await persistedBatch.flush(this.session, options);
192
+ didFlush ||= flushedAny;
193
+ persistedBatch = null;
194
+ // Computing our current progress is a little tricky here, since
195
+ // we're stopping in the middle of a batch.
196
+ // We create a new batch, and push any remaining operations to it.
197
+ resumeBatch = new OperationBatch();
198
+ persistSpan.end();
199
+ evalSpan = this.tracer.span('evaluate');
200
+ }
201
+ }
202
+ evalSpan.end();
203
+ if (persistedBatch) {
204
+ transactionSize = persistedBatch.currentSize;
205
+ using _ = this.tracer.span('storage', 'persist_flush');
206
+ const { flushedAny } = await persistedBatch.flush(this.session, options);
207
+ didFlush ||= flushedAny;
208
+ }
209
+ }
210
+ const clearedError = didFlush && !this.clearedError;
211
+ if (clearedError) {
212
+ // No need to clear an error more than once per batch, since an error would always result in restarting the batch.
213
+ using _ = this.tracer.span('storage', 'clear_error');
214
+ await this.clearError(this.session);
215
+ }
216
+ return {
217
+ resumeBatch: resumeBatch?.hasData() ? resumeBatch : null,
218
+ clearedError
219
+ };
220
+ }
221
+ async truncateSingleInternal(sourceTable) {
222
+ let last_op = null;
223
+ // To avoid too large transactions, we limit the amount of data we delete per transaction.
224
+ // Since we don't use the record data here, we don't have explicit size limits per batch.
225
+ const BATCH_LIMIT = 2000;
226
+ let lastBatchCount = BATCH_LIMIT;
227
+ while (lastBatchCount == BATCH_LIMIT) {
228
+ await this.withReplicationTransaction(`Truncate ${sourceTable.qualifiedName}`, async (session, opSeq) => {
229
+ using evalSpan = this.tracer.span('evaluate');
230
+ const sourceTableId = mongoTableId(sourceTable.id);
231
+ const batch = await this.sourceRecordStore.loadTruncateBatch(session, sourceTableId, BATCH_LIMIT);
232
+ const persistedBatch = this.createPersistedBatch(0);
233
+ for (let value of batch) {
234
+ persistedBatch.saveBucketData({
235
+ op_seq: opSeq,
236
+ before_buckets: value.buckets,
237
+ evaluated: [],
238
+ table: sourceTable,
239
+ sourceKey: value.replicaId
240
+ });
241
+ persistedBatch.saveParameterData({
242
+ op_seq: opSeq,
243
+ existing_lookups: value.lookups,
244
+ evaluated: [],
245
+ sourceTable: sourceTable,
246
+ sourceKey: value.replicaId
247
+ });
248
+ // Since this is not from streaming replication, we can do a hard delete
249
+ persistedBatch.hardDeleteCurrentData(sourceTableId, value.replicaId);
250
+ }
251
+ evalSpan.end();
252
+ using _ = this.tracer.span('storage', 'persist_flush');
253
+ await persistedBatch.flush(session);
254
+ lastBatchCount = batch.length;
255
+ last_op = opSeq.last();
256
+ });
257
+ }
258
+ if (last_op) {
259
+ this.recordPersistedOp(last_op);
260
+ }
261
+ return last_op;
262
+ }
26
263
  persistedOpHead(stream) {
27
264
  const legacy = stream;
28
265
  const checkpoint = legacy.last_checkpoint ?? 0n;
@@ -46,7 +283,7 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
46
283
  this.persisted_op = lastOp;
47
284
  }
48
285
  createPersistedBatch(writtenSize) {
49
- return new PersistedBatchV1(this.db, this.replicationStreamId, this.mapping, writtenSize, {
286
+ return new PersistedBatchV1(this.db, this.replicationStreamId, writtenSize, {
50
287
  logger: this.logger
51
288
  });
52
289
  }
@@ -83,7 +320,7 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
83
320
  };
84
321
  }), { session, ordered: false });
85
322
  }
86
- async resolveTables(options) {
323
+ async resolveTablesInternal(options) {
87
324
  const syncRules = options.parsedSyncConfig?.hydratedSyncConfig ?? this.sync_rules;
88
325
  const reconcile = options.reconcileSourceTables ?? storage.defaultSourceTableReconciler;
89
326
  const { connection_id, source } = options;
@@ -109,11 +346,21 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
109
346
  const candidates = candidateTables.map((table) => table.clone());
110
347
  const resolution = await reconcile({ source, candidates });
111
348
  storage.validateSourceTableCandidateResolution(candidates, resolution);
349
+ const materializedResolution = storage.materializeSourceTableResolution(candidateTables, resolution);
350
+ const compatibleTables = materializedResolution.compatibleTables;
351
+ if (!syncRules.tableSyncsAny(source)) {
352
+ // Still reconcile old mappings so renames out of scope remove previously replicated data.
353
+ // Skip updating source_metadata below: these records are dropped by the caller in this
354
+ // same transaction, so persisting new metadata into them first is wasted work.
355
+ result = {
356
+ tables: [],
357
+ dropTables: [...materializedResolution.incompatibleTables, ...compatibleTables]
358
+ };
359
+ return;
360
+ }
112
361
  for (const { id, sourceMetadata } of storage.diffSourceTableUpdates(candidateTables, resolution)) {
113
362
  await col.updateOne({ _id: mongoTableId(id) }, { $set: { source_metadata: sourceMetadata } }, { session });
114
363
  }
115
- const materializedResolution = storage.materializeSourceTableResolution(candidateTables, resolution);
116
- const compatibleTables = materializedResolution.compatibleTables;
117
364
  // V1 keeps one record, preferring one that has already been snapshotted.
118
365
  const reuse = compatibleTables.find((table) => table.snapshotComplete) ?? compatibleTables[0] ?? null;
119
366
  let sourceTable;
@@ -174,7 +421,7 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
174
421
  };
175
422
  return table;
176
423
  }
177
- async getSourceTableStatus(table) {
424
+ async getSourceTableStatusInternal(table) {
178
425
  const doc = await this.db.sourceTablesV1(this.replicationStreamId).findOne({
179
426
  group_id: this.replicationStreamId,
180
427
  _id: mongoTableId(table.id)
@@ -185,7 +432,7 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
185
432
  // Use the default storeCurrentData value when reading outside resolution.
186
433
  return this.hydrateSourceTable(doc, table.ref.connectionTag, this.sync_rules, undefined);
187
434
  }
188
- async commit(lsn, options) {
435
+ async commitInternal(lsn, options) {
189
436
  const { createEmptyCheckpoints } = { ...storage.DEFAULT_BUCKET_BATCH_COMMIT_OPTIONS, ...options };
190
437
  using _ = this.tracer.span('storage', 'commit');
191
438
  const updateCheckpoint = async (persistedOp = this.persisted_op) => {
@@ -313,25 +560,19 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
313
560
  await this.autoActivate(lsn);
314
561
  await this.db.notifyCheckpoint();
315
562
  this.persisted_op = null;
316
- if (checkpointState.newLastCheckpoint != null) {
317
- await this.sourceRecordStore.postCommitCleanup(checkpointState.newLastCheckpoint, this.logger);
318
- }
319
563
  }
320
564
  return {
321
565
  checkpointBlocked: checkpointState.checkpointBlocked,
322
566
  checkpointCreated: checkpointState.checkpointCreated
323
567
  };
324
568
  }
325
- async keepalive(lsn) {
326
- return await this.commit(lsn, { createEmptyCheckpoints: true });
327
- }
328
- async setResumeLsn(lsn) {
569
+ async setResumeLsnInternal(lsn) {
329
570
  using _ = this.tracer.span('storage', 'set_resume_lsn');
330
571
  // Losing occasional resume LSN would only reprocess source changes.
331
572
  // Keep the lease check atomic, but do not wait for majority replication of this resume hint.
332
573
  await this.updateStreamMetadata({ snapshot_lsn: { $literal: lsn } }, {}, { w: 1 });
333
574
  }
334
- async markAllSnapshotDone(no_checkpoint_before_lsn) {
575
+ async markAllSnapshotDoneInternal(no_checkpoint_before_lsn) {
335
576
  await this.updateStreamMetadata(this.snapshotDoneUpdate(no_checkpoint_before_lsn));
336
577
  }
337
578
  snapshotDoneUpdate(no_checkpoint_before_lsn) {
@@ -340,7 +581,7 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
340
581
  no_checkpoint_before: { $max: ['$no_checkpoint_before', { $literal: no_checkpoint_before_lsn }] }
341
582
  };
342
583
  }
343
- async markSnapshotDone(no_checkpoint_before_lsn, options) {
584
+ async markSnapshotDoneInternal(no_checkpoint_before_lsn, options) {
344
585
  await this.withTransaction(async () => {
345
586
  // Protect against race conditions
346
587
  const blockingTables = await this.db
@@ -364,10 +605,10 @@ export class MongoBucketBatchV1 extends MongoBucketBatch {
364
605
  await this.updateStreamMetadataInTransaction(this.snapshotDoneUpdate(no_checkpoint_before_lsn));
365
606
  });
366
607
  }
367
- async markTableSnapshotRequired(_table) {
608
+ async markTableSnapshotRequiredInternal(_table) {
368
609
  await this.updateStreamMetadata({ snapshot_done: false });
369
610
  }
370
- async markTableSnapshotDone(tables, no_checkpoint_before_lsn) {
611
+ async markTableSnapshotDoneInternal(tables, no_checkpoint_before_lsn) {
371
612
  const session = this.session;
372
613
  const ids = tables.map((table) => mongoTableId(table.id));
373
614
  await this.withTransaction(async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"MongoBucketBatchV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoBucketBatchV1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoBucketBatchV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoBucketBatchV1.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,32 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { storage } from '@powersync/service-core';
3
3
  import * as bson from 'bson';
4
- import { BucketDataSource, BucketDefinitionId } from '@powersync/service-sync-rules';
5
- import { MongoWriteBatch } from '../MongoWriteBatch.js';
6
- import { PersistedBatch, SaveParameterDataOptions, UpsertCurrentDataOptions } from '../common/PersistedBatch.js';
4
+ import { PersistedBatch, PersistedBatchOptions, SaveBucketDataOptions, SaveParameterDataOptions, UpsertCurrentDataOptions } from '../common/PersistedBatch.js';
7
5
  import { VersionedPowerSyncMongoV1 } from './VersionedPowerSyncMongoV1.js';
8
- import { CurrentDataDocument } from './models.js';
9
- export declare class PersistedBatchV1 extends PersistedBatch {
10
- protected readonly db: VersionedPowerSyncMongoV1;
11
- currentData: Map<string, mongo.AnyBulkWriteOperation<CurrentDataDocument>>;
12
- protected checkDefinitionId(_definitionId: BucketDefinitionId | null): BucketDefinitionId;
13
- protected getBucketDefinitionId(_bucketSource: BucketDataSource): BucketDefinitionId;
6
+ export declare class PersistedBatchV1 implements PersistedBatch {
7
+ private readonly db;
8
+ private readonly group_id;
9
+ private readonly operations;
10
+ private readonly currentData;
11
+ constructor(db: VersionedPowerSyncMongoV1, group_id: number, writtenSize: number, options?: PersistedBatchOptions);
12
+ get currentSize(): number;
13
+ saveBucketData(options: SaveBucketDataOptions): void;
14
+ shouldFlushTransaction(): boolean;
15
+ /**
16
+ * Keeps track of bulkwrite operations within a transaction.
17
+ *
18
+ * There may be multiple of these batches per transaction, but it may not span
19
+ * multiple transactions.
20
+ */
21
+ flush(session: mongo.ClientSession, options?: storage.BucketBatchCommitOptions): Promise<import("../common/PreparedPublication.js").PublicationStats>;
14
22
  saveParameterData(data: SaveParameterDataOptions): void;
15
23
  hardDeleteCurrentData(sourceTableId: bson.ObjectId, replicaId: storage.ReplicaId): void;
16
24
  softDeleteCurrentData(sourceTableId: bson.ObjectId, replicaId: storage.ReplicaId, _checkpointGreaterThan: bigint): void;
17
25
  upsertCurrentData(values: UpsertCurrentDataOptions): void;
18
- protected get currentDataCount(): number;
19
- protected queueBucketData(writes: MongoWriteBatch): Promise<void>;
20
- protected queueBucketParameters(writes: MongoWriteBatch): void;
21
- protected queueCurrentData(writes: MongoWriteBatch): void;
22
- protected queueBucketStates(writes: MongoWriteBatch): void;
23
- protected resetCurrentData(): void;
26
+ private queueBucketData;
27
+ private queueBucketParameters;
28
+ private queueCurrentData;
29
+ private queueBucketStates;
24
30
  private getBucketStateUpdates;
25
31
  private currentDataKey;
26
32
  private currentDataId;