@powersync/service-module-mongodb-storage 0.19.0 → 0.21.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 (176) hide show
  1. package/CHANGELOG.md +64 -0
  2. package/dist/storage/MongoBucketStorage.d.ts +31 -3
  3. package/dist/storage/MongoBucketStorage.js +365 -206
  4. package/dist/storage/MongoBucketStorage.js.map +1 -1
  5. package/dist/storage/implementation/MongoBucketBatch.d.ts +15 -4
  6. package/dist/storage/implementation/MongoBucketBatch.js +35 -9
  7. package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
  8. package/dist/storage/implementation/MongoCompactor.d.ts +19 -79
  9. package/dist/storage/implementation/MongoCompactor.js +27 -238
  10. package/dist/storage/implementation/MongoCompactor.js.map +1 -1
  11. package/dist/storage/implementation/MongoParameterCompactor.d.ts +83 -10
  12. package/dist/storage/implementation/MongoParameterCompactor.js +309 -96
  13. package/dist/storage/implementation/MongoParameterCompactor.js.map +1 -1
  14. package/dist/storage/implementation/MongoParsedSyncConfigSet.d.ts +9 -1
  15. package/dist/storage/implementation/MongoParsedSyncConfigSet.js +29 -0
  16. package/dist/storage/implementation/MongoParsedSyncConfigSet.js.map +1 -1
  17. package/dist/storage/implementation/MongoPersistedSyncConfigContent.js +4 -2
  18. package/dist/storage/implementation/MongoPersistedSyncConfigContent.js.map +1 -1
  19. package/dist/storage/implementation/MongoStorageProvider.js +3 -1
  20. package/dist/storage/implementation/MongoStorageProvider.js.map +1 -1
  21. package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +27 -11
  22. package/dist/storage/implementation/MongoSyncBucketStorage.js +78 -31
  23. package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
  24. package/dist/storage/implementation/MongoSyncRulesLock.js +21 -9
  25. package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
  26. package/dist/storage/implementation/MongoWriteCheckpointAPI.d.ts +9 -7
  27. package/dist/storage/implementation/MongoWriteCheckpointAPI.js +7 -28
  28. package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +1 -1
  29. package/dist/storage/implementation/SyncRuleStateUpdate.d.ts +11 -5
  30. package/dist/storage/implementation/SyncRuleStateUpdate.js +14 -6
  31. package/dist/storage/implementation/SyncRuleStateUpdate.js.map +1 -1
  32. package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.d.ts +22 -2
  33. package/dist/storage/implementation/common/PersistedBatch.d.ts +27 -0
  34. package/dist/storage/implementation/common/PersistedBatch.js +43 -2
  35. package/dist/storage/implementation/common/PersistedBatch.js.map +1 -1
  36. package/dist/storage/implementation/db.d.ts +4 -1
  37. package/dist/storage/implementation/db.js +14 -1
  38. package/dist/storage/implementation/db.js.map +1 -1
  39. package/dist/storage/implementation/models.d.ts +35 -0
  40. package/dist/storage/implementation/models.js.map +1 -1
  41. package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +6 -0
  42. package/dist/storage/implementation/v1/MongoBucketBatchV1.js +80 -84
  43. package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -1
  44. package/dist/storage/implementation/v1/MongoCompactorV1.d.ts +36 -5
  45. package/dist/storage/implementation/v1/MongoCompactorV1.js +229 -8
  46. package/dist/storage/implementation/v1/MongoCompactorV1.js.map +1 -1
  47. package/dist/storage/implementation/v1/MongoParameterCompactorV1.d.ts +16 -2
  48. package/dist/storage/implementation/v1/MongoParameterCompactorV1.js +20 -9
  49. package/dist/storage/implementation/v1/MongoParameterCompactorV1.js.map +1 -1
  50. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.d.ts +18 -11
  51. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js +65 -16
  52. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js.map +1 -1
  53. package/dist/storage/implementation/v1/models.js +1 -0
  54. package/dist/storage/implementation/v1/models.js.map +1 -1
  55. package/dist/storage/implementation/v3/CompactionLease.d.ts +50 -0
  56. package/dist/storage/implementation/v3/CompactionLease.js +131 -0
  57. package/dist/storage/implementation/v3/CompactionLease.js.map +1 -0
  58. package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +8 -1
  59. package/dist/storage/implementation/v3/MongoBucketBatchV3.js +120 -39
  60. package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -1
  61. package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +77 -25
  62. package/dist/storage/implementation/v3/MongoCompactorV3.js +585 -141
  63. package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -1
  64. package/dist/storage/implementation/v3/MongoParameterCompactorV3.d.ts +18 -0
  65. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js +23 -0
  66. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js.map +1 -0
  67. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.d.ts +2 -15
  68. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js +60 -92
  69. package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js.map +1 -1
  70. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.d.ts +19 -9
  71. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +91 -31
  72. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -1
  73. package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.d.ts +26 -0
  74. package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.js +82 -0
  75. package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.js.map +1 -0
  76. package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +2 -0
  77. package/dist/storage/implementation/v3/PersistedBatchV3.js +52 -11
  78. package/dist/storage/implementation/v3/PersistedBatchV3.js.map +1 -1
  79. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.d.ts +12 -2
  80. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js +42 -3
  81. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js.map +1 -1
  82. package/dist/storage/implementation/v3/bucket-format.js +2 -0
  83. package/dist/storage/implementation/v3/bucket-format.js.map +1 -1
  84. package/dist/storage/implementation/v3/compact-utils.d.ts +107 -0
  85. package/dist/storage/implementation/v3/compact-utils.js +216 -0
  86. package/dist/storage/implementation/v3/compact-utils.js.map +1 -0
  87. package/dist/storage/implementation/v3/compaction-constants.d.ts +5 -0
  88. package/dist/storage/implementation/v3/compaction-constants.js +6 -0
  89. package/dist/storage/implementation/v3/compaction-constants.js.map +1 -0
  90. package/dist/storage/implementation/v3/models.d.ts +89 -5
  91. package/dist/storage/implementation/v3/models.js.map +1 -1
  92. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.d.ts +7 -8
  93. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js +8 -4
  94. package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js.map +1 -1
  95. package/dist/storage/implementation/v3/object-storage/ObjectStorage.d.ts +14 -11
  96. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.d.ts +3 -5
  97. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js +10 -2
  98. package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js.map +1 -1
  99. package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.d.ts +37 -0
  100. package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.js +167 -0
  101. package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.js.map +1 -0
  102. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.d.ts +37 -12
  103. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js +177 -23
  104. package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js.map +1 -1
  105. package/dist/storage/implementation/v3/source-table-utils.d.ts +15 -7
  106. package/dist/storage/implementation/v3/source-table-utils.js +49 -57
  107. package/dist/storage/implementation/v3/source-table-utils.js.map +1 -1
  108. package/dist/storage/storage-index.d.ts +2 -1
  109. package/dist/storage/storage-index.js +1 -0
  110. package/dist/storage/storage-index.js.map +1 -1
  111. package/dist/types/types.d.ts +23 -1
  112. package/dist/types/types.js +16 -7
  113. package/dist/types/types.js.map +1 -1
  114. package/dist/utils/util.js +3 -1
  115. package/dist/utils/util.js.map +1 -1
  116. package/package.json +10 -9
  117. package/src/storage/MongoBucketStorage.ts +495 -268
  118. package/src/storage/implementation/MongoBucketBatch.ts +54 -14
  119. package/src/storage/implementation/MongoCompactor.ts +35 -346
  120. package/src/storage/implementation/MongoParameterCompactor.ts +388 -102
  121. package/src/storage/implementation/MongoParsedSyncConfigSet.ts +34 -0
  122. package/src/storage/implementation/MongoPersistedSyncConfigContent.ts +4 -2
  123. package/src/storage/implementation/MongoStorageProvider.ts +3 -1
  124. package/src/storage/implementation/MongoSyncBucketStorage.ts +114 -40
  125. package/src/storage/implementation/MongoSyncRulesLock.ts +22 -9
  126. package/src/storage/implementation/MongoWriteCheckpointAPI.ts +12 -44
  127. package/src/storage/implementation/SyncRuleStateUpdate.ts +13 -6
  128. package/src/storage/implementation/common/MongoSyncBucketStorageCheckpoint.ts +24 -2
  129. package/src/storage/implementation/common/PersistedBatch.ts +54 -2
  130. package/src/storage/implementation/db.ts +21 -2
  131. package/src/storage/implementation/models.ts +38 -0
  132. package/src/storage/implementation/v1/MongoBucketBatchV1.ts +107 -96
  133. package/src/storage/implementation/v1/MongoCompactorV1.ts +303 -19
  134. package/src/storage/implementation/v1/MongoParameterCompactorV1.ts +25 -9
  135. package/src/storage/implementation/v1/MongoSyncBucketStorageV1.ts +87 -27
  136. package/src/storage/implementation/v1/models.ts +1 -0
  137. package/src/storage/implementation/v3/CompactionLease.ts +152 -0
  138. package/src/storage/implementation/v3/MongoBucketBatchV3.ts +159 -42
  139. package/src/storage/implementation/v3/MongoCompactorV3.ts +744 -190
  140. package/src/storage/implementation/v3/MongoParameterCompactorV3.ts +34 -0
  141. package/src/storage/implementation/v3/MongoStoppedSyncConfigCleanup.ts +100 -109
  142. package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +111 -41
  143. package/src/storage/implementation/v3/MongoWriteCheckpointAPIV3.ts +111 -0
  144. package/src/storage/implementation/v3/PersistedBatchV3.ts +57 -12
  145. package/src/storage/implementation/v3/VersionedPowerSyncMongoV3.ts +55 -4
  146. package/src/storage/implementation/v3/bucket-format.ts +2 -0
  147. package/src/storage/implementation/v3/compact-utils.ts +320 -0
  148. package/src/storage/implementation/v3/compaction-constants.ts +5 -0
  149. package/src/storage/implementation/v3/models.ts +96 -3
  150. package/src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts +16 -8
  151. package/src/storage/implementation/v3/object-storage/ObjectStorage.ts +20 -5
  152. package/src/storage/implementation/v3/object-storage/ObjectStorageLifecycle.ts +15 -4
  153. package/src/storage/implementation/v3/object-storage/ObjectStorageUsage.ts +230 -0
  154. package/src/storage/implementation/v3/object-storage/S3ObjectStorage.ts +257 -27
  155. package/src/storage/implementation/v3/source-table-utils.ts +82 -76
  156. package/src/storage/storage-index.ts +2 -0
  157. package/src/types/types.ts +24 -7
  158. package/src/utils/util.ts +3 -1
  159. package/test/src/__snapshots__/storage.test.ts.snap +25 -0
  160. package/test/src/__snapshots__/storage_sync.test.ts.snap +605 -16
  161. package/test/src/cleanup-stopped-sync-configs.test.ts +40 -13
  162. package/test/src/compact-utils.test.ts +226 -0
  163. package/test/src/helpers/MemoryObjectStorage.ts +14 -6
  164. package/test/src/object_storage_usage.test.ts +255 -0
  165. package/test/src/parameter_compacting_v1.test.ts +120 -0
  166. package/test/src/parameter_compacting_v3.test.ts +192 -0
  167. package/test/src/parameter_compaction_fence.test.ts +276 -0
  168. package/test/src/storage.test.ts +273 -22
  169. package/test/src/storage_compacting.test.ts +714 -244
  170. package/test/src/storage_s3_checksums.test.ts +3 -4
  171. package/test/src/storage_s3_compaction_lifecycle.test.ts +138 -12
  172. package/test/src/storage_s3_reading.test.ts +243 -1
  173. package/test/src/storage_s3_writing.test.ts +1 -0
  174. package/test/src/storage_sync.test.ts +365 -41
  175. package/test/src/util.ts +1 -1
  176. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"MongoCompactorV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoCompactorV1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAW,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGvE,OAAO,EAA2B,gCAAgC,EAAE,MAAM,cAAc,CAAC;AACzF,OAAO,EAAmC,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAK/D,MAAM,OAAO,gBAAiB,SAAQ,cAAc;IAK1C,OAAO,GAAwD,EAAE,CAAC;IAEnE,KAAK,CAAC,CAAC,kBAAkB,CAAC,OAGhC;QACC,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,yBAAyB,CAAC,+BAA+B,CAAC,CAAC;QACvE,CAAC;QACD,iHAAiH;QACjH,kHAAkH;QAClH,6GAA6G;QAC7G,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CACzC,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,EAAS,EAAE,EAClD,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,KAAK,CAAC,MAAM,EAAS,EAAE,EAClD,OAAO,EACP,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,OAAqC;QAC7E,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,yBAAyB,CAAC,+BAA+B,CAAC,CAAC;QACvE,CAAC;QACD,mGAAmG;QACnG,2CAA2C;QAC3C,OAAO,IAAI,CAAC,yCAAyC,CACnD,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB;YACE,OAAO,EAAE,IAAI,CAAC,QAAQ;YACtB,8BAA8B,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE;SACnE,EACD,GAAG,EAAE,CAAC,IAAI,CACX,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,uBAAuB;QACrC,MAAM,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CACnC,IAAI,CAAC,kBAA0E,EAC/E,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,0BAA0B,CACxC,OAAuD;QAEvD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,qCAAqC,CACjE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3B,MAAM;YACN,GAAG,EAAE,IAAI,CAAC,OAAO;SAClB,CAAC,CAAC,EACH,EAAE,WAAW,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,EAAE,CAC7C,CAAC;IACJ,CAAC;IAES,iBAAiB,CACzB,MAAc,EACd,aAAwC;QAExC,OAAO;YACL,GAAG,EAAE;gBACH,CAAC,EAAE,IAAI,CAAC,QAAQ;gBAChB,CAAC,EAAE,MAAM;aACV;SACF,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,MAAc;QACzC,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE;YACtC,mBAAmB,EAAE,IAAI,CAAC,QAAQ;YAClC,YAAY,EAAE,gCAAgC;YAC9C,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAChD,mEAAmE;QACnE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAElB,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QACvC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,YAAY,GAAuB;YACvC,MAAM;YACN,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,YAAY;YAC5C,IAAI,EAAE,IAAI,GAAG,EAAE;YACf,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;SACX,CAAC;QAEF,wBAAwB;QACxB,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC;QACvC,0CAA0C;QAC1C,IAAI,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC;QAErC,oEAAoE;QACpE,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YAE9B,uDAAuD;YACvD,MAAM,QAAQ,GAAG;gBACf;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE;4BACH,IAAI,EAAE,UAAU;4BAChB,GAAG,EAAE,UAAU;yBAChB;qBACF;iBACF;gBACD,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;gBACtB,EAAE,MAAM,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACpC;oBACE,QAAQ,EAAE;wBACR,GAAG,EAAE,CAAC;wBACN,EAAE,EAAE,CAAC;wBACL,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,CAAC;wBACT,YAAY,EAAE,CAAC;wBACf,UAAU,EAAE,CAAC;wBACb,QAAQ,EAAE,CAAC;wBACX,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;qBAC9B;iBACF;aACF,CAAC;YAEF,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,SAAS,CAAmD,QAAQ,EAAE;gBAC5G,2DAA2D;gBAC3D,+DAA+D;gBAC/D,SAAS,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC;aACxC,CAAC,CAAC;YACH,+GAA+G;YAC/G,oCAAoC;YACpC,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;gBACnC,OAAO;oBACL,GAAG,EAAE,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC;oBAC9C,IAAI;iBACL,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,yBAAyB;gBACzB,MAAM;YACR,CAAC;YAED,sEAAsE;YACtE,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;YAE/C,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;gBAClC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;oBACzB,SAAS;gBACX,CAAC;gBAED,YAAY,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAClF,YAAY,CAAC,OAAO,IAAI,CAAC,CAAC;gBAE1B,IAAI,eAAe,GAAG,GAAG,CAAC,EAAE,IAAI,KAAK,CAAC;gBAEtC,YAAY,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;gBACrC,IAAI,GAAG,CAAC,EAAE,IAAI,QAAQ,IAAI,GAAG,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC;oBAC1C,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,YAAa,EAAE,GAAG,CAAC,UAAW,CAAC,EAAE,CAAC;oBACzF,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;oBAC5C,IAAI,QAAQ,EAAE,CAAC;wBACb,+CAA+C;wBAC/C,eAAe,GAAG,KAAK,CAAC;wBAExB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;4BAChB,SAAS,EAAE;gCACT,MAAM,EAAE,EAAE,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gCAC3C,MAAM,EAAE;oCACN,IAAI,EAAE;wCACJ,EAAE,EAAE,MAAM;wCACV,SAAS,EAAE,QAAQ;qCACpB;oCACD,MAAM,EAAE;wCACN,YAAY,EAAE,CAAC;wCACf,UAAU,EAAE,CAAC;wCACb,KAAK,EAAE,CAAC;wCACR,MAAM,EAAE,CAAC;wCACT,IAAI,EAAE,CAAC;qCACR;iCACiD;6BACrD;yBACF,CAAC,CAAC;wBAEH,kCAAkC;wBAClC,YAAY,CAAC,OAAO,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7C,CAAC;yBAAM,IAAI,YAAY,CAAC,YAAY,GAAG,YAAY,EAAE,CAAC;wBACpD,6DAA6D;wBAC7D,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;wBACjD,6BAA6B;wBAC7B,oBAAoB;wBACpB,sBAAsB;wBACtB,6BAA6B;wBAC7B,YAAY,CAAC,YAAY,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;oBAChD,CAAC;gBACH,CAAC;gBAED,IAAI,eAAe,EAAE,CAAC;oBACpB,YAAY,CAAC,UAAU,GAAG,IAAI,CAAC;oBAC/B,YAAY,CAAC,WAAW,GAAG,CAAC,CAAC;gBAC/B,CAAC;qBAAM,IAAI,GAAG,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,EAAE,CAAC;wBACpC,YAAY,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;oBAClC,CAAC;oBACD,YAAY,CAAC,WAAW,IAAI,CAAC,CAAC;gBAChC,CAAC;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;oBAChF,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,KAAK,CAAC,MAAM,oBAAoB,MAAM,EAAE,CAAC,CAAC;QAC1F,CAAC;QAED,0CAA0C;QAC1C,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC1B,IAAI,YAAY,CAAC,UAAU,IAAI,IAAI,IAAI,YAAY,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;YACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sBAAsB,IAAI,CAAC,QAAQ,IAAI,MAAM,IAAI,YAAY,CAAC,UAAU,cAAc,YAAY,CAAC,WAAW,aAAa,CAC5H,CAAC;YACF,+BAA+B;YAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;YAChC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,wDAAwD;QACxD,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvD,oDAAoD;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,KAAK,CAAC,aAAkC;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;YAC1D,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;gBACrD,sGAAsG;gBACtG,8FAA8F;gBAC9F,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,WAAW,CAAC,YAAgC,EAAE,aAAkC;QAC5F,MAAM,OAAO,GAAG,YAAY,CAAC,UAAW,CAAC;QAEzC,MAAM,QAAQ,GAAG;YACf,GAAG,EAAE;gBACH,IAAI,EAAE,aAAa,CAAC,KAAK;gBACzB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;aACnC;SACF,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,KAAK,CAAC;YACjB,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;gBAC9B,IAAI,WAAW,GAAG,CAAC,CAAC;gBACpB,6EAA6E;gBAC7E,kDAAkD;gBAClD,0EAA0E;gBAC1E,MAAM,OAAO,CAAC,eAAe,CAC3B,KAAK,IAAI,EAAE;oBACT,MAAM,KAAK,GAAG,aAAa,CAAC,UAAU,CAAC,IAAI,CACzC,QAAQ,EACR;wBACE,OAAO;wBACP,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;wBAChB,UAAU,EAAE;4BACV,GAAG,EAAE,CAAC;4BACN,EAAE,EAAE,CAAC;4BACL,QAAQ,EAAE,CAAC;4BACX,SAAS,EAAE,CAAC;yBACb;wBACD,KAAK,EAAE,IAAI,CAAC,eAAe;qBAC5B,CACF,CAAC;oBACF,IAAI,QAAQ,GAAG,CAAC,CAAC;oBACjB,IAAI,MAAM,GAA6D,IAAI,CAAC;oBAC5E,IAAI,QAAQ,GAAkB,IAAI,CAAC;oBACnC,IAAI,OAAO,GAAG,KAAK,CAAC;oBACpB,IAAI,kBAAkB,GAAG,CAAC,CAAC;oBAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;wBACzC,MAAM,EAAE,GAAG,aAAa,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;wBAE7D,IAAI,EAAE,CAAC,EAAE,IAAI,MAAM,IAAI,EAAE,CAAC,EAAE,IAAI,QAAQ,IAAI,EAAE,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;4BAC7D,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;4BAC7D,MAAM,GAAG,EAAE,CAAC;4BACZ,kBAAkB,IAAI,CAAC,CAAC;4BACxB,IAAI,EAAE,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;gCACrB,OAAO,GAAG,IAAI,CAAC;4BACjB,CAAC;4BACD,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,EAAE,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;gCAC1E,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC;4BAC1B,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,MAAM,IAAI,yBAAyB,CAAC,cAAc,EAAE,CAAC,EAAE,iBAAiB,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;wBAC1G,CAAC;oBACH,CAAC;oBACD,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,IAAI,GAAG,IAAI,CAAC;wBACZ,OAAO;oBACT,CAAC;oBAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,kBAAkB,WAAW,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;oBACjF,MAAM,aAAa,CAAC,UAAU,CAAC,UAAU,CACvC;wBACE,GAAG,EAAE;4BACH,IAAI,EAAE,aAAa,CAAC,KAAK;4BACzB,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,MAAO,CAAC,CAAC,CAAC;yBACrC;qBACF,EACD,EAAE,OAAO,EAAE,CACZ,CAAC;oBAEF,MAAM,EAAE,GAAG,aAAa,CAAC,mBAAmB,CAAC;wBAC3C,CAAC,EAAE,MAAO,CAAC,CAAC;wBACZ,EAAE,EAAE,OAAO;wBACX,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;wBAC1B,IAAI,EAAE,IAAI;wBACV,SAAS,EAAE,QAAQ;qBACpB,CAAC,CAAC;oBACH,MAAM,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;oBAE1D,WAAW,GAAG,CAAC,kBAAkB,GAAG,CAAC,CAAC;gBACxC,CAAC,EACD;oBACE,YAAY,EAAE,EAAE,CAAC,EAAE,UAAU,EAAE;oBAC/B,WAAW,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;iBACnC,CACF,CAAC;gBACF,uFAAuF;gBACvF,YAAY,CAAC,OAAO,IAAI,WAAW,CAAC;YACtC,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAEO,mBAAmB,CAAC,GAA2C;QACrE,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,mBAAmB,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC;IACjF,CAAC;CACF"}
