@powersync/service-module-mongodb-storage 0.0.0-dev-20260602073133 → 0.0.0-dev-20260803144812

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (239) hide show
  1. package/CHANGELOG.md +101 -5
  2. package/dist/migrations/db/migrations/1782950400000-checkpoint-requested-at-index.d.ts +3 -0
  3. package/dist/migrations/db/migrations/1782950400000-checkpoint-requested-at-index.js +41 -0
  4. package/dist/migrations/db/migrations/1782950400000-checkpoint-requested-at-index.js.map +1 -0
  5. package/dist/storage/MongoBucketStorage.d.ts +41 -16
  6. package/dist/storage/MongoBucketStorage.js +226 -71
  7. package/dist/storage/MongoBucketStorage.js.map +1 -1
  8. package/dist/storage/implementation/MongoBucketBatch.d.ts +56 -25
  9. package/dist/storage/implementation/MongoBucketBatch.js +110 -62
  10. package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
  11. package/dist/storage/implementation/MongoChecksums.d.ts +41 -13
  12. package/dist/storage/implementation/MongoChecksums.js +36 -121
  13. package/dist/storage/implementation/MongoChecksums.js.map +1 -1
  14. package/dist/storage/implementation/MongoCompactor.d.ts +17 -19
  15. package/dist/storage/implementation/MongoCompactor.js +80 -263
  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 +7 -6
  21. package/dist/storage/implementation/MongoParameterCompactor.js +25 -2
  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 +123 -0
  31. package/dist/storage/implementation/MongoPersistedSyncConfigContent.js.map +1 -0
  32. package/dist/storage/implementation/MongoStorageProvider.js +39 -4
  33. package/dist/storage/implementation/MongoStorageProvider.js.map +1 -1
  34. package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +57 -29
  35. package/dist/storage/implementation/MongoSyncBucketStorage.js +87 -61
  36. package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
  37. package/dist/storage/implementation/MongoSyncRulesLock.d.ts +1 -1
  38. package/dist/storage/implementation/MongoSyncRulesLock.js +3 -3
  39. package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
  40. package/dist/storage/implementation/MongoWriteCheckpointAPI.d.ts +2 -1
  41. package/dist/storage/implementation/MongoWriteCheckpointAPI.js +171 -24
  42. package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +1 -1
  43. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.d.ts +8 -0
  44. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.js +2 -0
  45. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.js.map +1 -0
  46. package/dist/storage/implementation/common/PersistedBatch.d.ts +7 -2
  47. package/dist/storage/implementation/common/PersistedBatch.js +12 -0
  48. package/dist/storage/implementation/common/PersistedBatch.js.map +1 -1
  49. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js +1 -1
  50. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js.map +1 -1
  51. package/dist/storage/implementation/createMongoSyncBucketStorage.d.ts +2 -2
  52. package/dist/storage/implementation/createMongoSyncBucketStorage.js +4 -4
  53. package/dist/storage/implementation/createMongoSyncBucketStorage.js.map +1 -1
  54. package/dist/storage/implementation/db.js +17 -15
  55. package/dist/storage/implementation/db.js.map +1 -1
  56. package/dist/storage/implementation/models.d.ts +20 -13
  57. package/dist/storage/implementation/models.js.map +1 -1
  58. package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +9 -1
  59. package/dist/storage/implementation/v1/MongoBucketBatchV1.js +61 -29
  60. package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -1
  61. package/dist/storage/implementation/v1/MongoChecksumsV1.d.ts +4 -4
  62. package/dist/storage/implementation/v1/MongoChecksumsV1.js +119 -7
  63. package/dist/storage/implementation/v1/MongoChecksumsV1.js.map +1 -1
  64. package/dist/storage/implementation/v1/MongoCompactorV1.d.ts +11 -2
  65. package/dist/storage/implementation/v1/MongoCompactorV1.js +251 -2
  66. package/dist/storage/implementation/v1/MongoCompactorV1.js.map +1 -1
  67. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.d.ts +18 -19
  68. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js +82 -58
  69. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js.map +1 -1
  70. package/dist/storage/implementation/v1/SingleBucketStoreV1.d.ts +9 -10
  71. package/dist/storage/implementation/v1/SingleBucketStoreV1.js +2 -8
  72. package/dist/storage/implementation/v1/SingleBucketStoreV1.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 +10 -1
  77. package/dist/storage/implementation/v3/BucketDataContextV3.d.ts +13 -0
  78. package/dist/storage/implementation/v3/BucketDataContextV3.js +23 -0
  79. package/dist/storage/implementation/v3/BucketDataContextV3.js.map +1 -0
  80. package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +8 -4
  81. package/dist/storage/implementation/v3/MongoBucketBatchV3.js +309 -259
  82. package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -1
  83. package/dist/storage/implementation/v3/MongoChecksumsV3.d.ts +30 -9
  84. package/dist/storage/implementation/v3/MongoChecksumsV3.js +161 -20
  85. package/dist/storage/implementation/v3/MongoChecksumsV3.js.map +1 -1
  86. package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +40 -2
  87. package/dist/storage/implementation/v3/MongoCompactorV3.js +647 -23
  88. package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -1
  89. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.d.ts +67 -0
  90. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js +351 -0
  91. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js.map +1 -0
  92. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.d.ts +45 -30
  93. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +272 -140
  94. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -1
  95. package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +6 -3
  96. package/dist/storage/implementation/v3/PersistedBatchV3.js +84 -21
  97. package/dist/storage/implementation/v3/PersistedBatchV3.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 +15 -13
  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 +13 -0
  105. package/dist/storage/implementation/v3/bucket-format.js +77 -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 +30 -0
  109. package/dist/storage/implementation/v3/chunking.js.map +1 -0
  110. package/dist/storage/implementation/v3/models.d.ts +101 -21
  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/object-storage/BucketDataObjectStorage.d.ts +21 -0
  114. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js +44 -0
  115. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js.map +1 -0
  116. package/dist/storage/implementation/v3/object-storage/ObjectStorage.d.ts +30 -0
  117. package/dist/storage/implementation/v3/object-storage/ObjectStorage.js +12 -0
  118. package/dist/storage/implementation/v3/object-storage/ObjectStorage.js.map +1 -0
  119. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.d.ts +70 -0
  120. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js +146 -0
  121. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js.map +1 -0
  122. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.d.ts +42 -0
  123. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js +285 -0
  124. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js.map +1 -0
  125. package/dist/storage/implementation/v3/source-table-utils.d.ts +55 -0
  126. package/dist/storage/implementation/v3/source-table-utils.js +214 -0
  127. package/dist/storage/implementation/v3/source-table-utils.js.map +1 -0
  128. package/dist/storage/storage-index.d.ts +4 -4
  129. package/dist/storage/storage-index.js +4 -4
  130. package/dist/storage/storage-index.js.map +1 -1
  131. package/dist/types/types.d.ts +49 -3
  132. package/dist/types/types.js +48 -1
  133. package/dist/types/types.js.map +1 -1
  134. package/dist/utils/test-utils.d.ts +1 -2
  135. package/dist/utils/test-utils.js +7 -1
  136. package/dist/utils/test-utils.js.map +1 -1
  137. package/dist/utils/util.d.ts +9 -2
  138. package/dist/utils/util.js +128 -4
  139. package/dist/utils/util.js.map +1 -1
  140. package/package.json +12 -19
  141. package/src/migrations/db/migrations/1782950400000-checkpoint-requested-at-index.ts +55 -0
  142. package/src/storage/MongoBucketStorage.ts +347 -88
  143. package/src/storage/implementation/MongoBucketBatch.ts +147 -82
  144. package/src/storage/implementation/MongoChecksums.ts +93 -153
  145. package/src/storage/implementation/MongoCompactor.ts +102 -316
  146. package/src/storage/implementation/MongoHydrationState.ts +61 -0
  147. package/src/storage/implementation/MongoParameterCompactor.ts +25 -6
  148. package/src/storage/implementation/MongoParsedSyncConfigSet.ts +88 -0
  149. package/src/storage/implementation/MongoPersistedReplicationStream.ts +118 -0
  150. package/src/storage/implementation/MongoPersistedSyncConfigContent.ts +154 -0
  151. package/src/storage/implementation/MongoStorageProvider.ts +46 -4
  152. package/src/storage/implementation/MongoSyncBucketStorage.ts +121 -87
  153. package/src/storage/implementation/MongoSyncRulesLock.ts +7 -4
  154. package/src/storage/implementation/MongoWriteCheckpointAPI.ts +202 -28
  155. package/src/storage/implementation/common/MongoSyncBucketStorageCheckpoint.ts +9 -0
  156. package/src/storage/implementation/common/PersistedBatch.ts +19 -3
  157. package/src/storage/implementation/common/VersionedPowerSyncMongoBase.ts +1 -1
  158. package/src/storage/implementation/createMongoSyncBucketStorage.ts +21 -7
  159. package/src/storage/implementation/db.ts +19 -20
  160. package/src/storage/implementation/models.ts +20 -14
  161. package/src/storage/implementation/v1/MongoBucketBatchV1.ts +75 -37
  162. package/src/storage/implementation/v1/MongoChecksumsV1.ts +154 -12
  163. package/src/storage/implementation/v1/MongoCompactorV1.ts +294 -9
  164. package/src/storage/implementation/v1/MongoSyncBucketStorageV1.ts +142 -105
  165. package/src/storage/implementation/v1/SingleBucketStoreV1.ts +18 -27
  166. package/src/storage/implementation/v1/VersionedPowerSyncMongoV1.ts +11 -1
  167. package/src/storage/implementation/v1/models.ts +11 -1
  168. package/src/storage/implementation/v3/BucketDataContextV3.ts +32 -0
  169. package/src/storage/implementation/v3/MongoBucketBatchV3.ts +382 -321
  170. package/src/storage/implementation/v3/MongoChecksumsV3.ts +250 -32
  171. package/src/storage/implementation/v3/MongoCompactorV3.ts +847 -32
  172. package/src/storage/implementation/v3/MongoStoppedSyncConfigCleanup.ts +482 -0
  173. package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +359 -187
  174. package/src/storage/implementation/v3/PersistedBatchV3.ts +118 -37
  175. package/src/storage/implementation/v3/SourceRecordStoreV3.ts +12 -12
  176. package/src/storage/implementation/v3/VersionedPowerSyncMongoV3.ts +46 -36
  177. package/src/storage/implementation/v3/bucket-format.ts +97 -0
  178. package/src/storage/implementation/v3/chunking.ts +40 -0
  179. package/src/storage/implementation/v3/models.ts +132 -55
  180. package/src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts +54 -0
  181. package/src/storage/implementation/v3/object-storage/ObjectStorage.ts +29 -0
  182. package/src/storage/implementation/v3/object-storage/ObjectStorageLifecycle.ts +171 -0
  183. package/src/storage/implementation/v3/object-storage/S3ObjectStorage.ts +343 -0
  184. package/src/storage/implementation/v3/source-table-utils.ts +392 -0
  185. package/src/storage/storage-index.ts +12 -4
  186. package/src/types/types.ts +58 -1
  187. package/src/utils/test-utils.ts +8 -3
  188. package/src/utils/util.ts +185 -6
  189. package/test/src/__snapshots__/storage.test.ts.snap +0 -75
  190. package/test/src/__snapshots__/storage_sync.test.ts.snap +35 -617
  191. package/test/src/cleanup-stopped-sync-configs.test.ts +671 -0
  192. package/test/src/helpers/MemoryObjectStorage.ts +53 -0
  193. package/test/src/helpers/s3TestFactory.ts +69 -0
  194. package/test/src/object_storage_lifecycle.test.ts +59 -0
  195. package/test/src/setup.ts +6 -1
  196. package/test/src/storage.test.ts +227 -13
  197. package/test/src/storage_compacting.test.ts +1951 -12
  198. package/test/src/storage_object_storage_inline_threshold.test.ts +116 -0
  199. package/test/src/storage_s3_checksums.test.ts +191 -0
  200. package/test/src/storage_s3_compaction_lifecycle.test.ts +417 -0
  201. package/test/src/storage_s3_reading.test.ts +526 -0
  202. package/test/src/storage_s3_writing.test.ts +135 -0
  203. package/test/src/storage_sync.test.ts +1180 -73
  204. package/test/src/storeCurrentData.test.ts +227 -0
  205. package/test/src/util.ts +2 -1
  206. package/tsconfig.json +1 -4
  207. package/tsconfig.tsbuildinfo +1 -1
  208. package/dist/storage/implementation/BucketDefinitionMapping.d.ts +0 -15
  209. package/dist/storage/implementation/BucketDefinitionMapping.js +0 -58
  210. package/dist/storage/implementation/BucketDefinitionMapping.js.map +0 -1
  211. package/dist/storage/implementation/MongoPersistedSyncRules.d.ts +0 -14
  212. package/dist/storage/implementation/MongoPersistedSyncRules.js +0 -67
  213. package/dist/storage/implementation/MongoPersistedSyncRules.js.map +0 -1
  214. package/dist/storage/implementation/MongoPersistedSyncRulesContent.d.ts +0 -29
  215. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js +0 -76
  216. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js.map +0 -1
  217. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.d.ts +0 -13
  218. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js +0 -2
  219. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js.map +0 -1
  220. package/dist/storage/implementation/common/SingleBucketStore.d.ts +0 -54
  221. package/dist/storage/implementation/common/SingleBucketStore.js +0 -3
  222. package/dist/storage/implementation/common/SingleBucketStore.js.map +0 -1
  223. package/dist/storage/implementation/v3/MongoParameterCompactorV3.d.ts +0 -9
  224. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js +0 -18
  225. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js.map +0 -1
  226. package/dist/storage/implementation/v3/MongoParameterLookupV3.d.ts +0 -4
  227. package/dist/storage/implementation/v3/MongoParameterLookupV3.js +0 -9
  228. package/dist/storage/implementation/v3/MongoParameterLookupV3.js.map +0 -1
  229. package/dist/storage/implementation/v3/SingleBucketStoreV3.d.ts +0 -18
  230. package/dist/storage/implementation/v3/SingleBucketStoreV3.js +0 -48
  231. package/dist/storage/implementation/v3/SingleBucketStoreV3.js.map +0 -1
  232. package/src/storage/implementation/BucketDefinitionMapping.ts +0 -75
  233. package/src/storage/implementation/MongoPersistedSyncRules.ts +0 -82
  234. package/src/storage/implementation/MongoPersistedSyncRulesContent.ts +0 -101
  235. package/src/storage/implementation/common/MongoSyncBucketStorageContext.ts +0 -15
  236. package/src/storage/implementation/common/SingleBucketStore.ts +0 -63
  237. package/src/storage/implementation/v3/MongoParameterCompactorV3.ts +0 -24
  238. package/src/storage/implementation/v3/MongoParameterLookupV3.ts +0 -11
  239. package/src/storage/implementation/v3/SingleBucketStoreV3.ts +0 -68
