@powersync/service-module-mongodb-storage 0.16.0 → 0.18.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 (206) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/dist/storage/MongoBucketStorage.d.ts +35 -15
  3. package/dist/storage/MongoBucketStorage.js +309 -86
  4. package/dist/storage/MongoBucketStorage.js.map +1 -1
  5. package/dist/storage/implementation/CheckpointState.d.ts +20 -0
  6. package/dist/storage/implementation/CheckpointState.js +31 -0
  7. package/dist/storage/implementation/CheckpointState.js.map +1 -0
  8. package/dist/storage/implementation/MongoBucketBatch.d.ts +69 -39
  9. package/dist/storage/implementation/MongoBucketBatch.js +104 -313
  10. package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
  11. package/dist/storage/implementation/MongoChecksums.d.ts +11 -9
  12. package/dist/storage/implementation/MongoChecksums.js +3 -111
  13. package/dist/storage/implementation/MongoChecksums.js.map +1 -1
  14. package/dist/storage/implementation/MongoCompactor.d.ts +3 -1
  15. package/dist/storage/implementation/MongoCompactor.js +18 -9
  16. package/dist/storage/implementation/MongoCompactor.js.map +1 -1
  17. package/dist/storage/implementation/MongoHydrationState.d.ts +11 -0
  18. package/dist/storage/implementation/MongoHydrationState.js +49 -0
  19. package/dist/storage/implementation/MongoHydrationState.js.map +1 -0
  20. package/dist/storage/implementation/MongoParameterCompactor.d.ts +6 -5
  21. package/dist/storage/implementation/MongoParameterCompactor.js +24 -1
  22. package/dist/storage/implementation/MongoParameterCompactor.js.map +1 -1
  23. package/dist/storage/implementation/MongoParsedSyncConfigSet.d.ts +13 -0
  24. package/dist/storage/implementation/MongoParsedSyncConfigSet.js +64 -0
  25. package/dist/storage/implementation/MongoParsedSyncConfigSet.js.map +1 -0
  26. package/dist/storage/implementation/MongoPersistedReplicationStream.d.ts +36 -0
  27. package/dist/storage/implementation/MongoPersistedReplicationStream.js +90 -0
  28. package/dist/storage/implementation/MongoPersistedReplicationStream.js.map +1 -0
  29. package/dist/storage/implementation/MongoPersistedSyncConfigContent.d.ts +25 -0
  30. package/dist/storage/implementation/MongoPersistedSyncConfigContent.js +121 -0
  31. package/dist/storage/implementation/MongoPersistedSyncConfigContent.js.map +1 -0
  32. package/dist/storage/implementation/MongoStorageProvider.js +5 -2
  33. package/dist/storage/implementation/MongoStorageProvider.js.map +1 -1
  34. package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +50 -21
  35. package/dist/storage/implementation/MongoSyncBucketStorage.js +62 -199
  36. package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
  37. package/dist/storage/implementation/MongoSyncRulesLock.d.ts +5 -1
  38. package/dist/storage/implementation/MongoSyncRulesLock.js +9 -5
  39. package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
  40. package/dist/storage/implementation/SyncRuleStateUpdate.d.ts +14 -0
  41. package/dist/storage/implementation/SyncRuleStateUpdate.js +36 -0
  42. package/dist/storage/implementation/SyncRuleStateUpdate.js.map +1 -0
  43. package/dist/storage/implementation/common/BucketDataDoc.d.ts +1 -1
  44. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.d.ts +6 -0
  45. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.js +2 -0
  46. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.js.map +1 -0
  47. package/dist/storage/implementation/common/PersistedBatch.d.ts +2 -3
  48. package/dist/storage/implementation/common/PersistedBatch.js +5 -0
  49. package/dist/storage/implementation/common/PersistedBatch.js.map +1 -1
  50. package/dist/storage/implementation/common/SourceRecordStore.d.ts +1 -2
  51. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.d.ts +1 -1
  52. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js +1 -1
  53. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js.map +1 -1
  54. package/dist/storage/implementation/createMongoSyncBucketStorage.d.ts +2 -2
  55. package/dist/storage/implementation/createMongoSyncBucketStorage.js +4 -4
  56. package/dist/storage/implementation/createMongoSyncBucketStorage.js.map +1 -1
  57. package/dist/storage/implementation/db.d.ts +10 -2
  58. package/dist/storage/implementation/db.js +9 -14
  59. package/dist/storage/implementation/db.js.map +1 -1
  60. package/dist/storage/implementation/models.d.ts +25 -50
  61. package/dist/storage/implementation/models.js.map +1 -1
  62. package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +23 -1
  63. package/dist/storage/implementation/v1/MongoBucketBatchV1.js +403 -2
  64. package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -1
  65. package/dist/storage/implementation/v1/MongoChecksumsV1.js +114 -3
  66. package/dist/storage/implementation/v1/MongoChecksumsV1.js.map +1 -1
  67. package/dist/storage/implementation/v1/MongoCompactorV1.d.ts +1 -1
  68. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.d.ts +22 -15
  69. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js +100 -27
  70. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js.map +1 -1
  71. package/dist/storage/implementation/v1/PersistedBatchV1.d.ts +1 -2
  72. package/dist/storage/implementation/v1/PersistedBatchV1.js.map +1 -1
  73. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.d.ts +2 -1
  74. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.js +3 -0
  75. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.js.map +1 -1
  76. package/dist/storage/implementation/v1/models.d.ts +21 -1
  77. package/dist/storage/implementation/v1/models.js.map +1 -1
  78. package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +21 -0
  79. package/dist/storage/implementation/v3/MongoBucketBatchV3.js +459 -3
  80. package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -1
  81. package/dist/storage/implementation/v3/MongoChecksumsV3.d.ts +27 -7
  82. package/dist/storage/implementation/v3/MongoChecksumsV3.js +202 -18
  83. package/dist/storage/implementation/v3/MongoChecksumsV3.js.map +1 -1
  84. package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +20 -3
  85. package/dist/storage/implementation/v3/MongoCompactorV3.js +511 -22
  86. package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -1
  87. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.d.ts +62 -0
  88. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js +350 -0
  89. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js.map +1 -0
  90. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.d.ts +50 -16
  91. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +292 -75
  92. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -1
  93. package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +2 -3
  94. package/dist/storage/implementation/v3/PersistedBatchV3.js +43 -20
  95. package/dist/storage/implementation/v3/PersistedBatchV3.js.map +1 -1
  96. package/dist/storage/implementation/v3/SingleBucketStoreV3.js +52 -16
  97. package/dist/storage/implementation/v3/SingleBucketStoreV3.js.map +1 -1
  98. package/dist/storage/implementation/v3/SourceRecordStoreV3.d.ts +3 -3
  99. package/dist/storage/implementation/v3/SourceRecordStoreV3.js +13 -11
  100. package/dist/storage/implementation/v3/SourceRecordStoreV3.js.map +1 -1
  101. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.d.ts +16 -14
  102. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js +32 -27
  103. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js.map +1 -1
  104. package/dist/storage/implementation/v3/bucket-format.d.ts +4 -0
  105. package/dist/storage/implementation/v3/bucket-format.js +58 -0
  106. package/dist/storage/implementation/v3/bucket-format.js.map +1 -0
  107. package/dist/storage/implementation/v3/chunking.d.ts +10 -0
  108. package/dist/storage/implementation/v3/chunking.js +28 -0
  109. package/dist/storage/implementation/v3/chunking.js.map +1 -0
  110. package/dist/storage/implementation/v3/models.d.ts +111 -10
  111. package/dist/storage/implementation/v3/models.js +11 -28
  112. package/dist/storage/implementation/v3/models.js.map +1 -1
  113. package/dist/storage/implementation/v3/source-table-utils.d.ts +55 -0
  114. package/dist/storage/implementation/v3/source-table-utils.js +214 -0
  115. package/dist/storage/implementation/v3/source-table-utils.js.map +1 -0
  116. package/dist/storage/storage-index.d.ts +4 -4
  117. package/dist/storage/storage-index.js +4 -4
  118. package/dist/storage/storage-index.js.map +1 -1
  119. package/dist/types/types.d.ts +2 -2
  120. package/dist/utils/test-utils.d.ts +1 -2
  121. package/dist/utils/test-utils.js +5 -1
  122. package/dist/utils/test-utils.js.map +1 -1
  123. package/dist/utils/util.d.ts +1 -1
  124. package/dist/utils/util.js +3 -2
  125. package/dist/utils/util.js.map +1 -1
  126. package/package.json +9 -19
  127. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +1 -1
  128. package/src/storage/MongoBucketStorage.ts +464 -95
  129. package/src/storage/implementation/CheckpointState.ts +59 -0
  130. package/src/storage/implementation/MongoBucketBatch.ts +159 -405
  131. package/src/storage/implementation/MongoChecksums.ts +7 -138
  132. package/src/storage/implementation/MongoCompactor.ts +20 -10
  133. package/src/storage/implementation/MongoHydrationState.ts +61 -0
  134. package/src/storage/implementation/MongoParameterCompactor.ts +24 -5
  135. package/src/storage/implementation/MongoParsedSyncConfigSet.ts +88 -0
  136. package/src/storage/implementation/MongoPersistedReplicationStream.ts +118 -0
  137. package/src/storage/implementation/MongoPersistedSyncConfigContent.ts +152 -0
  138. package/src/storage/implementation/MongoStorageProvider.ts +5 -2
  139. package/src/storage/implementation/MongoSyncBucketStorage.ts +89 -250
  140. package/src/storage/implementation/MongoSyncRulesLock.ts +14 -5
  141. package/src/storage/implementation/SyncRuleStateUpdate.ts +38 -0
  142. package/src/storage/implementation/common/BucketDataDoc.ts +1 -1
  143. package/src/storage/implementation/common/MongoSyncBucketStorageCheckpoint.ts +7 -0
  144. package/src/storage/implementation/common/PersistedBatch.ts +8 -4
  145. package/src/storage/implementation/common/SourceRecordStore.ts +1 -2
  146. package/src/storage/implementation/common/VersionedPowerSyncMongoBase.ts +1 -1
  147. package/src/storage/implementation/createMongoSyncBucketStorage.ts +21 -7
  148. package/src/storage/implementation/db.ts +16 -21
  149. package/src/storage/implementation/models.ts +28 -61
  150. package/src/storage/implementation/v1/MongoBucketBatchV1.ts +503 -5
  151. package/src/storage/implementation/v1/MongoChecksumsV1.ts +137 -4
  152. package/src/storage/implementation/v1/MongoCompactorV1.ts +1 -1
  153. package/src/storage/implementation/v1/MongoSyncBucketStorageV1.ts +150 -49
  154. package/src/storage/implementation/v1/PersistedBatchV1.ts +1 -2
  155. package/src/storage/implementation/v1/VersionedPowerSyncMongoV1.ts +11 -1
  156. package/src/storage/implementation/v1/models.ts +25 -0
  157. package/src/storage/implementation/v3/MongoBucketBatchV3.ts +611 -4
  158. package/src/storage/implementation/v3/MongoChecksumsV3.ts +262 -26
  159. package/src/storage/implementation/v3/MongoCompactorV3.ts +647 -30
  160. package/src/storage/implementation/v3/MongoStoppedSyncConfigCleanup.ts +480 -0
  161. package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +397 -111
  162. package/src/storage/implementation/v3/PersistedBatchV3.ts +63 -38
  163. package/src/storage/implementation/v3/SingleBucketStoreV3.ts +59 -19
  164. package/src/storage/implementation/v3/SourceRecordStoreV3.ts +12 -12
  165. package/src/storage/implementation/v3/VersionedPowerSyncMongoV3.ts +48 -38
  166. package/src/storage/implementation/v3/bucket-format.ts +70 -0
  167. package/src/storage/implementation/v3/chunking.ts +38 -0
  168. package/src/storage/implementation/v3/models.ts +150 -44
  169. package/src/storage/implementation/v3/source-table-utils.ts +392 -0
  170. package/src/storage/storage-index.ts +12 -4
  171. package/src/utils/test-utils.ts +6 -3
  172. package/src/utils/util.ts +3 -2
  173. package/test/src/__snapshots__/storage.test.ts.snap +0 -75
  174. package/test/src/__snapshots__/storage_sync.test.ts.snap +48 -48
  175. package/test/src/cleanup-stopped-sync-configs.test.ts +648 -0
  176. package/test/src/storage.test.ts +11 -11
  177. package/test/src/storage_compacting.test.ts +1956 -6
  178. package/test/src/storage_sync.test.ts +1429 -42
  179. package/test/src/storeCurrentData.test.ts +221 -0
  180. package/test/src/util.ts +2 -1
  181. package/tsconfig.json +1 -4
  182. package/tsconfig.tsbuildinfo +1 -1
  183. package/dist/storage/implementation/BucketDefinitionMapping.d.ts +0 -17
  184. package/dist/storage/implementation/BucketDefinitionMapping.js +0 -58
  185. package/dist/storage/implementation/BucketDefinitionMapping.js.map +0 -1
  186. package/dist/storage/implementation/MongoPersistedSyncRules.d.ts +0 -14
  187. package/dist/storage/implementation/MongoPersistedSyncRules.js +0 -64
  188. package/dist/storage/implementation/MongoPersistedSyncRules.js.map +0 -1
  189. package/dist/storage/implementation/MongoPersistedSyncRulesContent.d.ts +0 -15
  190. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js +0 -42
  191. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js.map +0 -1
  192. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.d.ts +0 -13
  193. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js +0 -2
  194. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js.map +0 -1
  195. package/dist/storage/implementation/v3/MongoParameterCompactorV3.d.ts +0 -9
  196. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js +0 -18
  197. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js.map +0 -1
  198. package/dist/storage/implementation/v3/MongoParameterLookupV3.d.ts +0 -5
  199. package/dist/storage/implementation/v3/MongoParameterLookupV3.js +0 -9
  200. package/dist/storage/implementation/v3/MongoParameterLookupV3.js.map +0 -1
  201. package/src/storage/implementation/BucketDefinitionMapping.ts +0 -72
  202. package/src/storage/implementation/MongoPersistedSyncRules.ts +0 -76
  203. package/src/storage/implementation/MongoPersistedSyncRulesContent.ts +0 -56
  204. package/src/storage/implementation/common/MongoSyncBucketStorageContext.ts +0 -15
  205. package/src/storage/implementation/v3/MongoParameterCompactorV3.ts +0 -24
  206. package/src/storage/implementation/v3/MongoParameterLookupV3.ts +0 -12
