@powersync/service-module-mongodb-storage 0.15.4 → 0.17.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 (202) hide show
  1. package/CHANGELOG.md +69 -0
  2. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js +1 -1
  3. package/dist/migrations/db/migrations/1688556755264-initial-sync-rules.js.map +1 -1
  4. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js +2 -2
  5. package/dist/migrations/db/migrations/1702295701188-sync-rule-state.js.map +1 -1
  6. package/dist/storage/MongoBucketStorage.d.ts +8 -6
  7. package/dist/storage/MongoBucketStorage.js +153 -66
  8. package/dist/storage/MongoBucketStorage.js.map +1 -1
  9. package/dist/storage/implementation/BucketDefinitionMapping.d.ts +15 -0
  10. package/dist/storage/implementation/BucketDefinitionMapping.js +58 -0
  11. package/dist/storage/implementation/BucketDefinitionMapping.js.map +1 -0
  12. package/dist/storage/implementation/CheckpointState.d.ts +20 -0
  13. package/dist/storage/implementation/CheckpointState.js +31 -0
  14. package/dist/storage/implementation/CheckpointState.js.map +1 -0
  15. package/dist/storage/implementation/MongoBucketBatch.d.ts +48 -35
  16. package/dist/storage/implementation/MongoBucketBatch.js +118 -379
  17. package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
  18. package/dist/storage/implementation/MongoBucketBatchShared.d.ts +5 -0
  19. package/dist/storage/implementation/MongoBucketBatchShared.js +8 -0
  20. package/dist/storage/implementation/MongoBucketBatchShared.js.map +1 -0
  21. package/dist/storage/implementation/MongoChecksums.d.ts +29 -17
  22. package/dist/storage/implementation/MongoChecksums.js +13 -72
  23. package/dist/storage/implementation/MongoChecksums.js.map +1 -1
  24. package/dist/storage/implementation/MongoCompactor.d.ts +98 -58
  25. package/dist/storage/implementation/MongoCompactor.js +229 -296
  26. package/dist/storage/implementation/MongoCompactor.js.map +1 -1
  27. package/dist/storage/implementation/MongoParameterCompactor.d.ts +11 -6
  28. package/dist/storage/implementation/MongoParameterCompactor.js +11 -8
  29. package/dist/storage/implementation/MongoParameterCompactor.js.map +1 -1
  30. package/dist/storage/implementation/MongoPersistedSyncRules.d.ts +14 -0
  31. package/dist/storage/implementation/MongoPersistedSyncRules.js +67 -0
  32. package/dist/storage/implementation/MongoPersistedSyncRules.js.map +1 -0
  33. package/dist/storage/implementation/MongoPersistedSyncRulesContent.d.ts +22 -5
  34. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js +56 -13
  35. package/dist/storage/implementation/MongoPersistedSyncRulesContent.js.map +1 -1
  36. package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +61 -32
  37. package/dist/storage/implementation/MongoSyncBucketStorage.js +85 -523
  38. package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
  39. package/dist/storage/implementation/MongoSyncRulesLock.d.ts +10 -4
  40. package/dist/storage/implementation/MongoSyncRulesLock.js +19 -13
  41. package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
  42. package/dist/storage/implementation/MongoWriteCheckpointAPI.js +1 -1
  43. package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +1 -1
  44. package/dist/storage/implementation/OperationBatch.js +1 -1
  45. package/dist/storage/implementation/SyncRuleStateUpdate.d.ts +14 -0
  46. package/dist/storage/implementation/SyncRuleStateUpdate.js +36 -0
  47. package/dist/storage/implementation/SyncRuleStateUpdate.js.map +1 -0
  48. package/dist/storage/implementation/common/BucketDataDoc.d.ts +35 -0
  49. package/dist/storage/implementation/common/BucketDataDoc.js +2 -0
  50. package/dist/storage/implementation/common/BucketDataDoc.js.map +1 -0
  51. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.d.ts +13 -0
  52. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js +2 -0
  53. package/dist/storage/implementation/common/MongoSyncBucketStorageContext.js.map +1 -0
  54. package/dist/storage/implementation/common/PersistedBatch.d.ts +108 -0
  55. package/dist/storage/implementation/common/PersistedBatch.js +237 -0
  56. package/dist/storage/implementation/common/PersistedBatch.js.map +1 -0
  57. package/dist/storage/implementation/common/SingleBucketStore.d.ts +54 -0
  58. package/dist/storage/implementation/common/SingleBucketStore.js +3 -0
  59. package/dist/storage/implementation/common/SingleBucketStore.js.map +1 -0
  60. package/dist/storage/implementation/common/SourceRecordStore.d.ts +35 -0
  61. package/dist/storage/implementation/common/SourceRecordStore.js +2 -0
  62. package/dist/storage/implementation/common/SourceRecordStore.js.map +1 -0
  63. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.d.ts +27 -0
  64. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js +57 -0
  65. package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js.map +1 -0
  66. package/dist/storage/implementation/createMongoSyncBucketStorage.d.ts +7 -0
  67. package/dist/storage/implementation/createMongoSyncBucketStorage.js +9 -0
  68. package/dist/storage/implementation/createMongoSyncBucketStorage.js.map +1 -0
  69. package/dist/storage/implementation/db.d.ts +41 -36
  70. package/dist/storage/implementation/db.js +77 -99
  71. package/dist/storage/implementation/db.js.map +1 -1
  72. package/dist/storage/implementation/models.d.ts +79 -66
  73. package/dist/storage/implementation/models.js +20 -1
  74. package/dist/storage/implementation/models.js.map +1 -1
  75. package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +27 -0
  76. package/dist/storage/implementation/v1/MongoBucketBatchV1.js +407 -0
  77. package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -0
  78. package/dist/storage/implementation/v1/MongoChecksumsV1.d.ts +12 -0
  79. package/dist/storage/implementation/v1/MongoChecksumsV1.js +56 -0
  80. package/dist/storage/implementation/v1/MongoChecksumsV1.js.map +1 -0
  81. package/dist/storage/implementation/v1/MongoCompactorV1.d.ts +23 -0
  82. package/dist/storage/implementation/v1/MongoCompactorV1.js +52 -0
  83. package/dist/storage/implementation/v1/MongoCompactorV1.js.map +1 -0
  84. package/dist/storage/implementation/v1/MongoParameterCompactorV1.d.ts +9 -0
  85. package/dist/storage/implementation/v1/MongoParameterCompactorV1.js +20 -0
  86. package/dist/storage/implementation/v1/MongoParameterCompactorV1.js.map +1 -0
  87. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.d.ts +50 -0
  88. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js +354 -0
  89. package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js.map +1 -0
  90. package/dist/storage/implementation/v1/PersistedBatchV1.d.ts +25 -0
  91. package/dist/storage/implementation/v1/PersistedBatchV1.js +183 -0
  92. package/dist/storage/implementation/v1/PersistedBatchV1.js.map +1 -0
  93. package/dist/storage/implementation/v1/SingleBucketStoreV1.d.ts +18 -0
  94. package/dist/storage/implementation/v1/SingleBucketStoreV1.js +57 -0
  95. package/dist/storage/implementation/v1/SingleBucketStoreV1.js.map +1 -0
  96. package/dist/storage/implementation/v1/SourceRecordStoreV1.d.ts +19 -0
  97. package/dist/storage/implementation/v1/SourceRecordStoreV1.js +105 -0
  98. package/dist/storage/implementation/v1/SourceRecordStoreV1.js.map +1 -0
  99. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.d.ts +12 -0
  100. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.js +20 -0
  101. package/dist/storage/implementation/v1/VersionedPowerSyncMongoV1.js.map +1 -0
  102. package/dist/storage/implementation/v1/models.d.ts +45 -0
  103. package/dist/storage/implementation/v1/models.js +37 -0
  104. package/dist/storage/implementation/v1/models.js.map +1 -0
  105. package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +30 -0
  106. package/dist/storage/implementation/v3/MongoBucketBatchV3.js +463 -0
  107. package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -0
  108. package/dist/storage/implementation/v3/MongoChecksumsV3.d.ts +15 -0
  109. package/dist/storage/implementation/v3/MongoChecksumsV3.js +84 -0
  110. package/dist/storage/implementation/v3/MongoChecksumsV3.js.map +1 -0
  111. package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +23 -0
  112. package/dist/storage/implementation/v3/MongoCompactorV3.js +68 -0
  113. package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -0
  114. package/dist/storage/implementation/v3/MongoParameterCompactorV3.d.ts +9 -0
  115. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js +18 -0
  116. package/dist/storage/implementation/v3/MongoParameterCompactorV3.js.map +1 -0
  117. package/dist/storage/implementation/v3/MongoParameterLookupV3.d.ts +4 -0
  118. package/dist/storage/implementation/v3/MongoParameterLookupV3.js +9 -0
  119. package/dist/storage/implementation/v3/MongoParameterLookupV3.js.map +1 -0
  120. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.d.ts +63 -0
  121. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +508 -0
  122. package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -0
  123. package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +28 -0
  124. package/dist/storage/implementation/v3/PersistedBatchV3.js +259 -0
  125. package/dist/storage/implementation/v3/PersistedBatchV3.js.map +1 -0
  126. package/dist/storage/implementation/v3/SingleBucketStoreV3.d.ts +18 -0
  127. package/dist/storage/implementation/v3/SingleBucketStoreV3.js +48 -0
  128. package/dist/storage/implementation/v3/SingleBucketStoreV3.js.map +1 -0
  129. package/dist/storage/implementation/v3/SourceRecordStoreV3.d.ts +22 -0
  130. package/dist/storage/implementation/v3/SourceRecordStoreV3.js +164 -0
  131. package/dist/storage/implementation/v3/SourceRecordStoreV3.js.map +1 -0
  132. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.d.ts +22 -0
  133. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js +74 -0
  134. package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js.map +1 -0
  135. package/dist/storage/implementation/v3/models.d.ts +101 -0
  136. package/dist/storage/implementation/v3/models.js +34 -0
  137. package/dist/storage/implementation/v3/models.js.map +1 -0
  138. package/dist/storage/storage-index.d.ts +6 -3
  139. package/dist/storage/storage-index.js +6 -3
  140. package/dist/storage/storage-index.js.map +1 -1
  141. package/dist/utils/util.d.ts +10 -3
  142. package/dist/utils/util.js +24 -3
  143. package/dist/utils/util.js.map +1 -1
  144. package/package.json +9 -9
  145. package/src/migrations/db/migrations/1688556755264-initial-sync-rules.ts +1 -1
  146. package/src/migrations/db/migrations/1702295701188-sync-rule-state.ts +7 -7
  147. package/src/storage/MongoBucketStorage.ts +254 -99
  148. package/src/storage/implementation/BucketDefinitionMapping.ts +75 -0
  149. package/src/storage/implementation/CheckpointState.ts +59 -0
  150. package/src/storage/implementation/MongoBucketBatch.ts +182 -490
  151. package/src/storage/implementation/MongoBucketBatchShared.ts +11 -0
  152. package/src/storage/implementation/MongoChecksums.ts +53 -75
  153. package/src/storage/implementation/MongoCompactor.ts +374 -404
  154. package/src/storage/implementation/MongoParameterCompactor.ts +37 -24
  155. package/src/storage/implementation/MongoPersistedSyncRules.ts +82 -0
  156. package/src/storage/implementation/MongoPersistedSyncRulesContent.ts +78 -16
  157. package/src/storage/implementation/MongoSyncBucketStorage.ts +179 -628
  158. package/src/storage/implementation/MongoSyncRulesLock.ts +20 -16
  159. package/src/storage/implementation/MongoWriteCheckpointAPI.ts +3 -1
  160. package/src/storage/implementation/OperationBatch.ts +1 -1
  161. package/src/storage/implementation/SyncRuleStateUpdate.ts +38 -0
  162. package/src/storage/implementation/common/BucketDataDoc.ts +37 -0
  163. package/src/storage/implementation/common/MongoSyncBucketStorageContext.ts +15 -0
  164. package/src/storage/implementation/common/PersistedBatch.ts +364 -0
  165. package/src/storage/implementation/common/SingleBucketStore.ts +63 -0
  166. package/src/storage/implementation/common/SourceRecordStore.ts +48 -0
  167. package/src/storage/implementation/common/VersionedPowerSyncMongoBase.ts +80 -0
  168. package/src/storage/implementation/createMongoSyncBucketStorage.ts +25 -0
  169. package/src/storage/implementation/db.ts +110 -131
  170. package/src/storage/implementation/models.ts +102 -79
  171. package/src/storage/implementation/v1/MongoBucketBatchV1.ts +509 -0
  172. package/src/storage/implementation/v1/MongoChecksumsV1.ts +75 -0
  173. package/src/storage/implementation/v1/MongoCompactorV1.ts +93 -0
  174. package/src/storage/implementation/v1/MongoParameterCompactorV1.ts +26 -0
  175. package/src/storage/implementation/v1/MongoSyncBucketStorageV1.ts +543 -0
  176. package/src/storage/implementation/v1/PersistedBatchV1.ts +229 -0
  177. package/src/storage/implementation/v1/SingleBucketStoreV1.ts +74 -0
  178. package/src/storage/implementation/v1/SourceRecordStoreV1.ts +156 -0
  179. package/src/storage/implementation/v1/VersionedPowerSyncMongoV1.ts +28 -0
  180. package/src/storage/implementation/v1/models.ts +99 -0
  181. package/src/storage/implementation/v3/MongoBucketBatchV3.ts +607 -0
  182. package/src/storage/implementation/v3/MongoChecksumsV3.ts +120 -0
  183. package/src/storage/implementation/v3/MongoCompactorV3.ts +107 -0
  184. package/src/storage/implementation/v3/MongoParameterCompactorV3.ts +24 -0
  185. package/src/storage/implementation/v3/MongoParameterLookupV3.ts +11 -0
  186. package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +678 -0
  187. package/src/storage/implementation/v3/PersistedBatchV3.ts +317 -0
  188. package/src/storage/implementation/v3/SingleBucketStoreV3.ts +68 -0
  189. package/src/storage/implementation/v3/SourceRecordStoreV3.ts +226 -0
  190. package/src/storage/implementation/v3/VersionedPowerSyncMongoV3.ts +117 -0
  191. package/src/storage/implementation/v3/models.ts +164 -0
  192. package/src/storage/storage-index.ts +6 -3
  193. package/src/utils/util.ts +34 -5
  194. package/test/src/storage_compacting.test.ts +57 -29
  195. package/test/src/storage_sync.test.ts +767 -5
  196. package/test/src/storeCurrentData.test.ts +211 -0
  197. package/test/tsconfig.json +0 -1
  198. package/tsconfig.tsbuildinfo +1 -1
  199. package/dist/storage/implementation/PersistedBatch.d.ts +0 -71
  200. package/dist/storage/implementation/PersistedBatch.js +0 -354
  201. package/dist/storage/implementation/PersistedBatch.js.map +0 -1
  202. package/src/storage/implementation/PersistedBatch.ts +0 -432