@@ -1,45 +1,55 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
2
  import { BaseObserver, DO_NOT_LOG, Logger } from '@powersync/lib-services-framework';
3
- import { CheckpointChanges, GetCheckpointChangesOptions, InternalOpId, PopulateChecksumCacheOptions, PopulateChecksumCacheResults, ReplicationCheckpoint, storage, utils, WatchWriteCheckpointOptions } from '@powersync/service-core';
3
+ import { CheckpointChanges, GetCheckpointChangesOptions, InternalOpId, PopulateChecksumCacheOptions, PopulateChecksumCacheResults, ReplicationCheckpoint, ReplicationStreamStorageIds, storage, utils, WatchWriteCheckpointOptions } from '@powersync/service-core';
4
4
  import { HydratedSyncConfig, ParameterLookupRows, ScopedParameterLookup } from '@powersync/service-sync-rules';
5
- import * as bson from 'bson';
6
5
  import { MongoBucketStorage } from '../MongoBucketStorage.js';
7
- import { MongoSyncBucketStorageContext } from './common/MongoSyncBucketStorageContext.js';
8
6
  import type { VersionedPowerSyncMongo } from './db.js';
9
7
  import { StorageConfig } from './models.js';
10
8
  import { MongoBucketBatchOptions } from './MongoBucketBatch.js';
