@powersync/service-module-mongodb 0.21.2 → 0.22.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 (90) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/benchmarks/env.ts +11 -0
  3. package/benchmarks/replication_branch_throughput.benchmark.ts +240 -0
  4. package/dist/api/MongoRouteAPIAdapter.d.ts +6 -0
  5. package/dist/api/MongoRouteAPIAdapter.js +21 -2
  6. package/dist/api/MongoRouteAPIAdapter.js.map +1 -1
  7. package/dist/index.d.ts +1 -0
  8. package/dist/index.js +1 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/module/MongoModule.d.ts +1 -1
  11. package/dist/module/MongoModule.js +1 -0
  12. package/dist/module/MongoModule.js.map +1 -1
  13. package/dist/replication/ChangeStream.d.ts +13 -3
  14. package/dist/replication/ChangeStream.js +130 -196
  15. package/dist/replication/ChangeStream.js.map +1 -1
  16. package/dist/replication/ChangeStreamReplicationJob.d.ts +4 -1
  17. package/dist/replication/ChangeStreamReplicationJob.js +19 -8
  18. package/dist/replication/ChangeStreamReplicationJob.js.map +1 -1
  19. package/dist/replication/ChangeStreamReplicator.d.ts +4 -0
  20. package/dist/replication/ChangeStreamReplicator.js +6 -0
  21. package/dist/replication/ChangeStreamReplicator.js.map +1 -1
  22. package/dist/replication/MongoReplicationQueryProvider.d.ts +85 -0
  23. package/dist/replication/MongoReplicationQueryProvider.js +23 -0
  24. package/dist/replication/MongoReplicationQueryProvider.js.map +1 -0
  25. package/dist/replication/MongoReplicationStream.d.ts +74 -0
  26. package/dist/replication/MongoReplicationStream.js +228 -0
  27. package/dist/replication/MongoReplicationStream.js.map +1 -0
  28. package/dist/replication/MongoReplicationStreamTypes.d.ts +157 -0
  29. package/dist/replication/MongoReplicationStreamTypes.js +19 -0
  30. package/dist/replication/MongoReplicationStreamTypes.js.map +1 -0
  31. package/dist/replication/MongoSnapshotQuery.d.ts +2 -0
  32. package/dist/replication/MongoSnapshotQuery.js +12 -2
  33. package/dist/replication/MongoSnapshotQuery.js.map +1 -1
  34. package/dist/replication/MongoSnapshotter.d.ts +7 -2
  35. package/dist/replication/MongoSnapshotter.js +90 -88
  36. package/dist/replication/MongoSnapshotter.js.map +1 -1
  37. package/dist/replication/RawChangeStream.d.ts +1 -1
  38. package/dist/replication/RawChangeStream.js +1 -1
  39. package/dist/replication/RawChangeStream.js.map +1 -1
  40. package/dist/replication/estimateFilteredSnapshotCount.d.ts +12 -0
  41. package/dist/replication/estimateFilteredSnapshotCount.js +79 -0
  42. package/dist/replication/estimateFilteredSnapshotCount.js.map +1 -0
  43. package/dist/replication/replication-index.d.ts +7 -0
  44. package/dist/replication/replication-index.js +7 -0
  45. package/dist/replication/replication-index.js.map +1 -1
  46. package/dist/test-utils/ChangeStreamTestContext.d.ts +131 -0
  47. package/dist/test-utils/ChangeStreamTestContext.js +390 -0
  48. package/dist/test-utils/ChangeStreamTestContext.js.map +1 -0
  49. package/dist/test-utils/test-utils-index.d.ts +1 -0
  50. package/dist/test-utils/test-utils-index.js +2 -0
  51. package/dist/test-utils/test-utils-index.js.map +1 -0
  52. package/package.json +11 -10
  53. package/src/api/MongoRouteAPIAdapter.ts +26 -2
  54. package/src/index.ts +1 -0
  55. package/src/module/MongoModule.ts +2 -1
  56. package/src/replication/ChangeStream.ts +143 -226
  57. package/src/replication/ChangeStreamReplicationJob.ts +21 -9
  58. package/src/replication/ChangeStreamReplicator.ts +9 -0
  59. package/src/replication/MongoReplicationQueryProvider.ts +106 -0
  60. package/src/replication/MongoReplicationStream.ts +314 -0
  61. package/src/replication/MongoReplicationStreamTypes.ts +169 -0
  62. package/src/replication/MongoSnapshotQuery.ts +19 -3
  63. package/src/replication/MongoSnapshotter.ts +101 -92
  64. package/src/replication/RawChangeStream.ts +2 -2
  65. package/src/replication/estimateFilteredSnapshotCount.ts +93 -0
  66. package/src/replication/replication-index.ts +7 -0
  67. package/src/test-utils/ChangeStreamTestContext.ts +520 -0
  68. package/src/test-utils/test-utils-index.ts +1 -0
  69. package/test/src/change_event_memory.test.ts +33 -0
  70. package/test/src/change_stream.test.ts +3 -3
  71. package/test/src/change_stream_abort.test.ts +110 -0
  72. package/test/src/change_stream_test_setup.ts +38 -0
  73. package/test/src/chunked_snapshot.test.ts +3 -3
  74. package/test/src/documentdb_mode.test.ts +3 -3
  75. package/test/src/filtering_example.test.ts +65 -0
  76. package/test/src/filtering_lifecycle.test.ts +101 -0
  77. package/test/src/query_provider_availability.test.ts +77 -0
  78. package/test/src/query_provider_diagnostics.test.ts +55 -0
  79. package/test/src/replication_stream.test.ts +688 -0
  80. package/test/src/resume.test.ts +10 -4
  81. package/test/src/resuming_snapshots.test.ts +3 -3
  82. package/test/src/slow_tests.test.ts +3 -3
  83. package/test/src/snapshot_count.test.ts +146 -0
  84. package/test/src/snapshot_count_integration.test.ts +70 -0
  85. package/test/src/snapshot_query_provider.test.ts +122 -0
  86. package/test/src/stream_progress.test.ts +334 -0
  87. package/test/tsconfig.json +2 -2
  88. package/tsconfig.tsbuildinfo +1 -1
  89. package/vitest.benchmark.config.ts +15 -0
  90. package/test/src/change_stream_utils.ts +0 -375