@@ -1,34 +1,93 @@
1
1
  import * as lib_mongo from '@powersync/lib-service-mongodb';
2
+ import { ServiceAssertionError } from '@powersync/lib-services-framework';
2
3
  import { internalToExternalOpId, ParameterSetLimitExceededError, storage } from '@powersync/service-core';
3
4
  import { JSONBig } from '@powersync/service-jsonbig';
4
5
  import * as bson from 'bson';
5
6
  import { mapOpEntry, readSingleBatch, setSessionSnapshotTime } from '../../../utils/util.js';
7
+ import { MongoParameterCompactor } from '../MongoParameterCompactor.js';
6
8
  import { MongoSyncBucketStorage } from '../MongoSyncBucketStorage.js';
7
- import { loadBucketDataDocumentV3 } from './models.js';
9
+ import { loadBucketDataDocument } from './bucket-format.js';
10
+ import { deserializeParameterLookup, serializeParameterLookup } from './models.js';
8
11
  import { MongoBucketBatchV3 } from './MongoBucketBatchV3.js';
9
12
  import { MongoChecksumsV3 } from './MongoChecksumsV3.js';
10
13
  import { MongoCompactorV3 } from './MongoCompactorV3.js';
11
- import { MongoParameterCompactorV3 } from './MongoParameterCompactorV3.js';
12
- import { deserializeParameterLookupV3, serializeParameterLookupV3 } from './MongoParameterLookupV3.js';
14
+ import { MongoStoppedSyncConfigCleanup } from './MongoStoppedSyncConfigCleanup.js';
15
+ function* walkDocumentOps(data, documentOpCounts, documentSizes) {
16
+ let opIndex = 0;
17
+ for (const [docIndex, opCount] of documentOpCounts.entries()) {
18
+ for (let i = 0; i < opCount; i++) {
19
+ yield { row: data[opIndex++], docIndex, isLastOpInDocument: i === opCount - 1 };
20
+ }
21
+ }
22
+ }
23
+ function extractRowsFromDocument(doc, context, bucketMap, endOpId, remainingLimit) {
24
+ const rows = [];
25
+ for (const row of loadBucketDataDocument(context, doc)) {
26
+ const bucket = row.bucketKey.bucket;
27
+ const bucketStart = bucketMap.get(bucket);
28
+ if (bucketStart == null) {
29
+ throw new Error(`data for unexpected bucket: ${bucket}`);
30
+ }
31
+ if (row.o <= bucketStart) {
32
+ continue;
33
+ }
34
+ if (row.o > endOpId) {
35
+ continue;
36
+ }
37
+ rows.push(row);
38
+ remainingLimit--;
39
+ if (remainingLimit <= 0) {
40
+ return { rows, remainingLimit, limitReached: true };
41
+ }
42
+ }
43
+ return { rows, remainingLimit, limitReached: false };
44
+ }
13
45
  export class MongoSyncBucketStorageV3 extends MongoSyncBucketStorage {
14
- constructor(factory, group_id, sync_rules, slot_name, writeCheckpointMode, options) {
15
- super(factory, group_id, sync_rules, slot_name, writeCheckpointMode, options);
46
+ constructor(factory, replicationStreamId, replicationStream, replicationStreamName, writeCheckpointMode, options) {
47
+ super(factory, replicationStreamId, replicationStream, replicationStreamName, writeCheckpointMode, options);
48
+ if (replicationStream.syncConfigIds.length == 0) {
49
+ throw new ServiceAssertionError('Missing sync config id for storage v3');
50
+ }
51
+ }
52
+ get syncConfigIds() {
53
+ return this.replicationStream.syncConfigIds;
54
+ }
55
+ get syncRulesCollection() {
56
+ return this.db.sync_rules;
57
+ }
58
+ syncConfigMatch(extra = {}) {
59
+ return {
60
+ _id: this.replicationStreamId,
61
+ sync_configs: {
62
+ $elemMatch: {
63
+ _id: { $in: this.syncConfigIds },
64
+ ...extra
65
+ }
66
+ }
67
+ };
68
+ }
69
+ syncConfigProjection(extra = {}) {
70
+ return {
71
+ ...extra,
72
+ sync_configs: 1
73
+ };
74
+ }
75
+ selectedSyncConfigs(doc) {
76
+ return doc?.sync_configs?.filter((config) => this.syncConfigIds.some((id) => id.equals(config._id))) ?? [];
16
77
  }
17
78
  async initializeVersionStorage() {
18
- const mapping = this.mapping;
19
- for (let source of mapping.allBucketDefinitionIds()) {
20
- const collection = this.db.bucketDataV3(this.group_id, source).collectionName;
21
- await this.db.db
22
- .createCollection(collection, { clusteredIndex: { name: '_id', unique: true, key: { _id: 1 } } })
23
- .catch((error) => {
79
+ const storageIds = this.storageIds;
80
+ for (const source of storageIds.bucketDefinitionIds) {
81
+ const collection = this.db.bucketData(this.replicationStreamId, source).collectionName;
82
+ await this.db.db.createCollection(collection, {}).catch((error) => {
24
83
  if (lib_mongo.isMongoServerError(error) && error.codeName === 'NamespaceExists') {
25
84
  return;
26
85
  }
27
86
  throw error;
28
87
  });
29
88
  }
30
- for (let indexId of mapping.allParameterIndexIds()) {
31
- await this.db.parameterIndexV3(this.group_id, indexId).createIndex({
89
+ for (const indexId of storageIds.parameterIndexIds) {
90
+ await this.db.parameterIndex(this.replicationStreamId, indexId).createIndex({
32
91
  lookup: 1,
33
92
  key: 1,
34
93
  _id: -1
@@ -38,44 +97,132 @@ export class MongoSyncBucketStorageV3 extends MongoSyncBucketStorage {
38
97
  }
39
98
  }
40
99
  createMongoChecksums(options) {
41
- return new MongoChecksumsV3(this.db, this.group_id, {
100
+ return new MongoChecksumsV3(this.db, this.replicationStreamId, {
42
101
  ...options.checksumOptions,
43
102
  storageConfig: options?.storageConfig,
44
- mapping: this.sync_rules.mapping
103
+ syncConfigMapping: () => this.singleSyncConfigMapping()
45
104
  });
46
105
  }
47
106
  createMongoCompactor(options) {
48
107
  return new MongoCompactorV3(this, this.db, options);
49
108
  }
50
109
  createMongoParameterCompactor(checkpoint, options) {
51
- return new MongoParameterCompactorV3(this.db, this.group_id, checkpoint, options);
52
- }
53
- createWriterImpl(batchOptions) {
54
- return new MongoBucketBatchV3(batchOptions);
55
- }
56
- sourceTableBaseId() {
57
- return {};
58
- }
59
- augmentCreatedSourceTableDocument(createDoc, options, candidateSourceTable) {
60
- const bucketDataSourceIds = options.sync_rules.definition.bucketDataSources
61
- .filter((source) => source.tableSyncsData(candidateSourceTable))
62
- .map((source) => this.mapping.bucketSourceId(source));
63
- const parameterLookupSourceIds = options.sync_rules.definition.bucketParameterLookupSources
64
- .filter((source) => source.tableSyncsParameters(candidateSourceTable))
65
- .map((source) => this.mapping.parameterLookupId(source));
66
- Object.assign(createDoc, {
67
- bucket_data_source_ids: bucketDataSourceIds,
68
- parameter_lookup_source_ids: parameterLookupSourceIds
110
+ return new MongoParameterCompactor(this.db, this.replicationStreamId, checkpoint, options, () => this.db
111
+ .listParameterIndexCollections(this.replicationStreamId)
112
+ .then((collections) => collections.map((c) => c.collection)));
113
+ }
114
+ async fetchPersistedOpHead() {
115
+ const doc = await this.syncRulesCollection.findOne({ _id: this.replicationStreamId }, { projection: { last_persisted_op: 1 } });
116
+ return doc?.last_persisted_op == null ? null : BigInt(doc.last_persisted_op);
117
+ }
118
+ async createWriterImpl(options) {
119
+ const doc = await this.syncRulesCollection.findOne({ _id: this.replicationStreamId }, { projection: { resume_lsn: 1 } });
120
+ return new MongoBucketBatchV3({
121
+ ...this.writerBatchOptions(options),
122
+ // The stream-level replication position - per-config checkpoint LSNs are consistency
123
+ // markers and do not affect where replication resumes.
124
+ resumeFromLsn: doc?.resume_lsn ?? null,
125
+ syncConfigIds: this.syncConfigIds
69
126
  });
70
127
  }
71
- async initializeResolvedSourceRecords(sourceTableId) {
72
- await this.db.initializeSourceRecordsCollection(this.group_id, sourceTableId);
128
+ async fetchCheckpointState(session) {
129
+ const doc = await this.syncRulesCollection.findOne(this.syncConfigMatch({
130
+ state: { $in: [storage.SyncRuleState.ACTIVE, storage.SyncRuleState.ERRORED] }
131
+ }), {
132
+ session,
133
+ projection: this.syncConfigProjection()
134
+ });
135
+ // Checkpoints are served from the single active config. A PROCESSING config in the same
136
+ // stream (incremental reprocessing) does not affect checkpoints until it is activated.
137
+ const syncConfigs = this.selectedSyncConfigs(doc).filter((config) => [storage.SyncRuleState.ACTIVE, storage.SyncRuleState.ERRORED].includes(config.state));
138
+ if (syncConfigs.length > 1) {
139
+ // Activation atomically replaces the previous active config, so this cannot happen unless
140
+ // the stored state is corrupt.
141
+ throw new ServiceAssertionError(`Expected a single active sync config, got ${syncConfigs.map((config) => config._id.toHexString()).join(', ')}`);
142
+ }
143
+ const syncConfig = syncConfigs[0];
144
+ if (syncConfig == null || !syncConfig.snapshot_done) {
145
+ return null;
146
+ }
147
+ return {
148
+ checkpoint: syncConfig.last_checkpoint ?? 0n,
149
+ lsn: syncConfig.last_checkpoint_lsn ?? null
150
+ };
151
+ }
152
+ async terminateSyncRuleState() {
153
+ await this.db.sync_rules.updateOne({
154
+ _id: this.replicationStreamId
155
+ }, {
156
+ $set: {
157
+ state: storage.SyncRuleState.TERMINATED,
158
+ persisted_lsn: null,
159
+ sync_configs: []
160
+ }
161
+ });
162
+ }
163
+ async getStatusImpl() {
164
+ const doc = await this.syncRulesCollection.findOne(this.syncConfigMatch(), {
165
+ projection: this.syncConfigProjection({ resume_lsn: 1 })
166
+ });
167
+ const syncConfigs = this.selectedSyncConfigs(doc);
168
+ if (doc == null || syncConfigs.length == 0) {
169
+ throw new ServiceAssertionError('Cannot find replication stream status');
170
+ }
171
+ return {
172
+ snapshotDone: syncConfigs.every((config) => config.snapshot_done ?? false) &&
173
+ syncConfigs.every((config) => config.last_checkpoint_lsn != null),
174
+ resumeLsn: doc.resume_lsn ?? null
175
+ };
176
+ }
177
+ async clearSyncRuleState() {
178
+ // Clearing resets the entire replication stream (bucket data and the op sequence), so reset
179
+ // the checkpoint state for _all_ embedded sync configs, not only the ones selected for this
180
+ // storage instance. This maintains the invariant that no config has a last_checkpoint past
181
+ // the stream-level last_persisted_op.
182
+ await this.syncRulesCollection.updateOne({ _id: this.replicationStreamId }, {
183
+ $set: {
184
+ persisted_lsn: null,
185
+ 'sync_configs.$[].snapshot_done': false,
186
+ 'sync_configs.$[].last_checkpoint_lsn': null,
187
+ 'sync_configs.$[].last_checkpoint': null,
188
+ 'sync_configs.$[].no_checkpoint_before': null
189
+ },
190
+ $unset: {
191
+ resume_lsn: 1,
192
+ last_persisted_op: 1
193
+ }
194
+ }, {
195
+ maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS
196
+ });
197
+ }
198
+ /**
199
+ * The persisted mapping of the single sync config that read operations are served from.
200
+ *
201
+ * Reads always operate on a single sync config: read-path storage instances are
202
+ * constructed for the active sync config only (see MongoBucketStorage.getActiveSyncConfig),
203
+ * and checkpoints are served from the single active config (see fetchCheckpointState).
204
+ * Within a single sync config, unique names are the persistence key of its rule mapping,
205
+ * so its name-keyed {@link SingleSyncConfigBucketDefinitionMapping} resolves sources from
206
+ * any parse of that config unambiguously - no parsed-set identity is required.
207
+ *
208
+ * Throws on storage instances with multiple sync configs (replication-side instances),
209
+ * which must not serve reads.
210
+ */
211
+ singleSyncConfigMapping() {
212
+ const content = this.replicationStream.syncConfigContent;
213
+ if (content.length != 1) {
214
+ throw new ServiceAssertionError(`Read operations require a storage instance with a single sync config, got ${content.length}`);
215
+ }
216
+ return content[0].mapping;
73
217
  }
74
218
  get versionContext() {
219
+ const self = this;
75
220
  return {
76
221
  db: this.db,
77
- group_id: this.group_id,
78
- mapping: this.mapping
222
+ replicationStreamId: this.replicationStreamId,
223
+ get mapping() {
224
+ return self.singleSyncConfigMapping();
225
+ }
79
226
  };
80
227
  }
81
228
  getParameterSetsImpl(checkpoint, lookups, limit) {
@@ -85,23 +232,23 @@ export class MongoSyncBucketStorageV3 extends MongoSyncBucketStorage {
85
232
  return getBucketDataBatchV3(this.versionContext, checkpoint, dataBuckets, options);
86
233
  }
87
234
  async clearBucketData(_signal) {
88
- for (const collection of await this.db.listBucketDataCollectionsV3(this.group_id)) {
235
+ for (const collection of await this.db.listBucketDataCollections(this.replicationStreamId)) {
89
236
  await collection.drop();
90
237
  }
91
238
  }
92
239
  async clearParameterIndexes(_signal) {
93
- for (const collection of await this.db.listParameterIndexCollectionsV3(this.group_id)) {
240
+ for (const collection of await this.db.listParameterIndexCollections(this.replicationStreamId)) {
94
241
  await collection.collection.drop();
95
242
  }
96
243
  }
97
244
  async clearSourceRecords(_signal) {
98
- for (const collection of await this.db.listSourceRecordCollectionsV3(this.group_id)) {
245
+ for (const collection of await this.db.listSourceRecordCollections(this.replicationStreamId)) {
99
246
  await collection.drop();
100
247
  }
101
248
  }
102
249
  async clearBucketState(_signal) {
103
250
  await this.db
104
- .bucketStateV3(this.group_id)
251
+ .bucketState(this.replicationStreamId)
105
252
  .drop({ maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS })
106
253
  .catch((error) => {
107
254
  if (lib_mongo.isMongoServerError(error) && error.codeName === 'NamespaceNotFound') {
@@ -112,7 +259,7 @@ export class MongoSyncBucketStorageV3 extends MongoSyncBucketStorage {
112
259
  }
113
260
  async clearSourceTables(_signal) {
114
261
  await this.db
115
- .sourceTablesV3(this.group_id)
262
+ .sourceTables(this.replicationStreamId)
116
263
  .drop({ maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS })
117
264
  .catch((error) => {
118
265
  if (lib_mongo.isMongoServerError(error) && error.codeName === 'NamespaceNotFound') {
@@ -121,6 +268,16 @@ export class MongoSyncBucketStorageV3 extends MongoSyncBucketStorage {
121
268
  throw error;
122
269
  });
123
270
  }
271
+ async cleanupStoppedSyncConfigs(options) {
272
+ return new MongoStoppedSyncConfigCleanup({
273
+ db: this.db,
274
+ replicationStreamId: this.replicationStreamId,
275
+ signal: options.signal,
276
+ logger: options.logger ?? this.logger,
277
+ defaultSchema: options.defaultSchema,
278
+ sourceConnectionTag: options.sourceConnectionTag
279
+ }).run();
280
+ }
124
281
  getDataBucketChangesImpl(options) {
125
282
  return getDataBucketChangesV3(this.versionContext, options);
126
283
  }
@@ -133,8 +290,8 @@ export async function getParameterSetsV3(ctx, checkpoint, lookups, limit) {
133
290
  setSessionSnapshotTime(session, checkpoint.snapshotTime);
134
291
  const buildLookupPipeline = (lookup, index) => {
135
292
  const indexId = lookup.indexId;
136
- const collection = ctx.db.parameterIndexV3(ctx.group_id, indexId);
137
- const lookupFilter = serializeParameterLookupV3(lookup);
293
+ const collection = ctx.db.parameterIndex(ctx.replicationStreamId, indexId);
294
+ const lookupFilter = serializeParameterLookup(lookup);
138
295
  return {
139
296
  collection,
140
297
  pipeline: [
@@ -227,49 +384,107 @@ export async function* getBucketDataBatchV3(ctx, checkpoint, dataBuckets, option
227
384
  requestsByDefinition.set(definitionId, requests);
228
385
  }
229
386
  const definitionGroups = Array.from(requestsByDefinition.entries());
230
- for (let groupIndex = 0; groupIndex < definitionGroups.length && remainingLimit > 0; groupIndex++) {
231
- const [definitionId, requests] = definitionGroups[groupIndex];
387
+ for (const [groupIndex, [definitionId, requests]] of definitionGroups.entries()) {
388
+ if (remainingLimit <= 0) {
389
+ break;
390
+ }
232
391
  const hasLaterDefinitionGroups = groupIndex < definitionGroups.length - 1;
233
392
  const bucketMap = new Map(requests.map((request) => [request.bucket, request.start]));
234
393
  const filters = Array.from(bucketMap.entries()).map(([bucket, start]) => ({
235
394
  _id: {
236
- $gt: {
237
- b: bucket,
238
- o: start
239
- },
240
- $lte: {
241
- b: bucket,
242
- o: end
243
- }
244
- }
395
+ $gt: { b: bucket, o: start },
396
+ $lte: { b: bucket, o: new bson.MaxKey() }
397
+ },
398
+ min_op: { $lte: end }
399
+ // MongoDB Filter<T> doesn't accept compound _id ranges or dotted field paths in its type.
245
400
  }));
246
- const cursor = ctx.db.bucketDataV3(ctx.group_id, definitionId).find({
247
- $or: filters
248
- }, {
401
+ const collection = ctx.db.bucketData(ctx.replicationStreamId, definitionId);
402
+ // MongoDB Filter<T> doesn't accept the $or operator in its type.
403
+ const filter = { $or: filters };
404
+ const context = { replicationStreamId: ctx.replicationStreamId, definitionId };
405
+ const limit = remainingLimit;
406
+ const cursorOptions = { limit: remainingLimit, batchSize: remainingLimit + 1 };
407
+ // raw: true returns Buffers, but the driver typing doesn't reflect that
408
+ // without an explicit cast to FindCursor<Buffer>.
409
+ const cursor = collection.find(filter, {
249
410
  session: undefined,
250
411
  sort: { _id: 1 },
251
- limit: remainingLimit,
252
- batchSize: remainingLimit + 1,
253
412
  raw: true,
254
- maxTimeMS: lib_mongo.db.MONGO_OPERATION_TIMEOUT_MS
413
+ maxTimeMS: lib_mongo.db.MONGO_OPERATION_TIMEOUT_MS,
414
+ ...cursorOptions
255
415
  });
256
- let { data, hasMore: batchHasMore } = await readSingleBatch(cursor).catch((e) => {
416
+ let { data: rawData, hasMore } = await readSingleBatch(cursor).catch((e) => {
257
417
  throw lib_mongo.mapQueryError(e, 'while reading bucket data');
258
418
  });
259
- if (data.length == remainingLimit) {
260
- batchHasMore = true;
419
+ if (cursorOptions.limit != null && rawData.length >= cursorOptions.limit) {
420
+ hasMore = true;
421
+ }
422
+ const data = [];
423
+ const documentOpCounts = [];
424
+ const documentSizes = [];
425
+ let sharedRemainingLimit = limit;
426
+ let limitReached = false;
427
+ // Buckets whose matched document contributed no rows after filtering.
428
+ const completeEmptyBuckets = new Set();
429
+ for (const raw of rawData) {
430
+ const doc = bson.deserialize(raw, storage.BSON_DESERIALIZE_INTERNAL_OPTIONS);
431
+ const { rows, remainingLimit, limitReached: docLimitReached } = extractRowsFromDocument(doc, context, bucketMap, end, sharedRemainingLimit);
432
+ if (rows.length == 0) {
433
+ // The document straddles the requested (start, end] window: it matched the
434
+ // query, but none of its ops are in range. Since its _id.o (max op) must be
435
+ // > end (any op <= end would have been > start, and thus in range), and
436
+ // document ranges per bucket are disjoint, no later document for this bucket
437
+ // can match either. The bucket is complete through the checkpoint.
438
+ completeEmptyBuckets.add(doc._id.b);
439
+ }
440
+ data.push(...rows);
441
+ documentOpCounts.push(rows.length);
442
+ documentSizes.push(raw.byteLength);
443
+ sharedRemainingLimit = remainingLimit;
444
+ if (docLimitReached) {
445
+ limitReached = true;
446
+ break;
447
+ }
448
+ }
449
+ const batchHasMore = hasMore || limitReached;
450
+ // Empty chunks are not forwarded to clients, but report progress to the caller:
451
+ // the bucket's position advances to the checkpoint, so it is not re-requested.
452
+ // If the batch produced no data at all, the last empty chunk also carries the
453
+ // has_more signal, so the caller re-requests the remaining buckets instead of
454
+ // treating an all-filtered batch as the end of the stream.
455
+ const emptyBuckets = Array.from(completeEmptyBuckets);
456
+ for (const [index, bucket] of emptyBuckets.entries()) {
457
+ const startOpId = bucketMap.get(bucket);
458
+ if (startOpId == null) {
459
+ throw new ServiceAssertionError(`data for unexpected bucket: ${bucket}`);
460
+ }
461
+ const isLastChunkOfBatch = data.length == 0 && index == emptyBuckets.length - 1;
462
+ yield {
463
+ chunkData: {
464
+ bucket,
465
+ after: internalToExternalOpId(startOpId),
466
+ has_more: isLastChunkOfBatch && batchHasMore,
467
+ data: [],
468
+ next_after: internalToExternalOpId(end)
469
+ },
470
+ targetOp: null
471
+ };
261
472
  }
262
473
  if (data.length == 0) {
474
+ if (batchHasMore) {
475
+ // The remaining documents are read in the next round, after the caller has
476
+ // advanced the positions of the empty buckets above.
477
+ return;
478
+ }
263
479
  continue;
264
480
  }
265
481
  remainingLimit -= data.length;
266
- let chunkSizeBytes = 0;
482
+ let currentChunkSizeBytes = 0;
267
483
  let currentChunk = null;
268
484
  let targetOp = null;
269
- for (let rawData of data) {
270
- const row = loadBucketDataDocumentV3({ replicationStreamId: ctx.group_id, definitionId }, bson.deserialize(rawData, storage.BSON_DESERIALIZE_INTERNAL_OPTIONS));
485
+ for (const { row, docIndex, isLastOpInDocument } of walkDocumentOps(data, documentOpCounts, documentSizes)) {
271
486
  const bucket = row.bucketKey.bucket;
272
- if (currentChunk == null || currentChunk.bucket != bucket || chunkSizeBytes >= chunkSizeLimitBytes) {
487
+ if (currentChunk == null || currentChunk.bucket != bucket || currentChunkSizeBytes >= chunkSizeLimitBytes) {
273
488
  let start = undefined;
274
489
  if (currentChunk != null) {
275
490
  if (currentChunk.bucket == bucket) {
@@ -278,8 +493,8 @@ export async function* getBucketDataBatchV3(ctx, checkpoint, dataBuckets, option
278
493
  }
279
494
  const yieldChunk = currentChunk;
280
495
  currentChunk = null;
281
- chunkSizeBytes = 0;
282
- yield { chunkData: yieldChunk, targetOp: targetOp };
496
+ currentChunkSizeBytes = 0;
497
+ yield { chunkData: yieldChunk, targetOp };
283
498
  targetOp = null;
284
499
  }
285
500
  if (start == null) {
@@ -303,12 +518,14 @@ export async function* getBucketDataBatchV3(ctx, checkpoint, dataBuckets, option
303
518
  }
304
519
  currentChunk.data.push(entry);
305
520
  currentChunk.next_after = entry.op_id;
306
- chunkSizeBytes += rawData.byteLength;
521
+ if (isLastOpInDocument) {
522
+ currentChunkSizeBytes += documentSizes[docIndex];
523
+ }
307
524
  }
308
525
  if (currentChunk != null) {
309
526
  const yieldChunk = currentChunk;
310
527
  yieldChunk.has_more = batchHasMore || (remainingLimit <= 0 && hasLaterDefinitionGroups);
311
- yield { chunkData: yieldChunk, targetOp: targetOp };
528
+ yield { chunkData: yieldChunk, targetOp };
312
529
  }
313
530
  if (batchHasMore || remainingLimit <= 0) {
314
531
  return;
@@ -318,7 +535,7 @@ export async function* getBucketDataBatchV3(ctx, checkpoint, dataBuckets, option
318
535
  export async function getDataBucketChangesV3(ctx, options) {
319
536
  const limit = 1000;
320
537
  const bucketStateUpdates = await ctx.db
321
- .bucketStateV3(ctx.group_id)
538
+ .bucketState(ctx.replicationStreamId)
322
539
  .aggregate([
323
540
  {
324
541
  $match: {
@@ -353,7 +570,7 @@ export async function getParameterBucketChangesV3(ctx, options) {
353
570
  const indexIds = ctx.mapping.allParameterIndexIds();
354
571
  const collections = indexIds.map((indexId) => ({
355
572
  indexId,
356
- collection: ctx.db.parameterIndexV3(ctx.group_id, indexId)
573
+ collection: ctx.db.parameterIndex(ctx.replicationStreamId, indexId)
357
574
  }));
358
575
  if (collections.length == 0) {
359
576
  return {
@@ -401,7 +618,7 @@ export async function getParameterBucketChangesV3(ctx, options) {
401
618
  invalidateParameterBuckets: invalidateParameterUpdates,
402
619
  updatedParameterLookups: invalidateParameterUpdates
403
620
  ? new Set()
404
- : new Set(parameterUpdates.map((p) => JSONBig.stringify(deserializeParameterLookupV3(p.lookup, p.indexId))))
621
+ : new Set(parameterUpdates.map((p) => JSONBig.stringify(deserializeParameterLookup(p.lookup, p.indexId))))
405
622
  };
406
623
  }
407
624
  //# sourceMappingURL=MongoSyncBucketStorageV3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSyncBucketStorageV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/MongoSyncBucketStorageV3.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSyncBucketStorageV3.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/MongoSyncBucketStorageV3.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { InternalOpId, storage } from '@powersync/service-core';
3
- import { BucketDataSource } from '@powersync/service-sync-rules';
3
+ import { BucketDataSource, BucketDefinitionId } from '@powersync/service-sync-rules';
4
4
  import * as bson from 'bson';
5
- import { BucketDefinitionId } from '../BucketDefinitionMapping.js';
6
5
  import { PersistedBatch, SaveParameterDataOptions, UpsertCurrentDataOptions } from '../common/PersistedBatch.js';
7
6
  import { CurrentDataDocumentV3 } from './models.js';
8
7
  import { VersionedPowerSyncMongoV3 } from './VersionedPowerSyncMongoV3.js';
9
8
  export declare class PersistedBatchV3 extends PersistedBatch {
10
- protected readonly db: VersionedPowerSyncMongoV3;
11
9
  currentData: {
12
10
  sourceTableId: bson.ObjectId;
13
11
  operation: mongo.AnyBulkWriteOperation<CurrentDataDocumentV3>;
14
12
  }[];
15
13
  sourceTablePendingDeletes: Map<string, bigint>;
14
+ protected readonly db: VersionedPowerSyncMongoV3;
16
15
  protected checkDefinitionId(definitionId: BucketDefinitionId | null): BucketDefinitionId;
17
16
  protected getBucketDefinitionId(bucketSource: BucketDataSource): BucketDefinitionId;
18
17
  saveParameterData(data: SaveParameterDataOptions): void;