11
9
  import { MongoChecksumOptions, MongoChecksums } from './MongoChecksums.js';
12
10
  import { MongoCompactOptions, MongoCompactor } from './MongoCompactor.js';
13
11
  import { MongoParameterCompactor } from './MongoParameterCompactor.js';
14
- import { MongoPersistedSyncRulesContentV1 } from './MongoPersistedSyncRulesContent.js';
12
+ import { MongoParsedSyncConfigSet } from './MongoParsedSyncConfigSet.js';
13
+ import { MongoPersistedReplicationStream } from './MongoPersistedReplicationStream.js';
14
+ import { ObjectStorage } from './v3/object-storage/ObjectStorage.js';
15
15
  export interface MongoSyncBucketStorageOptions {
16
- checksumOptions?: Omit<MongoChecksumOptions, 'storageConfig' | 'mapping'>;
16
+ checksumOptions?: Omit<MongoChecksumOptions, 'storageConfig'>;
17
+ readPreference?: mongo.ReadPreference;
18
+ checksumCacheTtlMs?: number;
19
+ clearBatchThrottleRate?: number;
17
20
  storageConfig: StorageConfig;
21
+ objectStorage?: ObjectStorage;
22
+ inlineThresholdBytes?: number;
18
23
  }
19
24
  interface InternalCheckpointChanges extends CheckpointChanges {
20
25
  updatedWriteCheckpoints: Map<string, bigint>;
21
26
  invalidateWriteCheckpoints: boolean;
22
27
  }