@@ -0,0 +1,19 @@
1
+ /**
2
+ * The action to apply to a complete data change after evaluating filter membership.
3
+ */
4
+ export var MongoReplicationFilterResult;
5
+ (function (MongoReplicationFilterResult) {
6
+ /**
7
+ * Forward the original change.
8
+ */
9
+ MongoReplicationFilterResult["KEEP"] = "keep";
10
+ /**
11
+ * Omit the change while retaining its batch's recovery progress.
12
+ */
13
+ MongoReplicationFilterResult["EXCLUDE"] = "exclude";
14
+ /**
15
+ * Emit a delete because the document left the filtered set.
16
+ */
17
+ MongoReplicationFilterResult["DELETE"] = "delete";
18
+ })(MongoReplicationFilterResult || (MongoReplicationFilterResult = {}));
19
+ //# sourceMappingURL=MongoReplicationStreamTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoReplicationStreamTypes.js","sourceRoot":"","sources":["../../src/replication/MongoReplicationStreamTypes.ts"],"names":[],"mappings":"AAqIA;;GAEG;AACH,MAAM,CAAN,IAAY,4BAaX;AAbD,WAAY,4BAA4B;IACtC;;OAEG;IACH,6CAAa,CAAA;IACb;;OAEG;IACH,mDAAmB,CAAA;IACnB;;OAEG;IACH,iDAAiB,CAAA;AACnB,CAAC,EAbW,4BAA4B,KAA5B,4BAA4B,QAavC"}
@@ -10,10 +10,12 @@ export declare class ChunkedSnapshotQuery implements AsyncDisposable {
10
10
  private lastCursor;
11
11
  private collection;
12
12
  private batchSize;
13
+ private readonly filter;
13
14
  constructor(options: {
14
15
  collection: mongo.Collection;
15
16
  batchSize: number;
16
17
  key?: Uint8Array | null;
18
+ filter?: mongo.Filter<mongo.Document> | null;
17
19
  });
18
20
  nextChunk(): Promise<{
19
21
  docs: Buffer[];
@@ -13,11 +13,13 @@ export class ChunkedSnapshotQuery {
13
13
  lastCursor = null;
14
14
  collection;
15
15
  batchSize;
16
+ filter;
16
17
  constructor(options) {
17
18
  this.lastKey = options.key ? bson.deserialize(options.key, { useBigInt64: true })._id : null;
18
19
  this.lastCursor = null;
19
20
  this.collection = options.collection;
20
21
  this.batchSize = options.batchSize;
22
+ this.filter = options.filter ?? null;
21
23
  }
22
24
  async nextChunk() {
23
25
  let cursor = this.lastCursor;
@@ -33,7 +35,12 @@ export class ChunkedSnapshotQuery {
33
35
  // any parsing as an operator.
34
36
  // Starting in MongoDB 5.0, this filter can use the _id index. Source:
35
37
  // https://www.mongodb.com/docs/manual/release-notes/5.0/#general-aggregation-improvements
36
- const filter = this.lastKey == null ? {} : { $expr: { $gt: ['$_id', { $literal: this.lastKey }] } };
38
+ const continuationFilter = this.lastKey == null ? {} : { $expr: { $gt: ['$_id', { $literal: this.lastKey }] } };
39
+ const filter = this.filter == null
40
+ ? continuationFilter
41
+ : this.lastKey == null
42
+ ? this.filter
43
+ : { $and: [this.filter, continuationFilter] };
37
44
  cursor = this.collection.find(filter, {
38
45
  readConcern: 'majority',
39
46
  limit: this.batchSize,
@@ -41,7 +48,10 @@ export class ChunkedSnapshotQuery {
41
48
  // See https://github.com/mongodb/node-mongodb-native/pull/4580
42
49
  batchSize: this.batchSize + 1,
43
50
  sort: { _id: 1 },
44
- raw: true
51
+ raw: true,
52
+ // Replication predicates have stable binary semantics independent of a
53
+ // collection's default collation.
54
+ ...(this.filter == null ? {} : { collation: { locale: 'simple' } })
45
55
  });
46
56
  newCursor = true;
47
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSnapshotQuery.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotQuery.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { Logger } from '@powersync/lib-services-framework';
3
3
  import { MetricsEngine, SourceTable, storage } from '@powersync/service-core';
4
4
  import { MongoManager } from './MongoManager.js';
5
+ import { MongoReplicationQueryProvider } from './MongoReplicationQueryProvider.js';
5
6
  export interface MongoSnapshotterOptions {
6
7
  connections: MongoManager;
7
8
  storage: storage.SyncRulesBucketStorage;
@@ -13,6 +14,7 @@ export interface MongoSnapshotterOptions {
13
14
  checkpointStreamId: mongo.ObjectId;
14
15
  storageHooks?: storage.StorageHooks;
15
16
  snapshotHooks?: MongoSnapshotterHooks;
17
+ queryProvider?: MongoReplicationQueryProvider;
16
18
  }
17
19
  export interface MongoSnapshotterHooks {
18
20
  beforeSnapshotStarted?: (table: SourceTable) => Promise<void>;
@@ -29,6 +31,7 @@ export declare class MongoSnapshotter {
29
31
  private readonly defaultDb;
30
32
  private readonly syncRules;
31
33
  private readonly sourceRowConverter;
34
+ private readonly queryProvider;
32
35
  private readonly maxAwaitTimeMS;
33
36
  private readonly snapshotChunkLength;
34
37
  private readonly abortSignal;
@@ -48,7 +51,9 @@ export declare class MongoSnapshotter {
48
51
  private get usePostImages();
49
52
  private get configurePostImages();
50
53
  get supportsConcurrentSnapshots(): boolean;
51
- /** The active checkpoint strategy. Only valid after ensureDetected(). */
54
+ /**
55
+ * The active checkpoint strategy. Only valid after ensureDetected().
56
+ */
52
57
  private get checkpointImplementation();
53
58
  /**
54
59
  * Detect DocumentDB and select the checkpoint implementation. Idempotent.
@@ -83,7 +88,7 @@ export declare class MongoSnapshotter {
83
88
  */
84
89
  private validateSnapshotLsn;
85
90
  private getSourceNamespaceFilters;
86
- private rawChangeStreamBatches;
91
+ private openChangeStream;
87
92
  private touch;
88
93
  }
89
94
  export {};
@@ -6,9 +6,11 @@ import { MongoLSN } from '../common/MongoLSN.js';
6
6
  import { PostImagesOption } from '../types/types.js';
7
7
  import { escapeRegExp } from '../utils.js';
8
8
  import { createCheckpointImplementation } from './checkpoints/create-checkpoint-implementation.js';
9
+ import { estimateFilteredSnapshotCount } from './estimateFilteredSnapshotCount.js';
9
10
  import { getMongoRelation } from './MongoRelation.js';
11
+ import { DEFAULT_MONGO_REPLICATION_QUERY_PROVIDER } from './MongoReplicationQueryProvider.js';
12
+ import { openMongoReplicationStream } from './MongoReplicationStream.js';
10
13
  import { ChunkedSnapshotQuery } from './MongoSnapshotQuery.js';
11
- import { parseChangeDocument, rawChangeStream } from './RawChangeStream.js';
12
14
  import { CHECKPOINTS_COLLECTION, detectDocumentDb } from './replication-utils.js';
13
15
  import { DirectSourceRowConverter } from './SourceRowConverter.js';
14
16
  export class MongoSnapshotter {
@@ -19,6 +21,7 @@ export class MongoSnapshotter {
19
21
  defaultDb;
20
22
  syncRules;
21
23
  sourceRowConverter;
24
+ queryProvider;
22
25
  maxAwaitTimeMS;
23
26
  snapshotChunkLength;
24
27
  abortSignal;
@@ -47,6 +50,7 @@ export class MongoSnapshotter {
47
50
  this.checkpointStreamId = options.checkpointStreamId;
48
51
  this.storageHooks = options.storageHooks;
49
52
  this.snapshotHooks = options.snapshotHooks;
53
+ this.queryProvider = options.queryProvider ?? DEFAULT_MONGO_REPLICATION_QUERY_PROVIDER;
50
54
  this.changeStreamTimeout = Math.ceil(this.client.options.socketTimeoutMS * 0.9);
51
55
  this.syncRules = options.storage.getParsedSyncRules({
52
56
  defaultSchema: this.defaultDb.databaseName
@@ -67,7 +71,9 @@ export class MongoSnapshotter {
67
71
  get supportsConcurrentSnapshots() {
68
72
  return this.storage.storageConfig.softDeleteCurrentData;
69
73
  }
70
- /** The active checkpoint strategy. Only valid after ensureDetected(). */
74
+ /**
75
+ * The active checkpoint strategy. Only valid after ensureDetected().
76
+ */
71
77
  get checkpointImplementation() {
72
78
  if (this._checkpointImplementation == null) {
73
79
  throw new ServiceError(ErrorCode.PSYNC_S1301, 'Checkpoint implementation not initialized - call ensureDetected() first');
@@ -92,6 +98,7 @@ export class MongoSnapshotter {
92
98
  throw new ServiceError(ErrorCode.PSYNC_S1342, 'Standalone MongoDB instances are not supported - use a replicaset.');
93
99
  }
94
100
  }
101
+ await this.queryProvider.validateSource?.({ connectionManager: this.connections, isDocumentDb: this.isDocumentDb });
95
102
  this._checkpointImplementation = createCheckpointImplementation(this.isDocumentDb, {
96
103
  client: this.client,
97
104
  db: this.defaultDb,
@@ -181,7 +188,7 @@ export class MongoSnapshotter {
181
188
  totalEstimatedCount: count
182
189
  });
183
190
  this.queueTable(updated);
184
- this.logger.info(`To replicate: ${updated.qualifiedName}: ${updated.snapshotStatus?.replicatedCount}/~${updated.snapshotStatus?.totalEstimatedCount}`);
191
+ this.logger.info(`To replicate: ${updated.qualifiedName} ${updated.formatSnapshotProgress()}`);
185
192
  }
186
193
  }
187
194
  async waitForInitialSnapshot() {
@@ -364,13 +371,19 @@ export class MongoSnapshotter {
364
371
  const rowsReplicatedMetric = this.metrics.getCounter(ReplicationMetric.ROWS_REPLICATED);
365
372
  const bytesReplicatedMetric = this.metrics.getCounter(ReplicationMetric.DATA_REPLICATED_BYTES);
366
373
  const chunksReplicatedMetric = this.metrics.getCounter(ReplicationMetric.CHUNKS_REPLICATED);
367
- const totalEstimatedCount = await this.estimatedCountNumber(table);
374
+ const filter = this.queryProvider.getSnapshotFilter(table);
375
+ // Reuse known filtered estimates to avoid repeating an expensive count and sample. Unknown totals
376
+ // (-1) can also represent uninitialized progress, so retry them. Unfiltered metadata counts are cheap
377
+ // and refreshed before copying rows.
378
+ const previousEstimate = table.snapshotStatus?.totalEstimatedCount ?? -1;
379
+ const totalEstimatedCount = filter != null && previousEstimate >= 0 ? previousEstimate : await this.estimatedCountNumber(table, filter);
368
380
  let at = table.snapshotStatus?.replicatedCount ?? 0;
369
381
  const collection = this.client.db(table.schema).collection(table.name);
370
382
  await using query = new ChunkedSnapshotQuery({
371
383
  collection,
372
384
  key: table.snapshotStatus?.lastKey,
373
- batchSize: this.snapshotChunkLength
385
+ batchSize: this.snapshotChunkLength,
386
+ filter
374
387
  });
375
388
  if (query.lastKey != null) {
376
389
  this.logger.info(`Replicating ${table.qualifiedName} ${table.formatSnapshotProgress()} - resuming at _id > ${query.lastKey}`);
@@ -445,8 +458,17 @@ export class MongoSnapshotter {
445
458
  }
446
459
  return result.tables;
447
460
  }
448
- async estimatedCountNumber(table) {
449
- return await this.client.db(table.schema).collection(table.name).estimatedDocumentCount();
461
+ async estimatedCountNumber(table, filter = this.queryProvider.getSnapshotFilter(table)) {
462
+ const collection = this.client.db(table.schema).collection(table.name);
463
+ if (filter != null) {
464
+ return await estimateFilteredSnapshotCount({
465
+ collection,
466
+ filter,
467
+ signal: this.abortSignal,
468
+ logger: this.logger
469
+ });
470
+ }
471
+ return await collection.estimatedDocumentCount();
450
472
  }
451
473
  async getCollectionInfo(db, name) {
452
474
  return (await this.client.db(db).listCollections({ name }, { nameOnly: false }).toArray())[0];
@@ -490,7 +512,7 @@ export class MongoSnapshotter {
490
512
  this.checkpointImplementation.seedPosition(null);
491
513
  const startStreamFromLsn = await this.checkpointImplementation.createFirstBarrier();
492
514
  const filters = this.getSourceNamespaceFilters();
493
- const iter = this.rawChangeStreamBatches({
515
+ const iter = this.openChangeStream({
494
516
  lsn: startStreamFromLsn,
495
517
  maxAwaitTimeMS: 0,
496
518
  signal: this.abortSignal,
@@ -500,30 +522,46 @@ export class MongoSnapshotter {
500
522
  let lastCheckpointCreated = performance.now();
501
523
  let eventsSeen = 0;
502
524
  let batchesSeen = 0;
503
- for await (const { events } of iter) {
525
+ // Returns false once the timeout is reached. Otherwise creates another checkpoint when one is due.
526
+ const shouldKeepWaiting = async () => {
504
527
  if (performance.now() - startTime >= LSN_TIMEOUT_SECONDS * 1000) {
505
- break;
528
+ return false;
506
529
  }
507
530
  if (performance.now() - lastCheckpointCreated >= LSN_CREATE_INTERVAL_SECONDS * 1000) {
508
531
  await this.checkpointImplementation.createBatchCheckpoint();
509
532
  lastCheckpointCreated = performance.now();
510
533
  }
511
- batchesSeen += 1;
512
- for (const rawChangeDocument of events) {
513
- const changeDocument = parseChangeDocument(rawChangeDocument);
534
+ return true;
535
+ };
536
+ streamLoop: for await (const sourceBatch of iter) {
537
+ this.abortSignal.throwIfAborted();
538
+ for (const { event: changeDocument } of sourceBatch.events) {
539
+ this.abortSignal.throwIfAborted();
514
540
  const ns = 'ns' in changeDocument && 'coll' in changeDocument.ns ? changeDocument.ns : undefined;
515
541
  if (ns?.coll == CHECKPOINTS_COLLECTION && 'documentKey' in changeDocument) {
516
- const kind = this.checkpointImplementation.event.observe(changeDocument);
517
- if (kind != 'own-barrier') {
518
- // Standalone events still feed the implementation's coordinate via
519
- // event.observe above; we only resolve on our own barrier.
520
- continue;
542
+ // Standalone events still feed the implementation's coordinate via
543
+ // event.observe; we only resolve on our own barrier.
544
+ if (this.checkpointImplementation.event.observe(changeDocument) == 'own-barrier') {
545
+ // Observing our own barrier has set the coordinate (the barrier event
546
+ // carries the sentinel counter directly), so the LSN is ready.
547
+ // This is checked before the timeout, so a barrier we already hold is never discarded.
548
+ return this.checkpointImplementation.event.lsn(changeDocument);
521
549
  }
522
- // Observing our own barrier has set the coordinate (the barrier event
523
- // carries the sentinel counter directly), so the LSN is ready.
524
- return this.checkpointImplementation.event.lsn(changeDocument);
525
550
  }
526
- eventsSeen += 1;
551
+ else {
552
+ eventsSeen += 1;
553
+ }
554
+ if (!(await shouldKeepWaiting())) {
555
+ break streamLoop;
556
+ }
557
+ }
558
+ const resumeToken = sourceBatch.getResumeToken();
559
+ if (resumeToken != null) {
560
+ batchesSeen++;
561
+ }
562
+ // Empty batches have no events to trigger the per-event check.
563
+ if (!(await shouldKeepWaiting())) {
564
+ break;
527
565
  }
528
566
  }
529
567
  // Could happen if there is a very large replication lag?
@@ -533,13 +571,19 @@ export class MongoSnapshotter {
533
571
  * Given a snapshot LSN, validate that we can read from it, by opening a change stream.
534
572
  */
535
573
  async validateSnapshotLsn(lsn) {
536
- const stream = this.rawChangeStreamBatches({
537
- lsn,
538
- maxAwaitTimeMS: 0,
539
- filters: this.getSourceNamespaceFilters()
540
- });
541
- for await (const _batch of stream) {
542
- break;
574
+ const filters = this.getSourceNamespaceFilters();
575
+ const stream = this.openChangeStream({ lsn, maxAwaitTimeMS: 0, filters, signal: this.abortSignal });
576
+ for await (const batch of stream) {
577
+ this.abortSignal.throwIfAborted();
578
+ // Reading one complete event validates the position; closing the stream abandons batch progress.
579
+ for (const _change of batch.events) {
580
+ return;
581
+ }
582
+ // An empty or fully filtered batch can also validate the position through safe progress.
583
+ // If a split event is unfinished, progress is undefined: keep reading until it is complete.
584
+ if (batch.getResumeToken() != null) {
585
+ return;
586
+ }
543
587
  }
544
588
  }
545
589
  getSourceNamespaceFilters() {
@@ -582,65 +626,23 @@ export class MongoSnapshotter {
582
626
  }
583
627
  return { $match: nsFilter, multipleDatabases };
584
628
  }
585
- rawChangeStreamBatches(options) {
586
- const position = options.lsn ? this.checkpointImplementation.parseResumePosition(options.lsn) : null;
587
- const startAfter = position?.startAfter ?? undefined;
588
- const resumeAfter = position?.resumeAfter ?? undefined;
589
- let fullDocument;
590
- if (this.isDocumentDb) {
591
- // DocumentDB does not support changeStreamPreAndPostImages, so 'required' won't work.
592
- fullDocument = 'updateLookup';
593
- }
594
- else if (this.usePostImages) {
595
- // 'read_only' or 'auto_configure'
596
- // Configuration happens during snapshot, or when we see new
597
- // collections.
598
- fullDocument = 'required';
599
- }
600
- else {
601
- fullDocument = 'updateLookup';
602
- }
603
- const streamOptions = {
604
- fullDocument
605
- };
606
- if (!this.isDocumentDb) {
607
- // DocumentDB does not support showExpandedEvents.
608
- streamOptions.showExpandedEvents = true;
609
- }
610
- const pipeline = [{ $changeStream: streamOptions }, { $match: options.filters.$match }];
611
- if (!this.isDocumentDb) {
612
- // DocumentDB does not support $changeStreamSplitLargeEvent.
613
- pipeline.push({ $changeStreamSplitLargeEvent: {} });
614
- }
615
- // Only one of these options can be supplied at a time.
616
- if (resumeAfter) {
617
- streamOptions.resumeAfter = resumeAfter;
618
- }
619
- else if (startAfter != null) {
620
- // Legacy: We don't persist lsns without resumeTokens anymore, but we do still handle the
621
- // case if we have an old one. The sentinel implementation never produces a startAfter,
622
- // and a fresh DocumentDB stream opens from "now" with neither option set.
623
- streamOptions.startAtOperationTime = startAfter;
624
- }
625
- let watchDb;
626
- if (this.isDocumentDb || options.filters.multipleDatabases) {
627
- // DocumentDB only supports cluster-level change streams.
628
- // Requires readAnyDatabase@admin on Atlas.
629
- watchDb = this.client.db('admin');
630
- streamOptions.allChangesForCluster = true;
631
- }
632
- else {
633
- // Same general result, but requires less permissions than the above
634
- watchDb = this.defaultDb;
635
- }
636
- const maxAwaitTimeMS = options.maxAwaitTimeMS ?? this.maxAwaitTimeMS;
637
- return rawChangeStream(watchDb, pipeline, {
638
- batchSize: options.batchSize ?? this.snapshotChunkLength,
639
- maxAwaitTimeMS,
640
- maxTimeMS: this.changeStreamTimeout,
641
- signal: options.signal,
642
- logger: this.logger,
643
- tracer: options.tracer
629
+ openChangeStream(options) {
630
+ return openMongoReplicationStream({
631
+ db: this.defaultDb,
632
+ queryProvider: this.queryProvider,
633
+ namespaceFilter: options.filters,
634
+ isDocumentDb: this.isDocumentDb,
635
+ usePostImages: this.usePostImages,
636
+ position: options.lsn ? this.checkpointImplementation.parseResumePosition(options.lsn) : null,
637
+ onBatch: options.onBatch,
638
+ options: {
639
+ batchSize: options.batchSize ?? this.snapshotChunkLength,
640
+ maxAwaitTimeMS: options.maxAwaitTimeMS ?? this.maxAwaitTimeMS,
641
+ maxTimeMS: this.changeStreamTimeout,
642
+ signal: options.signal,
643
+ logger: this.logger,
644
+ tracer: options.tracer
645
+ }
644
646
  });
645
647
  }
646
648
  touch() {
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSnapshotter.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSnapshotter.js","sourceRoot":"","sources":["../../src/replication/MongoSnapshotter.ts"],"names":[],"mappings":"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"}
@@ -40,7 +40,7 @@ export interface ChangeStreamBatch {
40
40
  byteSize: number;
41
41
  }
42
42
  export declare function rawChangeStream(db: mongo.Db, pipeline: mongo.Document[], options: RawChangeStreamOptions): AsyncGenerator<ChangeStreamBatch, void, unknown>;
43
- export type ProjectedChangeStreamDocument = Omit<mongo.ChangeStreamDropDocument, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamRenameDocument, 'wallTime'> | Omit<mongo.ChangeStreamDeleteDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamInsertDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamUpdateDocument<Buffer>, 'wallTime' | 'updateDescription'> | Omit<mongo.ChangeStreamReplaceDocument<Buffer>, 'wallTime'>;
43
+ export type ProjectedChangeStreamDocument = Omit<mongo.ChangeStreamDropDocument, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamRenameDocument, 'wallTime'> | Omit<mongo.ChangeStreamDeleteDocument<Buffer>, 'wallTime' | 'collectionUUID'> | Omit<mongo.ChangeStreamInsertDocument<Buffer>, 'wallTime'> | Omit<mongo.ChangeStreamUpdateDocument<Buffer>, 'wallTime' | 'updateDescription'> | Omit<mongo.ChangeStreamReplaceDocument<Buffer>, 'wallTime'>;
44
44
  /**
45
45
  * Parse a change stream document, while keeping `fullDocument` as a Buffer.
46
46
  *
@@ -294,7 +294,7 @@ export function mapChangeStreamError(e) {
294
294
  }
295
295
  else if (isMongoServerError(e) &&
296
296
  e.codeName == 'NoMatchingDocument' &&
297
- e.errmsg?.includes('post-image was not found')) {
297
+ (e.errmsg?.includes('post-image was not found') || e.errmsg?.includes('pre-image was not found'))) {
298
298
  throw new ChangeStreamInvalidatedError(e.errmsg, e);
299
299
  }
300
300
  else if (isMongoServerError(e) && e.hasErrorLabel('NonResumableChangeStreamError')) {
@@ -1 +1 @@
1
- {"version":3,"file":"RawChangeStream.js","sourceRoot":"","sources":["../../src/replication/RawChangeStream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RawChangeStream.js","sourceRoot":"","sources":["../../src/replication/RawChangeStream.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { mongo } from '@powersync/lib-service-mongodb';
2
+ import type { Logger } from '@powersync/lib-services-framework';
3
+ /**
4
+ * Try an exact filtered count, then estimate selectivity from a bounded sample.
5
+ * Each attempt has a separate 10-second budget. Failures leave progress unknown (-1).
6
+ */
7
+ export declare function estimateFilteredSnapshotCount(options: {
8
+ collection: mongo.Collection;
9
+ filter: mongo.Filter<mongo.Document>;
10
+ signal: AbortSignal;
11
+ logger: Logger;
12
+ }): Promise<number>;