1
+ {"version":3,"file":"MongoCompactorV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoCompactorV1.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { bson, InternalOpId } from '@powersync/service-core';
2
3
  import { MongoParameterCompactor } from '../MongoParameterCompactor.js';
3
4
  import { VersionedPowerSyncMongoV1 } from './VersionedPowerSyncMongoV1.js';
4
5
  export declare class MongoParameterCompactorV1 extends MongoParameterCompactor {
5
6
  protected readonly db: VersionedPowerSyncMongoV1;
6
7
  protected getCollections(): Promise<mongo.Collection<mongo.Document>[]>;
7
- protected collectionFilter(): mongo.Document;
8
- protected deleteFilter(doc: mongo.Document): mongo.Document;
8
+ protected shouldCompactDocument(doc: {
9
+ key: mongo.Document;
10
+ }): boolean;
11
+ /**
12
+ * Uses the legacy `{ 'key.g': 1, lookup: 1, _id: 1 }` index to narrow the stream, lookup and
13
+ * operation-id range. `key` is not part of that index at all, so it is a residual predicate applied
14
+ * to every document the range scan returns.
15
+ *
16
+ * That scan may therefore have to filter through many keys for the same lookup, but the cost is
17
+ * amortized: a single scan covers up to 1000 keys, and identities seen again in a later batch skip
18
+ * the scan entirely - they are deleted by `_id`.
19
+ *
20
+ * The V3 storage format uses an index more suitable for this.
21
+ */
22
+ protected leadingHistoryDeleteFilter(lookup: bson.Binary, keys: mongo.Document[], before: InternalOpId): mongo.Document;
9
23
  }
@@ -3,17 +3,28 @@ export class MongoParameterCompactorV1 extends MongoParameterCompactor {
3
3
  async getCollections() {
4
4
  return [this.db.parameterIndexV1];
5
5
  }
6
- collectionFilter() {
7
- return {
8
- 'key.g': this.group_id
9
- };
6
+ // The shared V1 collection is scanned using only its default `_id` index. Filter the stream in
7
+ // code so compaction does not require an index on `key.g`.
8
+ shouldCompactDocument(doc) {
9
+ return doc.key.g === this.replicationStreamId;
10
10
  }
11
- deleteFilter(doc) {
11
+ /**
12
+ * Uses the legacy `{ 'key.g': 1, lookup: 1, _id: 1 }` index to narrow the stream, lookup and
13
+ * operation-id range. `key` is not part of that index at all, so it is a residual predicate applied
14
+ * to every document the range scan returns.
15
+ *
16
+ * That scan may therefore have to filter through many keys for the same lookup, but the cost is
17
+ * amortized: a single scan covers up to 1000 keys, and identities seen again in a later batch skip
18
+ * the scan entirely - they are deleted by `_id`.
19
+ *
20
+ * The V3 storage format uses an index more suitable for this.
21
+ */
22
+ leadingHistoryDeleteFilter(lookup, keys, before) {
12
23
  return {
13
- 'key.g': doc.key.g,
14
- lookup: doc.lookup,
15
- _id: { $lte: doc._id },
16
- key: doc.key
24
+ 'key.g': this.replicationStreamId,
25
+ lookup,
26
+ key: { $in: keys },
27
+ _id: { $lt: before }
17
28
  };
18
29
  }
19
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MongoParameterCompactorV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoParameterCompactorV1.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAG1D,KAAK,CAAC,cAAc;QAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,gBAA+D,CAAC,CAAC;IACnF,CAAC;IAES,gBAAgB;QACxB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC;IACJ,CAAC;IAES,YAAY,CAAC,GAAmB;QACxC,OAAO;YACL,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAW;YAC5B,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,EAAE;YACtB,GAAG,EAAE,GAAG,CAAC,GAAG;SACb,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"MongoParameterCompactorV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoParameterCompactorV1.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAGxE,MAAM,OAAO,yBAA0B,SAAQ,uBAAuB;IAG1D,KAAK,CAAC,cAAc;QAC5B,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,gBAA+D,CAAC,CAAC;IACnF,CAAC;IAED,+FAA+F;IAC/F,2DAA2D;IACxC,qBAAqB,CAAC,GAA4B;QACnE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,mBAAmB,CAAC;IAChD,CAAC;IAED;;;;;;;;;;OAUG;IACO,0BAA0B,CAClC,MAAmB,EACnB,IAAsB,EACtB,MAAoB;QAEpB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,mBAAmB;YACjC,MAAM;YACN,GAAG,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;YAClB,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE;SACrB,CAAC;IACJ,CAAC;CACF"}
@@ -1,14 +1,15 @@
1
1
  import { mongo } from '@powersync/lib-service-mongodb';
2
- import { CheckpointChanges, GetCheckpointChangesOptions, InternalOpId, storage } from '@powersync/service-core';
2
+ import { CheckpointChanges, CompactInitialReplicationOptions, CompactInitialReplicationResults, GetCheckpointChangesOptions, InternalOpId, storage } from '@powersync/service-core';
3
3
  import { ParameterLookupRows, ScopedParameterLookup } from '@powersync/service-sync-rules';
4
4
  import { MongoBucketStorage } from '../../MongoBucketStorage.js';
5
- import { MongoSyncBucketStorageCheckpoint } from '../common/MongoSyncBucketStorageCheckpoint.js';
5
+ import { MongoGetCheckpointChangesOptions, MongoSyncBucketStorageCheckpoint } from '../common/MongoSyncBucketStorageCheckpoint.js';
6
6
  import { MongoChecksums } from '../MongoChecksums.js';
7
- import { MongoCompactOptions, MongoCompactor } from '../MongoCompactor.js';
7
+ import { MongoCompactOptions } from '../MongoCompactor.js';
8
8
  import { MongoParameterCompactor } from '../MongoParameterCompactor.js';
9
9
  import { MongoPersistedReplicationStream } from '../MongoPersistedReplicationStream.js';
10
- import { MongoSyncBucketStorage, MongoSyncBucketStorageOptions } from '../MongoSyncBucketStorage.js';
10
+ import { MongoCheckpointState, MongoSyncBucketStorage, MongoSyncBucketStorageOptions } from '../MongoSyncBucketStorage.js';
11
11
  import { MongoChecksumsV1 } from './MongoChecksumsV1.js';
12
+ import { MongoCompactorV1 } from './MongoCompactorV1.js';
12
13
  import { VersionedPowerSyncMongoV1 } from './VersionedPowerSyncMongoV1.js';
13
14
  export interface MongoSyncBucketStorageContextV1 {
14
15
  db: VersionedPowerSyncMongoV1;
@@ -22,15 +23,13 @@ export declare class MongoSyncBucketStorageV1 extends MongoSyncBucketStorage {
22
23
  protected initializeVersionStorage(): Promise<void>;
23
24
  protected fetchPersistedOpHead(): Promise<InternalOpId | null>;
24
25
  protected createWriterImpl(options: storage.CreateWriterOptions): Promise<storage.BucketStorageBatch>;
25
- protected fetchCheckpointState(session: mongo.ClientSession): Promise<{
26
- checkpoint: bigint;
27
- lsn: string | null;
28
- } | null>;
26
+ protected fetchCheckpointState(session: mongo.ClientSession): Promise<MongoCheckpointState | null>;
29
27
  protected terminateSyncRuleState(): Promise<void>;
30
28
  protected getStatusImpl(): Promise<storage.ReplicationStreamStatus>;
31
29
  protected clearSyncRuleState(): Promise<void>;
32
30
  protected createMongoChecksums(options: MongoSyncBucketStorageOptions): MongoChecksums;
33
- createMongoCompactor(options: MongoCompactOptions): MongoCompactor;
31
+ createMongoCompactor(options: MongoCompactOptions): MongoCompactorV1;
32
+ compactInitialReplication(options: CompactInitialReplicationOptions): Promise<CompactInitialReplicationResults>;
34
33
  protected createMongoParameterCompactor(checkpoint: InternalOpId, options: storage.CompactOptions): MongoParameterCompactor;
35
34
  protected get versionContext(): MongoSyncBucketStorageContextV1;
36
35
  protected getParameterSetsImpl(checkpoint: MongoSyncBucketStorageCheckpoint, lookups: ScopedParameterLookup[], limit: number): Promise<ParameterLookupRows[]>;
@@ -41,9 +40,17 @@ export declare class MongoSyncBucketStorageV1 extends MongoSyncBucketStorage {
41
40
  protected clearBucketState(signal?: AbortSignal): Promise<void>;
42
41
  protected clearSourceTables(signal?: AbortSignal): Promise<void>;
43
42
  protected getDataBucketChangesImpl(options: GetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedDataBuckets' | 'invalidateDataBuckets'>>;
44
- protected getParameterBucketChangesImpl(options: GetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedParameterLookups' | 'invalidateParameterBuckets'>>;
43
+ protected getParameterBucketChangesImpl(options: MongoGetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedParameterLookups' | 'invalidateParameterBuckets'>>;
45
44
  }
46
45
  export declare function getParameterSetsV1(ctx: MongoSyncBucketStorageContextV1, checkpoint: MongoSyncBucketStorageCheckpoint, lookups: ScopedParameterLookup[], limit: number): Promise<ParameterLookupRows[]>;
47
46
  export declare function getBucketDataBatchV1(ctx: MongoSyncBucketStorageContextV1, checkpoint: MongoSyncBucketStorageCheckpoint, dataBuckets: storage.BucketDataRequest[], options?: storage.BucketDataBatchOptions): AsyncIterable<storage.SyncBucketDataChunk>;
48
47
  export declare function getDataBucketChangesV1(ctx: MongoSyncBucketStorageContextV1, options: GetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedDataBuckets' | 'invalidateDataBuckets'>>;
49
- export declare function getParameterBucketChangesV1(ctx: MongoSyncBucketStorageContextV1, options: GetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedParameterLookups' | 'invalidateParameterBuckets'>>;
48
+ /**
49
+ * Query the parameter entries changed between the two checkpoints, to determine which parameter
50
+ * lookups need to be re-evaluated.
51
+ *
52
+ * This runs at the next checkpoint's snapshot, so it still sees entries that parameter compaction
53
+ * deleted after that snapshot. Compaction that deleted entries before the snapshot is covered by
54
+ * the invalidation fence, checked before we get here.
55
+ */
56
+ export declare function getParameterBucketChangesV1(ctx: MongoSyncBucketStorageContextV1, options: MongoGetCheckpointChangesOptions): Promise<Pick<CheckpointChanges, 'updatedParameterLookups' | 'invalidateParameterBuckets'>>;
@@ -40,14 +40,24 @@ export class MongoSyncBucketStorageV1 extends MongoSyncBucketStorage {
40
40
  async fetchCheckpointState(session) {
41
41
  const doc = (await this.db.sync_rules.findOne({ _id: this.replicationStreamId }, {
42
42
  session,
43
- projection: { _id: 1, state: 1, last_checkpoint: 1, last_checkpoint_lsn: 1, snapshot_done: 1 }
43
+ projection: {
44
+ _id: 1,
45
+ state: 1,
46
+ last_checkpoint: 1,
47
+ last_checkpoint_lsn: 1,
48
+ snapshot_done: 1,
49
+ // Must be read in the same snapshot as the checkpoint.
50
+ 'parameter_compaction.checkpoint_changes_invalid_before': 1
51
+ }
44
52
  }));
45
53
  if (!doc?.snapshot_done || ![storage.SyncRuleState.ACTIVE, storage.SyncRuleState.ERRORED].includes(doc.state)) {
46
54
  return null;
47
55
  }
48
56
  return {
49
57
  checkpoint: doc.last_checkpoint ?? 0n,
50
- lsn: doc.last_checkpoint_lsn ?? null
58
+ lsn: doc.last_checkpoint_lsn ?? null,
59
+ // Defaults to 0n for streams that have never been compacted.
60
+ parameterChangesInvalidBefore: doc.parameter_compaction?.checkpoint_changes_invalid_before ?? 0n
51
61
  };
52
62
  }
53
63
  async terminateSyncRuleState() {
@@ -91,7 +101,8 @@ export class MongoSyncBucketStorageV1 extends MongoSyncBucketStorage {
91
101
  no_checkpoint_before: null
92
102
  },
93
103
  $unset: {
94
- snapshot_lsn: 1
104
+ snapshot_lsn: 1,
105
+ parameter_compaction: 1
95
106
  }
96
107
  }, { maxTimeMS: lib_mongo.db.MONGO_CLEAR_OPERATION_TIMEOUT_MS });
97
108
  }
@@ -105,6 +116,23 @@ export class MongoSyncBucketStorageV1 extends MongoSyncBucketStorage {
105
116
  createMongoCompactor(options) {
106
117
  return new MongoCompactorV1(this, this.db, options);
107
118
  }
119
+ async compactInitialReplication(options) {
120
+ this.logger.info(`Compacting after initial replication...`);
121
+ const start = Date.now();
122
+ const maxOpId = options.maxOpId ?? (await this.fetchPersistedOpHead()) ?? undefined;
123
+ const compactor = this.createMongoCompactor({
124
+ ...options,
125
+ maxOpId,
126
+ memoryLimitMB: 0,
127
+ logger: this.logger
128
+ });
129
+ const result = await compactor.populateChecksums({
130
+ minBucketChanges: options.minBucketChanges ?? 10
131
+ });
132
+ const duration = Date.now() - start;
133
+ this.logger.info(`Compacted after initial replication in ${(duration / 1000).toFixed(1)}s`);
134
+ return result;
135
+ }
108
136
  createMongoParameterCompactor(checkpoint, options) {
109
137
  return new MongoParameterCompactorV1(this.db, this.replicationStreamId, checkpoint, options);
110
138
  }
@@ -352,21 +380,42 @@ export async function getDataBucketChangesV1(ctx, options) {
352
380
  updatedDataBuckets: invalidateDataBuckets ? new Set() : new Set(buckets)
353
381
  };
354
382
  }
383
+ /**
384
+ * Query the parameter entries changed between the two checkpoints, to determine which parameter
385
+ * lookups need to be re-evaluated.
386
+ *
387
+ * This runs at the next checkpoint's snapshot, so it still sees entries that parameter compaction
388
+ * deleted after that snapshot. Compaction that deleted entries before the snapshot is covered by
389
+ * the invalidation fence, checked before we get here.
390
+ */
355
391
  export async function getParameterBucketChangesV1(ctx, options) {
356
392
  const limit = 1000;
357
- const parameterUpdates = await ctx.db.parameterIndexV1
358
- .find({
359
- _id: { $gt: options.lastCheckpoint.checkpoint, $lte: options.nextCheckpoint.checkpoint },
360
- 'key.g': ctx.replicationStreamId
361
- }, {
362
- projection: {
363
- lookup: 1
364
- },
365
- limit: limit + 1,
366
- batchSize: limit + 2,
367
- singleBatch: true
368
- })
369
- .toArray();
393
+ const parameterUpdates = await ctx.db.client.withSession({ snapshot: true }, async (session) => {
394
+ setSessionSnapshotTime(session, options.nextCheckpoint.snapshotTime);
395
+ return await ctx.db.parameterIndexV1
396
+ .find({
397
+ _id: { $gt: options.lastCheckpoint.checkpoint, $lte: options.nextCheckpoint.checkpoint },
398
+ 'key.g': ctx.replicationStreamId
399
+ }, {
400
+ session,
401
+ readConcern: 'snapshot',
402
+ projection: {
403
+ lookup: 1
404
+ },
405
+ limit: limit + 1,
406
+ batchSize: limit + 2,
407
+ singleBatch: true
408
+ })
409
+ .toArray()
410
+ .catch((e) => {
411
+ // Includes the case where the checkpoint snapshot has expired. Degrading to
412
+ // invalidateParameterBuckets would be safe in itself - it reads nothing - but it gains
413
+ // nothing: the caller responds to that by re-evaluating the parameter queries at this
414
+ // same snapshot, which fails too. The checkpoint has to be refetched instead, which is
415
+ // what the existing sync retry behavior does.
416
+ throw lib_mongo.mapQueryError(e, 'while querying parameter changes');
417
+ });
418
+ });
370
419
  const invalidateParameterUpdates = parameterUpdates.length > limit;
371
420
  return {
372
421
  invalidateParameterBuckets: invalidateParameterUpdates,
@@ -1 +1 @@
1
- {"version":3,"file":"MongoSyncBucketStorageV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoSyncBucketStorageV1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoSyncBucketStorageV1.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/MongoSyncBucketStorageV1.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export function serializeBucketDataV1(document) {
11
11
  op: document.op,
12
12
  source_table: document.source_table,
13
13
  source_key: document.source_key,
14
+ subkey: document.subkey,
14
15
  table: document.table,
15
16
  row_id: document.row_id,
16
17
  checksum: document.checksum,
@@ -1 +1 @@
1
- {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,gCAAgC,EAMjC,MAAM,cAAc,CAAC;AAwBtB,MAAM,UAAU,qBAAqB,CAAC,QAAuB;IAC3D,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IAClC,OAAO;QACL,GAAG,EAAE;YACH,CAAC,EAAE,SAAS,CAAC,mBAAmB;YAChC,CAAC,EAAE,SAAS,CAAC,MAAM;YACnB,CAAC,EAAE,CAAC;SACL;QACD,iFAAiF;QACjF,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAyB;IAChE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1B,YAAY,EAAE,gCAAgC;YAC9C,MAAM,EAAE,GAAG,CAAC,CAAC;SACd;QACD,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAuC;IACvF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC5C,OAAO,IAA+B,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v1/models.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,gCAAgC,EAMjC,MAAM,cAAc,CAAC;AAwBtB,MAAM,UAAU,qBAAqB,CAAC,QAAuB;IAC3D,MAAM,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC;IAClC,OAAO;QACL,GAAG,EAAE;YACH,CAAC,EAAE,SAAS,CAAC,mBAAmB;YAChC,CAAC,EAAE,SAAS,CAAC,MAAM;YACnB,CAAC,EAAE,CAAC;SACL;QACD,iFAAiF;QACjF,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAyB;IAChE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,CAAC;IAC7B,OAAO;QACL,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1B,YAAY,EAAE,gCAAgC;YAC9C,MAAM,EAAE,GAAG,CAAC,CAAC;SACd;QACD,CAAC,EAAE,GAAG,CAAC,CAAC;QACR,GAAG,IAAI;KACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,QAAuC;IACvF,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC5C,OAAO,IAA+B,CAAC;AACzC,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { InternalOpId } from '@powersync/service-core';
3
+ import { BucketStateDocumentV3 } from './models.js';
4
+ /**
5
+ * Filters for buckets that have no lease or an expired lease.
6
+ */
7
+ export declare const AVAILABLE_LEASE_EXPR: {
8
+ $expr: {
9
+ $or: ({
10
+ $eq: (string | {
11
+ $type: string;
12
+ })[];
13
+ $lte?: undefined;
14
+ } | {
15
+ $lte: string[];
16
+ $eq?: undefined;
17
+ })[];
18
+ };
19
+ };
20
+ /**
21
+ * Owns one V3 bucket-compaction lease, including its server-time renewal and
22
+ * the owner-fenced operations which release it.
23
+ *
24
+ * This is intended as a way to reduce redundant work if multiple jobs attempt to
25
+ * compact the same bucket concurrently, but it's not an absolute safety guarantee.
26
+ * The individual operations must still be designed to be safe with concurrent compacting.
27
+ */
28
+ export declare class CompactionLease implements AsyncDisposable {
29
+ private readonly collection;
30
+ readonly state: BucketStateDocumentV3;
31
+ readonly id: mongo.ObjectId;
32
+ private readonly durationMs;
33
+ readonly startedAt: Date;
34
+ readonly lastOp: InternalOpId;
35
+ private timer;
36
+ private renewalInFlight;
37
+ private renewalError;
38
+ private finalizing;
39
+ private finished;
40
+ private constructor();
41
+ static claim(collection: mongo.Collection<BucketStateDocumentV3>, filter: mongo.Filter<BucketStateDocumentV3>, sort: mongo.Sort | undefined, durationMs: number): Promise<CompactionLease | null>;
42
+ startRenewal(): void;
43
+ throwIfLost(): Promise<void>;
44
+ reschedule(nextCompactCheck: mongo.Document): Promise<void>;
45
+ finalize(update: mongo.Document): Promise<void>;
46
+ [Symbol.asyncDispose](): Promise<void>;
47
+ private get filter();
48
+ private renew;
49
+ private finish;
50
+ }
@@ -0,0 +1,131 @@
1
+ import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { CompactionLeaseLostError } from '../MongoCompactor.js';
3
+ const LEASE_RENEW_INTERVAL_MS = 60 * 1000;
4
+ /**
5
+ * Filters for buckets that have no lease or an expired lease.
6
+ */
7
+ export const AVAILABLE_LEASE_EXPR = {
8
+ // $$NOW is evaluated by MongoDB, avoiding lease expiry races due
9
+ // to clocks on separate compact workers.
10
+ $expr: {
11
+ $or: [{ $eq: [{ $type: '$compact_lease' }, 'missing'] }, { $lte: ['$compact_lease.expires_at', '$$NOW'] }]
12
+ }
13
+ };
14
+ /**
15
+ * Owns one V3 bucket-compaction lease, including its server-time renewal and
16
+ * the owner-fenced operations which release it.
17
+ *
18
+ * This is intended as a way to reduce redundant work if multiple jobs attempt to
19
+ * compact the same bucket concurrently, but it's not an absolute safety guarantee.
20
+ * The individual operations must still be designed to be safe with concurrent compacting.
21
+ */
22
+ export class CompactionLease {
23
+ collection;
24
+ state;
25
+ id;
26
+ durationMs;
27
+ startedAt;
28
+ lastOp;
29
+ timer;
30
+ renewalInFlight = false;
31
+ renewalError;
32
+ finalizing = false;
33
+ finished = false;
34
+ constructor(collection, state, id, durationMs) {
35
+ this.collection = collection;
36
+ this.state = state;
37
+ this.id = id;
38
+ this.durationMs = durationMs;
39
+ this.startedAt = new Date(state.compact_lease.expires_at.getTime() - durationMs);
40
+ this.lastOp = state.last_op;
41
+ }
42
+ static async claim(collection, filter, sort, durationMs) {
43
+ const id = new mongo.ObjectId();
44
+ const state = await collection.findOneAndUpdate({
45
+ $and: [filter, AVAILABLE_LEASE_EXPR]
46
+ }, [
47
+ {
48
+ $set: {
49
+ compact_lease: {
50
+ id,
51
+ expires_at: { $dateAdd: { startDate: '$$NOW', unit: 'millisecond', amount: durationMs } }
52
+ }
53
+ }
54
+ }
55
+ ], { sort, returnDocument: 'after' });
56
+ return state == null ? null : new CompactionLease(collection, state, id, durationMs);
57
+ }
58
+ startRenewal() {
59
+ const interval = Math.max(1, Math.min(LEASE_RENEW_INTERVAL_MS, Math.floor(this.durationMs / 2)));
60
+ this.timer = setInterval(() => {
61
+ if (this.renewalInFlight) {
62
+ return;
63
+ }
64
+ this.renewalInFlight = true;
65
+ void this.renew()
66
+ .catch((error) => {
67
+ this.renewalError = error;
68
+ })
69
+ .finally(() => {
70
+ this.renewalInFlight = false;
71
+ });
72
+ }, interval);
73
+ this.timer.unref();
74
+ }
75
+ async throwIfLost() {
76
+ if (this.renewalError != null) {
77
+ throw this.renewalError;
78
+ }
79
+ }
80
+ async reschedule(nextCompactCheck) {
81
+ await this.finish([{ $set: { next_compact_check: nextCompactCheck } }, { $unset: 'compact_lease' }]);
82
+ }
83
+ async finalize(update) {
84
+ await this.finish([{ $set: update }, { $unset: 'compact_lease' }]);
85
+ }
86
+ async [Symbol.asyncDispose]() {
87
+ if (this.timer != null) {
88
+ clearInterval(this.timer);
89
+ this.timer = undefined;
90
+ }
91
+ if (this.finished) {
92
+ return;
93
+ }
94
+ this.finalizing = true;
95
+ await this.collection.updateOne(this.filter, { $unset: { compact_lease: '' } });
96
+ this.finished = true;
97
+ }
98
+ get filter() {
99
+ return { _id: this.state._id, 'compact_lease.id': this.id };
100
+ }
101
+ async renew() {
102
+ const result = await this.collection.updateOne(this.filter, [
103
+ {
104
+ $set: {
105
+ 'compact_lease.expires_at': {
106
+ $dateAdd: { startDate: '$$NOW', unit: 'millisecond', amount: this.durationMs }
107
+ }
108
+ }
109
+ }
110
+ ]);
111
+ // A finalization in progress owns the authoritative fenced result.
112
+ if (result.matchedCount != 1 && !this.finalizing) {
113
+ throw new CompactionLeaseLostError(`Lost compaction lease for bucket ${this.state._id.b}`);
114
+ }
115
+ // A successful renewal confirms that a transient failure has passed. A
116
+ // lease-loss error remains sticky: it means another worker may own it.
117
+ if (!(this.renewalError instanceof CompactionLeaseLostError)) {
118
+ this.renewalError = undefined;
119
+ }
120
+ }
121
+ async finish(update) {
122
+ await this.throwIfLost();
123
+ this.finalizing = true;
124
+ const result = await this.collection.updateOne(this.filter, update);
125
+ if (result.matchedCount != 1) {
126
+ throw new CompactionLeaseLostError(`Lost compaction lease for bucket ${this.state._id.b}`);
127
+ }
128
+ this.finished = true;
129
+ }
130
+ }
131
+ //# sourceMappingURL=CompactionLease.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompactionLease.js","sourceRoot":"","sources":["../../../../src/storage/implementation/v3/CompactionLease.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as lib_mongo from '@powersync/lib-service-mongodb';
2
- import { storage } from '@powersync/service-core';
2
+ import { InternalOpId, storage } from '@powersync/service-core';
3
3
  import { MongoBucketBatch, MongoBucketBatchOptions } from '../MongoBucketBatch.js';
4
4
  import { PersistedBatch } from '../common/PersistedBatch.js';
5
5
  import { SourceRecordStore } from '../common/SourceRecordStore.js';
@@ -7,6 +7,9 @@ import { VersionedPowerSyncMongoV3 } from './VersionedPowerSyncMongoV3.js';
7
7
  export declare class MongoBucketBatchV3 extends MongoBucketBatch {
8
8
  readonly db: VersionedPowerSyncMongoV3;
9
9
  private readonly store;
10
+ /** Avoid repeating idempotent createIndexes calls for every checkpoint flush. */
11
+ private readonly initializedCustomCheckpointEventIds;
12
+ private readonly knownEventIds;
10
13
  private readonly syncConfigIds;
11
14
  private needsActivationV3;
12
15
  private lastWaitingLogThrottledV3;
@@ -31,4 +34,8 @@ export declare class MongoBucketBatchV3 extends MongoBucketBatch {
31
34
  }): Promise<void>;
32
35
  markTableSnapshotRequired(table: storage.SourceTable): Promise<void>;
33
36
  markTableSnapshotDone(tables: storage.SourceTable[], no_checkpoint_before_lsn?: string): Promise<storage.SourceTable[]>;
37
+ protected batchCreateCustomWriteCheckpoints(session: lib_mongo.mongo.ClientSession, opId: InternalOpId): Promise<void>;
38
+ protected prepareCustomWriteCheckpoints(): Promise<void>;
39
+ private validateCustomCheckpointEventId;
40
+ private batchCreateEventCustomWriteCheckpoints;
34
41
  }