@@ -1 +1 @@
1
- {"version":3,"file":"MongoBucketBatch.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoBucketBatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoBucketBatch.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoBucketBatch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import * as bson from 'bson';
2
+ import { SourceRecordBucketState } from './common/SourceRecordStore.js';
3
+ export declare const MAX_ROW_SIZE: number;
4
+ export declare const EMPTY_DATA: bson.Binary;
5
+ export declare function currentBucketKey(bucket: SourceRecordBucketState): string;
@@ -0,0 +1,8 @@
1
+ import * as bson from 'bson';
2
+ export const MAX_ROW_SIZE = 15 * 1024 * 1024;
3
+ export const EMPTY_DATA = new bson.Binary(bson.serialize({}));
4
+ export function currentBucketKey(bucket) {
5
+ const prefix = bucket.definitionId == null ? '' : `${bucket.definitionId}:`;
6
+ return `${prefix}${bucket.bucket}/${bucket.table}/${bucket.id}`;
7
+ }
8
+ //# sourceMappingURL=MongoBucketBatchShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MongoBucketBatchShared.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoBucketBatchShared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAG7B,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE7C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAE9D,MAAM,UAAU,gBAAgB,CAAC,MAA+B;IAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,YAAY,GAAG,CAAC;IAC5E,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;AAClE,CAAC"}
@@ -1,6 +1,20 @@
1
- import { BucketChecksumRequest, ChecksumMap, FetchPartialBucketChecksum, InternalOpId, PartialChecksumMap } from '@powersync/service-core';
2
- import { VersionedPowerSyncMongo } from './db.js';
3
- import { StorageConfig } from './models.js';
1
+ import { BucketChecksum, BucketChecksumRequest, ChecksumMap, FetchPartialBucketChecksum, InternalOpId, PartialChecksumMap, PartialOrFullChecksum } from '@powersync/service-core';
2
+ import type { VersionedPowerSyncMongo } from './db.js';
3
+ import * as lib_mongo from '@powersync/lib-service-mongodb';
4
+ import { BucketDefinitionId } from '@powersync/service-sync-rules';
5
+ import { BucketDefinitionMapping } from './BucketDefinitionMapping.js';
6
+ import { BucketDataDocumentBase, StorageConfig } from './models.js';
7
+ export interface FetchPartialBucketChecksumV3 {
8
+ bucket: string;
9
+ definitionId: BucketDefinitionId;
10
+ start?: InternalOpId;
11
+ end: InternalOpId;
12
+ }
13
+ export interface FetchPartialBucketChecksumByBucket {
14
+ bucket: string;
15
+ start?: InternalOpId;
16
+ end: InternalOpId;
17
+ }
4
18
  /**
5
19
  * Checksum calculation options, primarily for tests.
6
20
  */
@@ -14,20 +28,12 @@ export interface MongoChecksumOptions {
14
28
  */
15
29
  operationBatchLimit?: number;
16
30
  storageConfig: StorageConfig;
31
+ mapping?: BucketDefinitionMapping;
17
32
  }
18
- /**
19
- * Checksum query implementation.
20
- *
21
- * General implementation flow is:
22
- * 1. getChecksums() -> check cache for (partial) matches. If not found or partial match, query the remainder using computePartialChecksums().
23
- * 2. computePartialChecksums() -> query bucket_state for partial matches. Query the remainder using computePartialChecksumsDirect().
24
- * 3. computePartialChecksumsDirect() -> split into batches of 200 buckets at a time -> computePartialChecksumsInternal()
25
- * 4. computePartialChecksumsInternal() -> aggregate over 50_000 operations in bucket_data at a time
26
- */
27
- export declare class MongoChecksums {
28
- private db;
29
- private group_id;
30
- private options;
33
+ export declare abstract class MongoChecksums {
34
+ protected readonly db: VersionedPowerSyncMongo;
35
+ protected readonly group_id: number;
36
+ protected readonly options: MongoChecksumOptions;
31
37
  private _cache;
32
38
  private readonly storageConfig;
33
39
  constructor(db: VersionedPowerSyncMongo, group_id: number, options: MongoChecksumOptions);
@@ -71,5 +77,11 @@ export declare class MongoChecksums {
71
77
  *
72
78
  * `batch` must be limited to DEFAULT_BUCKET_BATCH_LIMIT buckets before calling this.
73
79
  */
74
- private computePartialChecksumsInternal;
80
+ protected abstract computePartialChecksumsInternal(batch: FetchPartialBucketChecksum[]): Promise<PartialChecksumMap>;
81
+ protected abstract fetchPreStates(batch: FetchPartialBucketChecksum[]): Promise<Map<string, {
82
+ opId: InternalOpId;
83
+ checksum: BucketChecksum;
84
+ }>>;
85
+ protected computePartialChecksumsForCollection<TRequest extends FetchPartialBucketChecksumByBucket, TBucketDataDocument extends BucketDataDocumentBase>(batch: TRequest[], collection: lib_mongo.mongo.Collection<TBucketDataDocument>, createFilter: (request: TRequest) => any): Promise<PartialChecksumMap>;
75
86
  }
87
+ export declare function emptyChecksumForRequest(request: Pick<FetchPartialBucketChecksum | FetchPartialBucketChecksumV3, 'bucket' | 'start'>): PartialOrFullChecksum;
@@ -1,16 +1,7 @@
1
+ import { addPartialChecksums, ChecksumCache, isPartialChecksum } from '@powersync/service-core';
1
2
  import * as lib_mongo from '@powersync/lib-service-mongodb';
2
- import { addPartialChecksums, bson, ChecksumCache, isPartialChecksum } from '@powersync/service-core';
3
3
  const DEFAULT_BUCKET_BATCH_LIMIT = 200;
4
4
  const DEFAULT_OPERATION_BATCH_LIMIT = 50_000;
5
- /**
6
- * Checksum query implementation.
7
- *
8
- * General implementation flow is:
9
- * 1. getChecksums() -> check cache for (partial) matches. If not found or partial match, query the remainder using computePartialChecksums().
10
- * 2. computePartialChecksums() -> query bucket_state for partial matches. Query the remainder using computePartialChecksumsDirect().
11
- * 3. computePartialChecksumsDirect() -> split into batches of 200 buckets at a time -> computePartialChecksumsInternal()
12
- * 4. computePartialChecksumsInternal() -> aggregate over 50_000 operations in bucket_data at a time
13
- */
14
5
  export class MongoChecksums {
15
6
  db;
16
7
  group_id;
@@ -59,38 +50,7 @@ export class MongoChecksums {
59
50
  if (batch.length == 0) {
60
51
  return new Map();
61
52
  }
62
- const preFilters = [];
63
- for (let request of batch) {
64
- if (request.start == null) {
65
- preFilters.push({
66
- _id: {
67
- g: this.group_id,
68
- b: request.bucket
69
- },
70
- 'compacted_state.op_id': { $exists: true, $lte: request.end }
71
- });
72
- }
73
- }
74
- const preStates = new Map();
75
- if (preFilters.length > 0) {
76
- // For un-cached bucket checksums, attempt to use the compacted state first.
77
- const states = await this.db.bucket_state
78
- .find({
79
- $or: preFilters
80
- })
81
- .toArray();
82
- for (let state of states) {
83
- const compactedState = state.compacted_state;
84
- preStates.set(state._id.b, {
85
- opId: compactedState.op_id,
86
- checksum: {
87
- bucket: state._id.b,
88
- checksum: Number(compactedState.checksum),
89
- count: compactedState.count
90
- }
91
- });
92
- }
93
- }
53
+ const preStates = await this.fetchPreStates(batch);
94
54
  const mappedRequests = batch.map((request) => {
95
55
  let start = request.start;
96
56
  if (start == null) {
@@ -143,14 +103,7 @@ export class MongoChecksums {
143
103
  }
144
104
  return results;
145
105
  }
146
- /**
147
- * Query a batch of checksums.
148
- *
149
- * We limit the number of operations that the query aggregates in each sub-batch, to avoid potential query timeouts.
150
- *
151
- * `batch` must be limited to DEFAULT_BUCKET_BATCH_LIMIT buckets before calling this.
152
- */
153
- async computePartialChecksumsInternal(batch) {
106
+ async computePartialChecksumsForCollection(batch, collection, createFilter) {
154
107
  const batchLimit = this.options?.operationBatchLimit ?? DEFAULT_OPERATION_BATCH_LIMIT;
155
108
  // Map requests by bucket. We adjust this as we get partial results.
156
109
  let requests = new Map();
@@ -159,23 +112,7 @@ export class MongoChecksums {
159
112
  }
160
113
  const partialChecksums = new Map();
161
114
  while (requests.size > 0) {
162
- const filters = [];
163
- for (let request of requests.values()) {
164
- filters.push({
165
- _id: {
166
- $gt: {
167
- g: this.group_id,
168
- b: request.bucket,
169
- o: request.start ?? new bson.MinKey()
170
- },
171
- $lte: {
172
- g: this.group_id,
173
- b: request.bucket,
174
- o: request.end
175
- }
176
- }
177
- });
178
- }
115
+ const filters = Array.from(requests.values(), createFilter);
179
116
  // Historically, checksum may be stored as 'int' or 'double'.
180
117
  // More recently, this should be a 'long'.
181
118
  // $toLong ensures that we always sum it as a long, avoiding inaccuracies in the calculations.
@@ -189,7 +126,7 @@ export class MongoChecksums {
189
126
  // Returns: B[3-10], C[1-4]
190
127
  // 3. Query: C[5-end]
191
128
  // Returns: C[5-10]
192
- const aggregate = await this.db.bucket_data
129
+ const aggregate = await collection
193
130
  .aggregate([
194
131
  {
195
132
  $match: {
@@ -239,10 +176,8 @@ export class MongoChecksums {
239
176
  limitReached = true;
240
177
  const req = requests.get(bucket);
241
178
  requests.set(bucket, {
242
- bucket,
243
- source: req.source,
244
- start: doc.last_op,
245
- end: req.end
179
+ ...req,
180
+ start: doc.last_op
246
181
  });
247
182
  }
248
183
  else {
@@ -276,6 +211,12 @@ export class MongoChecksums {
276
211
  }));
277
212
  }
278
213
  }
214
+ export function emptyChecksumForRequest(request) {
215
+ if (request.start == null) {
216
+ return { bucket: request.bucket, count: 0, checksum: 0 };
217
+ }
218
+ return { bucket: request.bucket, partialCount: 0, partialChecksum: 0 };
219
+ }
279
220
  /**
280
221
  * Convert output of the $group stage into a checksum.
281
222
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MongoChecksums.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoChecksums.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MongoChecksums.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoChecksums.ts"],"names":[],"mappings":"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"}
@@ -1,80 +1,120 @@
1
- import { PopulateChecksumCacheResults, storage } from '@powersync/service-core';
2
- import { VersionedPowerSyncMongo } from './db.js';
3
- import { MongoSyncBucketStorage } from './MongoSyncBucketStorage.js';
4
- /**
5
- * Additional options, primarily for testing.
6
- */
7
- export interface MongoCompactOptions extends storage.CompactOptions {
8
- }
9
- export declare class MongoCompactor {
10
- private storage;
11
- private db;
12
- private updates;
13
- private bucketStateUpdates;
14
- private idLimitBytes;
15
- private moveBatchLimit;
16
- private moveBatchQueryLimit;
17
- private clearBatchLimit;
18
- private minBucketChanges;
19
- private minChangeRatio;
20
- private maxOpId;
21
- private buckets;
22
- private signal?;
23
- private group_id;
24
- constructor(storage: MongoSyncBucketStorage, db: VersionedPowerSyncMongo, options: MongoCompactOptions);
1
+ import { mongo } from '@powersync/lib-service-mongodb';
2
+ import { Logger } from '@powersync/lib-services-framework';
3
+ import { InternalOpId, PopulateChecksumCacheResults, storage } from '@powersync/service-core';
4
+ import { BucketDefinitionId } from '@powersync/service-sync-rules';
5
+ import { BucketDataDoc, BucketKey } from './common/BucketDataDoc.js';
6
+ import { BucketDataDocumentGeneric, SingleBucketStore } from './common/SingleBucketStore.js';
7
+ import type { VersionedPowerSyncMongo } from './db.js';
8
+ import { BucketStateDocumentBase } from './models.js';
9
+ import type { MongoSyncBucketStorage } from './MongoSyncBucketStorage.js';
10
+ interface CurrentBucketState {
11
+ /** Bucket name */
12
+ bucket: string;
13
+ definitionId: BucketDefinitionId;
25
14
  /**
26
- * Compact buckets by converting operations into MOVE and/or CLEAR operations.
27
- *
28
- * See /docs/compacting-operations.md for details.
15
+ * Rows seen in the bucket, with the last op_id of each.
29
16
  */
30
- compact(): Promise<void>;
31
- private compactDirtyBuckets;
17
+ seen: Map<string, InternalOpId>;
32
18
  /**
33
- * Compaction for a single bucket, with retries on failure.
34
- *
35
- * This covers against occasional network or other database errors during a long compact job.
19
+ * Estimated memory usage of the seen Map.
36
20
  */
37
- private compactSingleBucketRetried;
38
- private compactSingleBucket;
21
+ trackingSize: number;
39
22
  /**
40
- * Call when done with a bucket.
23
+ * Last (lowest) seen op_id that is not a PUT.
41
24
  */
42
- private updateBucketChecksums;
43
- private flush;
25
+ lastNotPut: InternalOpId | null;
44
26
  /**
45
- * Perform a CLEAR compact for a bucket.
46
- *
27
+ * Number of REMOVE/MOVE operations seen since lastNotPut.
28
+ */
29
+ opsSincePut: number;
30
+ /**
31
+ * Incrementally-updated checksum, up to maxOpId.
32
+ */
33
+ checksum: number;
34
+ /**
35
+ * Op count for the checksum.
36
+ */
37
+ opCount: number;
38
+ /**
39
+ * Byte size of ops covered by the checksum.
40
+ */
41
+ opBytes: number;
42
+ }
43
+ export interface MongoCompactOptions extends storage.CompactOptions {
44
+ }
45
+ export interface DirtyBucket {
46
+ bucket: string;
47
+ definitionId: BucketDefinitionId | null;
48
+ estimatedCount: number;
49
+ dirtyRatio?: number;
50
+ }
51
+ export declare abstract class MongoCompactor {
52
+ protected readonly storage: MongoSyncBucketStorage;
53
+ protected readonly db: VersionedPowerSyncMongo;
54
+ protected updates: mongo.AnyBulkWriteOperation<BucketDataDocumentGeneric>[];
55
+ protected bucketStateUpdates: mongo.AnyBulkWriteOperation<BucketStateDocumentBase>[];
56
+ protected readonly idLimitBytes: number;
57
+ protected readonly moveBatchLimit: number;
58
+ protected readonly moveBatchQueryLimit: number;
59
+ protected readonly clearBatchLimit: number;
60
+ protected readonly minBucketChanges: number;
61
+ protected readonly minChangeRatio: number;
62
+ protected readonly maxOpId: bigint;
63
+ protected readonly buckets: string[] | undefined;
64
+ protected readonly signal?: AbortSignal;
65
+ protected readonly group_id: number;
66
+ protected readonly logger: Logger;
67
+ constructor(storage: MongoSyncBucketStorage, db: VersionedPowerSyncMongo, options: MongoCompactOptions);
68
+ /**
69
+ * Compact buckets by converting operations into MOVE and/or CLEAR operations.
47
70
  *
48
- * @param bucket bucket name
49
- * @param op op_id of the last non-PUT operation, which will be converted to CLEAR.
71
+ * See /docs/compacting-operations.md for details.
50
72
  */
51
- private clearBucket;
73
+ compact(): Promise<void>;
52
74
  /**
53
75
  * Subset of compact, only populating checksums where relevant.
54
76
  */
55
77
  populateChecksums(options: {
56
78
  minBucketChanges: number;
57
79
  }): Promise<PopulateChecksumCacheResults>;
80
+ protected dirtyBucketBatchesForCollection<TCollectionBucketState extends BucketStateDocumentBase>(collection: mongo.Collection<TCollectionBucketState>, lastId: TCollectionBucketState['_id'], maxId: TCollectionBucketState['_id'], options: {
81
+ minBucketChanges: number;
82
+ minChangeRatio: number;
83
+ }, getDefinitionId: (state: TCollectionBucketState) => BucketDefinitionId | null): AsyncGenerator<DirtyBucket[]>;
84
+ protected dirtyBucketBatchForChecksumsForCollection<TBucketState extends BucketStateDocumentBase>(collection: mongo.Collection<TBucketState>, filter: mongo.Filter<TBucketState>, getDefinitionId: (state: mongo.WithId<TBucketState>) => BucketDefinitionId | null): Promise<DirtyBucket[]>;
85
+ abstract dirtyBucketBatches(options: {
86
+ minBucketChanges: number;
87
+ minChangeRatio: number;
88
+ }): AsyncGenerator<DirtyBucket[]>;
89
+ abstract dirtyBucketBatchForChecksums(options: {
90
+ minBucketChanges: number;
91
+ }): Promise<DirtyBucket[]>;
92
+ protected compactDirtyBuckets(): Promise<void>;
58
93
  /**
59
- * Return batches of dirty buckets.
60
- *
61
- * Can be used to iterate through all buckets.
94
+ * Compaction for a single bucket, with retries on failure.
62
95
  *
63
- * minBucketChanges: minimum number of changes for a bucket to be included in the results.
64
- * minChangeRatio: minimum ratio of changes to total ops for a bucket to be included in the results, number between 0 and 1.
96
+ * This covers against occasional network or other database errors during a long compact job.
65
97
  */
66
- private dirtyBucketBatches;
98
+ protected compactSingleBucketRetried(bucket: string, definitionId?: BucketDefinitionId | null): Promise<void>;
99
+ protected compactSingleBucket(bucket: string, definitionId?: BucketDefinitionId | null): Promise<void>;
100
+ protected updateBucketChecksums(state: CurrentBucketState): void;
101
+ protected flush(col: SingleBucketStore): Promise<void>;
102
+ private flushBucketStateUpdates;
67
103
  /**
68
- * Returns a batch of dirty buckets - buckets with most changes first.
69
- *
70
- * This cannot be used to iterate on its own - the client is expected to process these buckets and
71
- * set estimate_since_compact.count: 0 when done, before fetching the next batch.
72
- *
73
- * Unlike dirtyBucketBatches, used for compacting, this is specifically designed to be resuamble after a restart,
74
- * since it is used as the last step for initial replication.
104
+ * Perform a CLEAR compact for a bucket.
75
105
  *
76
- * We currently don't get new data while doing populateChecksums, so we don't need to worry about buckets changing while processing.
106
+ * @param currentState tracks the last non-PUT op, which will be converted to CLEAR.
77
107
  */
78
- private dirtyBucketBatchForChecksums;
79
- private updateChecksumsBatch;
108
+ protected clearBucket(currentState: CurrentBucketState, col: SingleBucketStore): Promise<void>;
109
+ protected updateChecksumsBatch(buckets: Pick<DirtyBucket, 'bucket' | 'definitionId'>[]): Promise<void>;
110
+ protected formatBucketDataKey(doc: Pick<BucketDataDoc, 'bucketKey' | 'o'>): string;
111
+ protected abstract writeBucketStateUpdates(): Promise<void>;
112
+ protected abstract computeChecksumsForBuckets(buckets: Pick<DirtyBucket, 'bucket' | 'definitionId'>[]): Promise<storage.PartialChecksumMap>;
113
+ protected abstract bucketStateFilter(bucket: string, definitionId: BucketDefinitionId | null): mongo.Document;
114
+ protected abstract getBucketDataContext(bucket: string, definitionId: BucketDefinitionId | null): Promise<SingleBucketStore | null>;
115
+ }
116
+ export interface BucketDataCollectionContext<TBucketData extends mongo.Document> {
117
+ bucketKey: BucketKey;
118
+ collection: mongo.Collection<TBucketData>;
80
119
  }
120
+ export {};