23
- interface WriterSyncState {
24
- lastCheckpointLsn: string | null;
25
- resumeFromLsn: string | null;
26
- keepaliveOp: InternalOpId | null;
27
- syncConfigId?: bson.ObjectId | null;
28
- }
29
28
  export declare abstract class MongoSyncBucketStorage extends BaseObserver<storage.SyncRulesBucketStorageListener> implements storage.SyncRulesBucketStorage {
30
29
  #private;
31
30
  readonly factory: MongoBucketStorage;
32
- readonly group_id: number;
33
- protected readonly sync_rules: MongoPersistedSyncRulesContentV1;
34
- readonly slot_name: string;
31
+ readonly replicationStreamId: number;
32
+ readonly replicationStream: MongoPersistedReplicationStream;
33
+ readonly replicationStreamName: string;
35
34
  readonly db: VersionedPowerSyncMongo;
36
35
  [DO_NOT_LOG]: boolean;
37
36
  readonly checksums: MongoChecksums;
38
- private parsedSyncRulesCache;
37
+ readonly objectStorage?: ObjectStorage;
38
+ readonly inlineThresholdBytes: number;
39
+ /**
40
+ * Canonical parsed sync config sets, keyed by defaultSchema.
41
+ *
42
+ * Entries are never evicted: each parse options value maps to exactly one parsed set for
43
+ * the lifetime of this storage instance, so parsed source objects and mappings always
44
+ * stay associated.
45
+ */
46
+ private readonly parsedSyncConfigSets;
39
47
  private writeCheckpointAPI;
40
48
  readonly logger: Logger;
41
49
  readonly storageConfig: StorageConfig;
42
- constructor(factory: MongoBucketStorage, group_id: number, sync_rules: MongoPersistedSyncRulesContentV1, slot_name: string, writeCheckpointMode: storage.WriteCheckpointMode | undefined, options: MongoSyncBucketStorageOptions);
50
+ readonly readPreference: mongo.ReadPreference | undefined;
51
+ readonly clearBatchThrottleRate: number;
52
+ constructor(factory: MongoBucketStorage, replicationStreamId: number, replicationStream: MongoPersistedReplicationStream, replicationStreamName: string, writeCheckpointMode: storage.WriteCheckpointMode | undefined, options: MongoSyncBucketStorageOptions);
43
53
  /**
44
54
  * Not for external use - public here for tests only.
45
55
  *
@@ -49,12 +59,15 @@ export declare abstract class MongoSyncBucketStorage extends BaseObserver<storag
49
59
  protected abstract createMongoChecksums(options: MongoSyncBucketStorageOptions): MongoChecksums;
50
60
  protected abstract createMongoParameterCompactor(checkpoint: InternalOpId, options: storage.CompactOptions): MongoParameterCompactor;
51
61
  get writeCheckpointMode(): storage.WriteCheckpointMode;
52
- get mapping(): import("./BucketDefinitionMapping.js").BucketDefinitionMapping;
53
- protected get versionContext(): MongoSyncBucketStorageContext;
62
+ /**
63
+ * Persisted storage ids of all sync configs in this replication stream. Parse-free.
64
+ */
65
+ get storageIds(): ReplicationStreamStorageIds;
54
66
  setWriteCheckpointMode(mode: storage.WriteCheckpointMode): void;
55
- createManagedWriteCheckpoint(checkpoint: storage.ManagedWriteCheckpointOptions): Promise<bigint>;
67
+ createManagedWriteCheckpoints(checkpoints: storage.ManagedWriteCheckpointOptions[]): Promise<storage.CreateManagedWriteCheckpointsResult>;
56
68
  lastWriteCheckpoint(filters: storage.SyncStorageLastWriteCheckpointFilters): Promise<bigint | null>;
57
- getParsedSyncRules(options: storage.ParseSyncRulesOptions): HydratedSyncConfig;
69
+ getParsedSyncConfigSet(options: storage.ParseSyncConfigOptions): MongoParsedSyncConfigSet;
70
+ getParsedSyncRules(options: storage.ParseSyncConfigOptions): HydratedSyncConfig;
58
71
  getCheckpoint(): Promise<storage.ReplicationCheckpoint>;
59
72
  protected abstract fetchCheckpointState(session: mongo.ClientSession): Promise<{
60
73
  checkpoint: bigint;
@@ -63,20 +76,28 @@ export declare abstract class MongoSyncBucketStorage extends BaseObserver<storag
63
76
  getCheckpointInternal(): Promise<storage.ReplicationCheckpoint | null>;
64
77
  protected abstract initializeVersionStorage(): Promise<void>;
65
78
  private initializeStorage;
66
- protected abstract createWriterImpl(batchOptions: MongoBucketBatchOptions): storage.BucketStorageBatch;
67
- protected abstract getWriterSyncState(): Promise<WriterSyncState>;
79
+ /**
80
+ * Create the version-specific writer. Implementations fetch their own resume state
81
+ * (e.g. resume LSN, v1 keepalive op) and construct the batch from
82
+ * {@link writerBatchOptions} plus the version-specific fields.
83
+ */
84
+ protected abstract createWriterImpl(options: storage.CreateWriterOptions): Promise<storage.BucketStorageBatch>;
85
+ /**
86
+ * The version-independent part of the batch options.
87
+ */
88
+ protected writerBatchOptions(options: storage.CreateWriterOptions): Omit<MongoBucketBatchOptions, 'resumeFromLsn'>;
68
89
  createWriter(options: storage.CreateWriterOptions): Promise<storage.BucketStorageBatch>;
69
90
  startBatch(options: storage.CreateWriterOptions, callback: (batch: storage.BucketStorageBatch) => Promise<void>): Promise<storage.FlushedResult | null>;
70
91
  protected abstract getParameterSetsImpl(checkpoint: MongoReplicationCheckpoint, lookups: ScopedParameterLookup[], limit: number): Promise<ParameterLookupRows[]>;
71
92
  getParameterSets(checkpoint: MongoReplicationCheckpoint, lookups: ScopedParameterLookup[], limit: number): Promise<ParameterLookupRows[]>;
72
- protected abstract getBucketDataBatchImpl(checkpoint: utils.InternalOpId, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk>;
73
- getBucketDataBatch(checkpoint: utils.InternalOpId, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk>;
74
- getChecksums(checkpoint: utils.InternalOpId, buckets: storage.BucketChecksumRequest[]): Promise<utils.ChecksumMap>;
93
+ protected abstract getBucketDataBatchImpl(checkpoint: MongoReplicationCheckpoint, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd>;
94
+ getBucketDataBatch(checkpoint: storage.ReplicationCheckpoint, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk | storage.SyncBucketDataBatchEnd>;
95
+ getChecksums(checkpoint: storage.ReplicationCheckpoint, buckets: storage.BucketChecksumRequest[], options?: storage.BucketChecksumOptions): Promise<utils.ChecksumMap>;
75
96
  clearChecksumCache(): void;
76
97
  protected abstract terminateSyncRuleState(): Promise<void>;
77
98
  terminate(options?: storage.TerminateOptions): Promise<void>;
78
- protected abstract getStatusImpl(): Promise<storage.SyncRuleStatus>;
79
- getStatus(): Promise<storage.SyncRuleStatus>;
99
+ protected abstract getStatusImpl(): Promise<storage.ReplicationStreamStatus>;
100
+ getStatus(): Promise<storage.ReplicationStreamStatus>;
80
101
  protected abstract clearBucketData(signal?: AbortSignal): Promise<void>;
81
102
  protected abstract clearParameterIndexes(signal?: AbortSignal): Promise<void>;
82
103
  protected abstract clearSourceRecords(signal?: AbortSignal): Promise<void>;
@@ -84,9 +105,15 @@ export declare abstract class MongoSyncBucketStorage extends BaseObserver<storag
84
105
  protected abstract clearSourceTables(signal?: AbortSignal): Promise<void>;
85
106
  protected abstract clearSyncRuleState(): Promise<void>;
86
107
  clear(options?: storage.ClearStorageOptions): Promise<void>;
87
- protected clearDeleteMany(label: string, operation: () => Promise<mongo.DeleteResult>, signal?: AbortSignal): Promise<void>;
88
108
  reportError(e: any): Promise<void>;
89
109
  compact(options?: storage.CompactOptions): Promise<void>;
110
+ /**
111
+ * The highest op id persisted for this stream, whether or not covered by a checkpoint.
112
+ *
113
+ * Used as the default `maxOpId` for {@link populatePersistentChecksumCache}, which runs after
114
+ * initial replication but before the first checkpoint exists.
115
+ */
116
+ protected abstract fetchPersistedOpHead(): Promise<InternalOpId | null>;
90
117
  populatePersistentChecksumCache(options: PopulateChecksumCacheOptions): Promise<PopulateChecksumCacheResults>;
91
118
  private watchActiveCheckpoint;
92
119
  private readonly sharedIter;
@@ -106,7 +133,8 @@ declare class MongoReplicationCheckpoint implements ReplicationCheckpoint {
106
133
  readonly checkpoint: InternalOpId;
107
134
  readonly lsn: string | null;
108
135
  snapshotTime: mongo.Timestamp;
109
- constructor(storage: MongoSyncBucketStorage, checkpoint: InternalOpId, lsn: string | null, snapshotTime: mongo.Timestamp);
136
+ clusterTime: mongo.ClusterTime;
137
+ constructor(storage: MongoSyncBucketStorage, checkpoint: InternalOpId, lsn: string | null, snapshotTime: mongo.Timestamp, clusterTime: mongo.ClusterTime);
110
138
  getParameterSets(lookups: ScopedParameterLookup[], limit: number): Promise<ParameterLookupRows[]>;
111
139
  }
112
140
  export {};
@@ -3,7 +3,8 @@ import { BaseObserver, DO_NOT_LOG, ReplicationAbortedError, ServiceAssertionErro
3
3
  import { BroadcastIterable, CHECKPOINT_INVALIDATE_ALL, mergeAsyncIterables, storage } from '@powersync/service-core';
4
4
  import { LRUCache } from 'lru-cache';
5
5
  import * as timers from 'timers/promises';
6
- import { retryOnMongoMaxTimeMSExpired } from '../../utils/util.js';
6
+ import { DEFAULT_CLEAR_BATCH_THROTTLE_RATE } from '../../types/types.js';
7
+ import { DEFAULT_INLINE_THRESHOLD_BYTES } from './common/PersistedBatch.js';
7
8
  import { MongoWriteCheckpointAPI } from './MongoWriteCheckpointAPI.js';
8
9
  /**
9
10
  * Only keep checkpoints around for a minute, before fetching a fresh one.
@@ -17,64 +18,81 @@ import { MongoWriteCheckpointAPI } from './MongoWriteCheckpointAPI.js';
17
18
  const CHECKPOINT_TIMEOUT_MS = 60_000;
18
19
  export class MongoSyncBucketStorage extends BaseObserver {
19
20
  factory;
20
- group_id;
21
- sync_rules;
22
- slot_name;
21
+ replicationStreamId;
22
+ replicationStream;
23
+ replicationStreamName;
23
24
  db;
24
25
  [DO_NOT_LOG] = true;
25
26
  checksums;
26
- parsedSyncRulesCache;
27
+ objectStorage;
28
+ inlineThresholdBytes;
29
+ /**
30
+ * Canonical parsed sync config sets, keyed by defaultSchema.
31
+ *
32
+ * Entries are never evicted: each parse options value maps to exactly one parsed set for
33
+ * the lifetime of this storage instance, so parsed source objects and mappings always
34
+ * stay associated.
35
+ */
36
+ parsedSyncConfigSets = new Map();
27
37
  writeCheckpointAPI;
28
38
  logger;
29
39
  storageConfig;
40
+ readPreference;
41
+ clearBatchThrottleRate;
30
42
  #storageInitialized = false;
31
- constructor(factory, group_id, sync_rules, slot_name, writeCheckpointMode, options) {
43
+ constructor(factory, replicationStreamId, replicationStream, replicationStreamName, writeCheckpointMode, options) {
32
44
  super();
33
45
  this.factory = factory;
34
- this.group_id = group_id;
35
- this.sync_rules = sync_rules;
36
- this.slot_name = slot_name;
46
+ this.replicationStreamId = replicationStreamId;
47
+ this.replicationStream = replicationStream;
48
+ this.replicationStreamName = replicationStreamName;
37
49
  this.storageConfig = options.storageConfig;
50
+ this.objectStorage = options.objectStorage;
51
+ // Keep small chunks inline in MongoDB rather than offloading them to S3.
52
+ // Configurable via object_storage.inline_threshold_bytes.
53
+ this.inlineThresholdBytes = options.inlineThresholdBytes ?? DEFAULT_INLINE_THRESHOLD_BYTES;
54
+ this.readPreference = options.readPreference;
55
+ this.clearBatchThrottleRate = options.clearBatchThrottleRate ?? DEFAULT_CLEAR_BATCH_THROTTLE_RATE;
38
56
  this.db = factory.db.versioned(this.storageConfig);
39
57
  this.checksums = this.createMongoChecksums(options);
40
58
  this.writeCheckpointAPI = new MongoWriteCheckpointAPI({
41
59
  db: this.db,
42
60
  mode: writeCheckpointMode ?? storage.WriteCheckpointMode.MANAGED,
43
- sync_rules_id: group_id
61
+ sync_rules_id: replicationStreamId
44
62
  });
45
- this.logger = sync_rules.logger;
63
+ this.logger = replicationStream.logger;
46
64
  }
47
65
  get writeCheckpointMode() {
48
66
  return this.writeCheckpointAPI.writeCheckpointMode;
49
67
  }
50
- get mapping() {
51
- return this.sync_rules.mapping;
52
- }
53
- get versionContext() {
54
- return {
55
- db: this.db,
56
- group_id: this.group_id,
57
- mapping: this.mapping
58
- };
68
+ /**
69
+ * Persisted storage ids of all sync configs in this replication stream. Parse-free.
70
+ */
71
+ get storageIds() {
72
+ return this.replicationStream.storageIds;
59
73
  }
60
74
  setWriteCheckpointMode(mode) {
61
75
  this.writeCheckpointAPI.setWriteCheckpointMode(mode);
62
76
  }
63
- createManagedWriteCheckpoint(checkpoint) {
64
- return this.writeCheckpointAPI.createManagedWriteCheckpoint(checkpoint);
77
+ createManagedWriteCheckpoints(checkpoints) {
78
+ return this.writeCheckpointAPI.createManagedWriteCheckpoints(checkpoints);
65
79
  }
66
80
  lastWriteCheckpoint(filters) {
67
81
  return this.writeCheckpointAPI.lastWriteCheckpoint({
68
82
  ...filters,
69
- sync_rules_id: this.group_id
83
+ sync_rules_id: this.replicationStreamId
70
84
  });
71
85
  }
72
- getParsedSyncRules(options) {
73
- const { parsed, options: cachedOptions } = this.parsedSyncRulesCache ?? {};
74
- if (!parsed || options.defaultSchema != cachedOptions?.defaultSchema) {
75
- this.parsedSyncRulesCache = { parsed: this.sync_rules.parsed(options).hydratedSyncConfig(), options };
86
+ getParsedSyncConfigSet(options) {
87
+ let parsed = this.parsedSyncConfigSets.get(options.defaultSchema);
88
+ if (parsed == null) {
89
+ parsed = this.replicationStream.parsed(options);
90
+ this.parsedSyncConfigSets.set(options.defaultSchema, parsed);
76
91
  }
77
- return this.parsedSyncRulesCache.parsed;
92
+ return parsed;
93
+ }
94
+ getParsedSyncRules(options) {
95
+ return this.getParsedSyncConfigSet(options).hydratedSyncConfig;
78
96
  }
79
97
  async getCheckpoint() {
80
98
  return (await this.getCheckpointInternal()) ?? new EmptyReplicationCheckpoint();
@@ -86,41 +104,46 @@ export class MongoSyncBucketStorage extends BaseObserver {
86
104
  return null;
87
105
  }
88
106
  const snapshotTime = session.snapshotTime;
107
+ const clusterTime = session.clusterTime;
89
108
  if (snapshotTime == null) {
90
109
  throw new ServiceAssertionError('Missing snapshotTime in getCheckpoint()');
91
110
  }
92
- return new MongoReplicationCheckpoint(this, state.checkpoint, state.lsn, snapshotTime);
111
+ if (clusterTime == null) {
112
+ throw new ServiceAssertionError('Missing clusterTime in getCheckpoint()');
113
+ }
114
+ return new MongoReplicationCheckpoint(this, state.checkpoint, state.lsn, snapshotTime, clusterTime);
93
115
  });
94
116
  }
95
117
  async initializeStorage() {
96
118
  if (this.#storageInitialized) {
97
119
  return;
98
120
  }
99
- await this.db.initializeStreamStorage(this.group_id);
121
+ await this.db.initializeStreamStorage(this.replicationStreamId);
100
122
  await this.initializeVersionStorage();
101
123
  this.#storageInitialized = true;
102
124
  }
103
- async createWriter(options) {
104
- await this.initializeStorage();
105
- const state = await this.getWriterSyncState();
106
- const batchOptions = {
125
+ /**
126
+ * The version-independent part of the batch options.
127
+ */
128
+ writerBatchOptions(options) {
129
+ return {
107
130
  logger: options.logger ?? this.logger,
108
131
  db: this.db,
109
- syncRules: this.sync_rules.parsed(options).hydratedSyncConfig(),
110
- mapping: this.sync_rules.mapping,
111
- groupId: this.group_id,
112
- slotName: this.slot_name,
113
- lastCheckpointLsn: state.lastCheckpointLsn,
114
- resumeFromLsn: state.resumeFromLsn,
115
- keepaliveOp: state.keepaliveOp,
132
+ parsedSyncConfig: this.getParsedSyncConfigSet(options),
133
+ replicationStreamId: this.replicationStreamId,
134
+ replicationStreamName: this.replicationStreamName,
116
135
  storeCurrentData: options.storeCurrentData,
117
136
  skipExistingRows: options.skipExistingRows ?? false,
118
137
  markRecordUnavailable: options.markRecordUnavailable,
119
138
  hooks: options.hooks,
120
- syncConfigId: state.syncConfigId,
121
- tracer: options.tracer
139
+ tracer: options.tracer,
140
+ objectStorage: this.objectStorage,
141
+ inlineThresholdBytes: this.inlineThresholdBytes
122
142
  };
123
- const writer = this.createWriterImpl(batchOptions);
143
+ }
144
+ async createWriter(options) {
145
+ await this.initializeStorage();
146
+ const writer = await this.createWriterImpl(options);
124
147
  this.iterateListeners((cb) => cb.batchStarted?.(writer));
125
148
  return writer;
126
149
  }
@@ -136,8 +159,14 @@ export class MongoSyncBucketStorage extends BaseObserver {
136
159
  async *getBucketDataBatch(checkpoint, dataBuckets, options) {
137
160
  yield* this.getBucketDataBatchImpl(checkpoint, dataBuckets, options);
138
161
  }
139
- async getChecksums(checkpoint, buckets) {
140
- return this.checksums.getChecksums(checkpoint, buckets);
162
+ async getChecksums(checkpoint, buckets, options) {
163
+ const mongoCheckpoint = checkpoint;
164
+ const snapshotTime = mongoCheckpoint.snapshotTime; // May be undefined in tests
165
+ return this.checksums.getChecksums(checkpoint.checkpoint, buckets, {
166
+ snapshotTime,
167
+ clusterTime: mongoCheckpoint.clusterTime,
168
+ readPreference: options?.requestHint == 'bulk' ? this.readPreference : undefined
169
+ });
141
170
  }
142
171
  clearChecksumCache() {
143
172
  this.checksums.clearCache();
@@ -165,20 +194,10 @@ export class MongoSyncBucketStorage extends BaseObserver {
165
194
  await this.clearSourceTables(signal);
166
195
  this.#storageInitialized = false;
167
196
  }
168
- async clearDeleteMany(label, operation, signal) {
169
- await retryOnMongoMaxTimeMSExpired(operation, {
170
- signal,
171
- abortMessage: 'Aborted clearing data',
172
- retryDelayMs: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS / 5,
173
- onRetry: () => {
174
- this.logger.info(`Cleared batch of ${label} in ${lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS}ms, continuing...`);
175
- }
176
- });
177
- }
178
197
  async reportError(e) {
179
198
  const message = String(e.message ?? 'Replication failure');
180
199
  await this.db.sync_rules.updateOne({
181
- _id: this.group_id
200
+ _id: this.replicationStreamId
182
201
  }, {
183
202
  $set: {
184
203
  last_fatal_error: message,
@@ -200,8 +219,10 @@ export class MongoSyncBucketStorage extends BaseObserver {
200
219
  async populatePersistentChecksumCache(options) {
201
220
  this.logger.info(`Populating persistent checksum cache...`);
202
221
  const start = Date.now();
222
+ const maxOpId = options.maxOpId ?? (await this.fetchPersistedOpHead()) ?? undefined;
203
223
  const compactor = this.createMongoCompactor({
204
224
  ...options,
225
+ maxOpId,
205
226
  memoryLimitMB: 0,
206
227
  logger: this.logger
207
228
  });
@@ -239,7 +260,7 @@ export class MongoSyncBucketStorage extends BaseObserver {
239
260
  for await (const nextCheckpoint of iter) {
240
261
  if (nextCheckpoint.lsn != null && !queriedInitialWriteCheckpoint) {
241
262
  writeCheckpoint = await this.writeCheckpointAPI.lastWriteCheckpoint({
242
- sync_rules_id: this.group_id,
263
+ sync_rules_id: this.replicationStreamId,
243
264
  user_id: options.user_id,
244
265
  heads: {
245
266
  '1': nextCheckpoint.lsn
@@ -268,7 +289,7 @@ export class MongoSyncBucketStorage extends BaseObserver {
268
289
  let updatedWriteCheckpoint = updates.updatedWriteCheckpoints.get(options.user_id) ?? null;
269
290
  if (updates.invalidateWriteCheckpoints) {
270
291
  updatedWriteCheckpoint = await this.writeCheckpointAPI.lastWriteCheckpoint({
271
- sync_rules_id: this.group_id,
292
+ sync_rules_id: this.replicationStreamId,
272
293
  user_id: options.user_id,
273
294
  heads: {
274
295
  '1': nextCheckpoint.lsn
@@ -360,6 +381,9 @@ export class MongoSyncBucketStorage extends BaseObserver {
360
381
  checkpointChangesCache = new LRUCache({
361
382
  max: 50,
362
383
  maxSize: 12 * 1024 * 1024,
384
+ // When we have more fetches than the cache size, complete the fetches instead
385
+ // of failing with Error('evicted').
386
+ ignoreFetchAbort: true,
363
387
  sizeCalculation: (value) => {
364
388
  const paramSize = [...value.updatedParameterLookups].reduce((a, b) => a + b.length, 0);
365
389
  const bucketSize = [...value.updatedDataBuckets].reduce((a, b) => a + b.length, 0);
@@ -390,11 +414,13 @@ class MongoReplicationCheckpoint {
390
414
  checkpoint;
391
415
  lsn;
392
416
  snapshotTime;
417
+ clusterTime;
393
418
  #storage;
394
- constructor(storage, checkpoint, lsn, snapshotTime) {
419
+ constructor(storage, checkpoint, lsn, snapshotTime, clusterTime) {
395
420
  this.checkpoint = checkpoint;
396
421
  this.lsn = lsn;
397
422
  this.snapshotTime = snapshotTime;
423
+ this.clusterTime = clusterTime;
398
424
  this.#storage = storage;
399
425
  }
400
426
  async getParameterSets(lookups, limit) {
@@ -404,7 +430,7 @@ class MongoReplicationCheckpoint {
404
430
  class EmptyReplicationCheckpoint {
405
431
  checkpoint = 0n;
406
432
  lsn = null;
407
- async getParameterSets(_lookups) {
433
+ async getParameterSets(_lookups, _limit) {
408
434
  return [];
409
435
  }
410
436
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSyncBucketStorage.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoSyncBucketStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSyncBucketStorage.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoSyncBucketStorage.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ export declare class MongoSyncRulesLock implements storage.ReplicationLock {
15
15
  /**
16
16
  * @param session optional session to create the lock within another transaction
17
17
  */
18
- static createLock(db: VersionedPowerSyncMongo, sync_rules: storage.PersistedSyncRulesContent, session?: mongo.ClientSession): Promise<MongoSyncRulesLock>;
18
+ static createLock(db: VersionedPowerSyncMongo, sync_rules: storage.PersistedReplicationStream, session?: mongo.ClientSession): Promise<MongoSyncRulesLock>;
19
19
  constructor(db: VersionedPowerSyncMongo, sync_rules_id: number, lock_id: string, logger: Logger);
20
20
  release(): Promise<void>;
21
21
  private refresh;
@@ -15,7 +15,7 @@ export class MongoSyncRulesLock {
15
15
  */
16
16
  static async createLock(db, sync_rules, session) {
17
17
  const lockId = crypto.randomBytes(8).toString('hex');
18
- const doc = await db.sync_rules.findOneAndUpdate({ _id: sync_rules.id, $or: [{ lock: null }, { 'lock.expires_at': { $lt: new Date() } }] }, {
18
+ const doc = await db.sync_rules.findOneAndUpdate({ _id: sync_rules.replicationStreamId, $or: [{ lock: null }, { 'lock.expires_at': { $lt: new Date() } }] }, {
19
19
  $set: {
20
20
  lock: {
21
21
  id: lockId,
@@ -29,7 +29,7 @@ export class MongoSyncRulesLock {
29
29
  });
30
30
  if (doc == null) {
31
31
  // Query the existing lock to get the expiration time (best effort - it may have been released in the meantime).
32
- const heldLock = await db.sync_rules.findOne({ _id: sync_rules.id }, { projection: { lock: 1 }, session });
32
+ const heldLock = await db.sync_rules.findOne({ _id: sync_rules.replicationStreamId }, { projection: { lock: 1 }, session });
33
33
  if (heldLock?.lock?.expires_at) {
34
34
  throw new ServiceError(ErrorCode.PSYNC_S1003, `Replication stream is locked by another process, standing by. Lock expiring at ${heldLock.lock.expires_at.toISOString()}.`);
35
35
  }
@@ -38,7 +38,7 @@ export class MongoSyncRulesLock {
38
38
  }
39
39
  }
40
40
  sync_rules.logger.info(`Locked replication stream for processing`);
41
- return new MongoSyncRulesLock(db, sync_rules.id, lockId, sync_rules.logger);
41
+ return new MongoSyncRulesLock(db, sync_rules.replicationStreamId, lockId, sync_rules.logger);
42
42
  }
43
43
  constructor(db, sync_rules_id, lock_id, logger) {
44
44
  this.db = db;
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSyncRulesLock.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoSyncRulesLock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSyncRulesLock.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoSyncRulesLock.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@ export declare class MongoWriteCheckpointAPI implements storage.WriteCheckpointA
12
12
  constructor(options: MongoCheckpointAPIOptions);
13
13
  get writeCheckpointMode(): storage.WriteCheckpointMode;
14
14
  setWriteCheckpointMode(mode: storage.WriteCheckpointMode): void;
15
- createManagedWriteCheckpoint(checkpoint: storage.ManagedWriteCheckpointOptions): Promise<bigint>;
15
+ createManagedWriteCheckpoints(checkpoints: storage.ManagedWriteCheckpointOptions[]): Promise<storage.CreateManagedWriteCheckpointsResult>;
16
+ private createSuppliedManagedWriteCheckpoints;
16
17
  lastWriteCheckpoint(filters: storage.LastWriteCheckpointFilters): Promise<bigint | null>;
17
18
  getWriteCheckpointChanges(options: GetCheckpointChangesOptions): Promise<{
18
19
  invalidateWriteCheckpoints: boolean;