@powersync/service-module-mongodb-storage 0.0.0-dev-20260803144812 → 0.0.0-dev-20260929095716
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.
- package/CHANGELOG.md +129 -7
- package/dist/storage/MongoBucketStorage.d.ts +42 -5
- package/dist/storage/MongoBucketStorage.js +404 -215
- package/dist/storage/MongoBucketStorage.js.map +1 -1
- package/dist/storage/implementation/MongoBucketBatch.d.ts +39 -14
- package/dist/storage/implementation/MongoBucketBatch.js +169 -98
- package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
- package/dist/storage/implementation/MongoCompactor.d.ts +21 -79
- package/dist/storage/implementation/MongoCompactor.js +27 -238
- package/dist/storage/implementation/MongoCompactor.js.map +1 -1
- package/dist/storage/implementation/MongoIdSequence.d.ts +10 -1
- package/dist/storage/implementation/MongoIdSequence.js +14 -1
- package/dist/storage/implementation/MongoIdSequence.js.map +1 -1
- package/dist/storage/implementation/MongoOpIdAllocator.d.ts +27 -0
- package/dist/storage/implementation/MongoOpIdAllocator.js +97 -0
- package/dist/storage/implementation/MongoOpIdAllocator.js.map +1 -0
- package/dist/storage/implementation/MongoParameterCompactor.d.ts +83 -10
- package/dist/storage/implementation/MongoParameterCompactor.js +309 -96
- package/dist/storage/implementation/MongoParameterCompactor.js.map +1 -1
- package/dist/storage/implementation/MongoParsedSyncConfigSet.d.ts +9 -1
- package/dist/storage/implementation/MongoParsedSyncConfigSet.js +35 -2
- package/dist/storage/implementation/MongoParsedSyncConfigSet.js.map +1 -1
- package/dist/storage/implementation/MongoPersistedReplicationStream.d.ts +2 -1
- package/dist/storage/implementation/MongoPersistedReplicationStream.js +7 -4
- package/dist/storage/implementation/MongoPersistedReplicationStream.js.map +1 -1
- package/dist/storage/implementation/MongoPersistedSyncConfigContent.d.ts +3 -3
- package/dist/storage/implementation/MongoPersistedSyncConfigContent.js +10 -8
- package/dist/storage/implementation/MongoPersistedSyncConfigContent.js.map +1 -1
- package/dist/storage/implementation/MongoStorageProvider.js +8 -4
- package/dist/storage/implementation/MongoStorageProvider.js.map +1 -1
- package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +32 -11
- package/dist/storage/implementation/MongoSyncBucketStorage.js +95 -31
- package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
- package/dist/storage/implementation/MongoSyncRulesLock.d.ts +26 -2
- package/dist/storage/implementation/MongoSyncRulesLock.js +59 -10
- package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
- package/dist/storage/implementation/MongoWriteBatch.d.ts +49 -0
- package/dist/storage/implementation/MongoWriteBatch.js +149 -0
- package/dist/storage/implementation/MongoWriteBatch.js.map +1 -0
- package/dist/storage/implementation/MongoWriteCheckpointAPI.d.ts +9 -7
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js +9 -30
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +1 -1
- package/dist/storage/implementation/SyncRuleStateUpdate.d.ts +11 -5
- package/dist/storage/implementation/SyncRuleStateUpdate.js +14 -6
- package/dist/storage/implementation/SyncRuleStateUpdate.js.map +1 -1
- package/dist/storage/implementation/common/MongoSyncBucketStorageCheckpoint.d.ts +22 -2
- package/dist/storage/implementation/common/PersistedBatch.d.ts +32 -4
- package/dist/storage/implementation/common/PersistedBatch.js +57 -14
- package/dist/storage/implementation/common/PersistedBatch.js.map +1 -1
- package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.d.ts +3 -0
- package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js +3 -0
- package/dist/storage/implementation/common/VersionedPowerSyncMongoBase.js.map +1 -1
- package/dist/storage/implementation/db.d.ts +9 -1
- package/dist/storage/implementation/db.js +28 -1
- package/dist/storage/implementation/db.js.map +1 -1
- package/dist/storage/implementation/models.d.ts +35 -0
- package/dist/storage/implementation/models.js.map +1 -1
- package/dist/storage/implementation/v1/MongoBucketBatchV1.d.ts +11 -0
- package/dist/storage/implementation/v1/MongoBucketBatchV1.js +227 -221
- package/dist/storage/implementation/v1/MongoBucketBatchV1.js.map +1 -1
- package/dist/storage/implementation/v1/MongoCompactorV1.d.ts +38 -6
- package/dist/storage/implementation/v1/MongoCompactorV1.js +247 -20
- package/dist/storage/implementation/v1/MongoCompactorV1.js.map +1 -1
- package/dist/storage/implementation/v1/MongoParameterCompactorV1.d.ts +16 -2
- package/dist/storage/implementation/v1/MongoParameterCompactorV1.js +20 -9
- package/dist/storage/implementation/v1/MongoParameterCompactorV1.js.map +1 -1
- package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.d.ts +18 -11
- package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js +66 -17
- package/dist/storage/implementation/v1/MongoSyncBucketStorageV1.js.map +1 -1
- package/dist/storage/implementation/v1/PersistedBatchV1.d.ts +7 -5
- package/dist/storage/implementation/v1/PersistedBatchV1.js +22 -28
- package/dist/storage/implementation/v1/PersistedBatchV1.js.map +1 -1
- package/dist/storage/implementation/v1/models.js +1 -0
- package/dist/storage/implementation/v1/models.js.map +1 -1
- package/dist/storage/implementation/v3/CompactionLease.d.ts +50 -0
- package/dist/storage/implementation/v3/CompactionLease.js +131 -0
- package/dist/storage/implementation/v3/CompactionLease.js.map +1 -0
- package/dist/storage/implementation/v3/MongoBucketBatchV3.d.ts +14 -2
- package/dist/storage/implementation/v3/MongoBucketBatchV3.js +261 -194
- package/dist/storage/implementation/v3/MongoBucketBatchV3.js.map +1 -1
- package/dist/storage/implementation/v3/MongoCompactorV3.d.ts +83 -25
- package/dist/storage/implementation/v3/MongoCompactorV3.js +702 -159
- package/dist/storage/implementation/v3/MongoCompactorV3.js.map +1 -1
- package/dist/storage/implementation/v3/MongoParameterCompactorV3.d.ts +18 -0
- package/dist/storage/implementation/v3/MongoParameterCompactorV3.js +23 -0
- package/dist/storage/implementation/v3/MongoParameterCompactorV3.js.map +1 -0
- package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.d.ts +2 -15
- package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js +60 -92
- package/dist/storage/implementation/v3/MongoStoppedSyncConfigCleanup.js.map +1 -1
- package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.d.ts +19 -9
- package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js +92 -32
- package/dist/storage/implementation/v3/MongoSyncBucketStorageV3.js.map +1 -1
- package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.d.ts +26 -0
- package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.js +82 -0
- package/dist/storage/implementation/v3/MongoWriteCheckpointAPIV3.js.map +1 -0
- package/dist/storage/implementation/v3/PersistedBatchV3.d.ts +14 -8
- package/dist/storage/implementation/v3/PersistedBatchV3.js +77 -45
- package/dist/storage/implementation/v3/PersistedBatchV3.js.map +1 -1
- package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.d.ts +12 -2
- package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js +42 -3
- package/dist/storage/implementation/v3/VersionedPowerSyncMongoV3.js.map +1 -1
- package/dist/storage/implementation/v3/bucket-format.js +2 -0
- package/dist/storage/implementation/v3/bucket-format.js.map +1 -1
- package/dist/storage/implementation/v3/compact-utils.d.ts +108 -0
- package/dist/storage/implementation/v3/compact-utils.js +223 -0
- package/dist/storage/implementation/v3/compact-utils.js.map +1 -0
- package/dist/storage/implementation/v3/compaction-constants.d.ts +5 -0
- package/dist/storage/implementation/v3/compaction-constants.js +6 -0
- package/dist/storage/implementation/v3/compaction-constants.js.map +1 -0
- package/dist/storage/implementation/v3/models.d.ts +90 -6
- package/dist/storage/implementation/v3/models.js.map +1 -1
- package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.d.ts +7 -8
- package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js +16 -5
- package/dist/storage/implementation/v3/object-storage/BucketDataObjectStorage.js.map +1 -1
- package/dist/storage/implementation/v3/object-storage/ObjectStorage.d.ts +14 -11
- package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.d.ts +6 -8
- package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js +17 -11
- package/dist/storage/implementation/v3/object-storage/ObjectStorageLifecycle.js.map +1 -1
- package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.d.ts +38 -0
- package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.js +164 -0
- package/dist/storage/implementation/v3/object-storage/ObjectStorageUsage.js.map +1 -0
- package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.d.ts +37 -12
- package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js +197 -25
- package/dist/storage/implementation/v3/object-storage/S3ObjectStorage.js.map +1 -1
- package/dist/storage/implementation/v3/source-table-utils.d.ts +15 -7
- package/dist/storage/implementation/v3/source-table-utils.js +49 -57
- package/dist/storage/implementation/v3/source-table-utils.js.map +1 -1
- package/dist/storage/storage-index.d.ts +2 -1
- package/dist/storage/storage-index.js +1 -0
- package/dist/storage/storage-index.js.map +1 -1
- package/dist/types/types.d.ts +28 -1
- package/dist/types/types.js +28 -7
- package/dist/types/types.js.map +1 -1
- package/dist/utils/test-utils.d.ts +4 -2
- package/dist/utils/test-utils.js +7 -4
- package/dist/utils/test-utils.js.map +1 -1
- package/dist/utils/util.js +3 -1
- package/dist/utils/util.js.map +1 -1
- package/package.json +10 -9
- package/src/storage/MongoBucketStorage.ts +545 -277
- package/src/storage/implementation/MongoBucketBatch.ts +258 -124
- package/src/storage/implementation/MongoCompactor.ts +37 -346
- package/src/storage/implementation/MongoIdSequence.ts +21 -1
- package/src/storage/implementation/MongoOpIdAllocator.ts +105 -0
- package/src/storage/implementation/MongoParameterCompactor.ts +388 -102
- package/src/storage/implementation/MongoParsedSyncConfigSet.ts +46 -1
- package/src/storage/implementation/MongoPersistedReplicationStream.ts +12 -4
- package/src/storage/implementation/MongoPersistedSyncConfigContent.ts +48 -29
- package/src/storage/implementation/MongoStorageProvider.ts +16 -4
- package/src/storage/implementation/MongoSyncBucketStorage.ts +133 -40
- package/src/storage/implementation/MongoSyncRulesLock.ts +78 -12
- package/src/storage/implementation/MongoWriteBatch.ts +172 -0
- package/src/storage/implementation/MongoWriteCheckpointAPI.ts +16 -46
- package/src/storage/implementation/SyncRuleStateUpdate.ts +13 -6
- package/src/storage/implementation/common/MongoSyncBucketStorageCheckpoint.ts +24 -2
- package/src/storage/implementation/common/PersistedBatch.ts +76 -20
- package/src/storage/implementation/common/VersionedPowerSyncMongoBase.ts +4 -0
- package/src/storage/implementation/db.ts +36 -2
- package/src/storage/implementation/models.ts +39 -0
- package/src/storage/implementation/v1/MongoBucketBatchV1.ts +272 -254
- package/src/storage/implementation/v1/MongoCompactorV1.ts +327 -40
- package/src/storage/implementation/v1/MongoParameterCompactorV1.ts +25 -9
- package/src/storage/implementation/v1/MongoSyncBucketStorageV1.ts +88 -28
- package/src/storage/implementation/v1/PersistedBatchV1.ts +25 -30
- package/src/storage/implementation/v1/models.ts +1 -0
- package/src/storage/implementation/v3/CompactionLease.ts +152 -0
- package/src/storage/implementation/v3/MongoBucketBatchV3.ts +339 -247
- package/src/storage/implementation/v3/MongoCompactorV3.ts +955 -225
- package/src/storage/implementation/v3/MongoParameterCompactorV3.ts +34 -0
- package/src/storage/implementation/v3/MongoStoppedSyncConfigCleanup.ts +100 -109
- package/src/storage/implementation/v3/MongoSyncBucketStorageV3.ts +112 -42
- package/src/storage/implementation/v3/MongoWriteCheckpointAPIV3.ts +111 -0
- package/src/storage/implementation/v3/PersistedBatchV3.ts +94 -51
- package/src/storage/implementation/v3/VersionedPowerSyncMongoV3.ts +55 -4
- package/src/storage/implementation/v3/bucket-format.ts +2 -0
- package/src/storage/implementation/v3/compact-utils.ts +329 -0
- package/src/storage/implementation/v3/compaction-constants.ts +5 -0
- package/src/storage/implementation/v3/models.ts +97 -4
- package/src/storage/implementation/v3/object-storage/BucketDataObjectStorage.ts +24 -9
- package/src/storage/implementation/v3/object-storage/ObjectStorage.ts +20 -5
- package/src/storage/implementation/v3/object-storage/ObjectStorageLifecycle.ts +26 -14
- package/src/storage/implementation/v3/object-storage/ObjectStorageUsage.ts +229 -0
- package/src/storage/implementation/v3/object-storage/S3ObjectStorage.ts +279 -29
- package/src/storage/implementation/v3/source-table-utils.ts +82 -76
- package/src/storage/storage-index.ts +2 -0
- package/src/types/types.ts +42 -7
- package/src/utils/test-utils.ts +9 -5
- package/src/utils/util.ts +3 -1
- package/test/src/__snapshots__/storage.test.ts.snap +25 -0
- package/test/src/__snapshots__/storage_sync.test.ts.snap +794 -205
- package/test/src/chunk_compaction_config.test.ts +38 -0
- package/test/src/cleanup-stopped-sync-configs.test.ts +59 -26
- package/test/src/compact-utils.test.ts +251 -0
- package/test/src/concurrent_writers.test.ts +599 -0
- package/test/src/connection_config.test.ts +159 -0
- package/test/src/helpers/MemoryObjectStorage.ts +14 -6
- package/test/src/helpers/concurrentWriter.mjs +29 -0
- package/test/src/helpers/s3TestFactory.ts +12 -12
- package/test/src/object_storage_usage.test.ts +268 -0
- package/test/src/parameter_compacting_v1.test.ts +120 -0
- package/test/src/parameter_compacting_v3.test.ts +192 -0
- package/test/src/parameter_compaction_fence.test.ts +276 -0
- package/test/src/storage.test.ts +280 -24
- package/test/src/storage_compacting.test.ts +1097 -253
- package/test/src/storage_object_storage_inline_threshold.test.ts +3 -3
- package/test/src/storage_s3_checksums.test.ts +6 -7
- package/test/src/storage_s3_compaction_lifecycle.test.ts +143 -17
- package/test/src/storage_s3_reading.test.ts +294 -6
- package/test/src/storage_s3_writing.test.ts +4 -3
- package/test/src/storage_sync.test.ts +412 -80
- package/test/src/storeCurrentData.test.ts +5 -5
- package/test/src/util.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -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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"}
|
|
@@ -1,99 +1,49 @@
|
|
|
1
1
|
import { mongo } from '@powersync/lib-service-mongodb';
|
|
2
2
|
import { Logger } from '@powersync/lib-services-framework';
|
|
3
|
-
import {
|
|
4
|
-
import { BucketDefinitionId } from '@powersync/service-sync-rules';
|
|
3
|
+
import { storage } from '@powersync/service-core';
|
|
5
4
|
import { BucketKey } from './common/BucketDataDoc.js';
|
|
6
5
|
import type { VersionedPowerSyncMongo } from './db.js';
|
|
7
|
-
import { BucketStateDocumentBase } from './models.js';
|
|
8
6
|
import type { MongoSyncBucketStorage } from './MongoSyncBucketStorage.js';
|
|
9
|
-
export interface
|
|
10
|
-
/** Bucket name */
|
|
11
|
-
bucket: string;
|
|
12
|
-
definitionId: BucketDefinitionId;
|
|
13
|
-
/**
|
|
14
|
-
* Rows seen in the bucket, with the last op_id of each.
|
|
15
|
-
*/
|
|
16
|
-
seen: Map<string, InternalOpId>;
|
|
17
|
-
/**
|
|
18
|
-
* Estimated memory usage of the seen Map.
|
|
19
|
-
*/
|
|
20
|
-
trackingSize: number;
|
|
21
|
-
/**
|
|
22
|
-
* Last (lowest) seen op_id that is not a PUT.
|
|
23
|
-
*/
|
|
24
|
-
lastNotPut: InternalOpId | null;
|
|
25
|
-
/**
|
|
26
|
-
* Number of REMOVE/MOVE operations seen since lastNotPut.
|
|
27
|
-
*/
|
|
28
|
-
opsSincePut: number;
|
|
29
|
-
/**
|
|
30
|
-
* Incrementally-updated checksum, up to maxOpId.
|
|
31
|
-
*/
|
|
32
|
-
checksum: number;
|
|
33
|
-
/**
|
|
34
|
-
* Op count for the checksum.
|
|
35
|
-
*/
|
|
36
|
-
opCount: number;
|
|
7
|
+
export interface MongoCompactOptions extends storage.CompactOptions {
|
|
37
8
|
/**
|
|
38
|
-
*
|
|
9
|
+
* Only merge adjacent V3 bucket-data chunks. This is used after initial
|
|
10
|
+
* replication, where reading every operation would defeat the purpose of
|
|
11
|
+
* the lightweight pass.
|
|
39
12
|
*/
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
13
|
+
compactChunksOnly?: boolean;
|
|
14
|
+
/** Internal/testing use: bypass the new-chunk threshold during chunk-only compaction. */
|
|
15
|
+
forceChunkCompaction?: boolean;
|
|
43
16
|
}
|
|
44
17
|
export declare class ConcurrentCompactionError extends Error {
|
|
45
18
|
constructor(message: string);
|
|
46
19
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
20
|
+
/**
|
|
21
|
+
* A worker whose bucket lease has been replaced must stop immediately. Unlike
|
|
22
|
+
* a transactional replacement conflict, retrying it with the same compactor
|
|
23
|
+
* instance would still use the stale lease and could race the new owner.
|
|
24
|
+
*/
|
|
25
|
+
export declare class CompactionLeaseLostError extends ConcurrentCompactionError {
|
|
26
|
+
constructor(message: string);
|
|
52
27
|
}
|
|
53
28
|
export declare abstract class MongoCompactor {
|
|
54
29
|
protected readonly storage: MongoSyncBucketStorage;
|
|
55
30
|
protected readonly db: VersionedPowerSyncMongo;
|
|
56
|
-
protected bucketStateUpdates: mongo.AnyBulkWriteOperation<BucketStateDocumentBase>[];
|
|
57
31
|
protected readonly idLimitBytes: number;
|
|
58
32
|
protected readonly moveBatchLimit: number;
|
|
59
33
|
protected readonly moveBatchQueryLimit: number;
|
|
60
34
|
protected readonly moveBatchByteLimit: number;
|
|
61
35
|
protected readonly clearBatchLimit: number;
|
|
62
|
-
protected readonly minBucketChanges: number;
|
|
63
|
-
protected readonly minChangeRatio: number;
|
|
64
|
-
protected readonly maxOpId: bigint;
|
|
65
36
|
protected readonly buckets: string[] | undefined;
|
|
66
37
|
protected readonly deleteCheckpointRequestsBefore: Date | undefined;
|
|
67
38
|
protected readonly signal?: AbortSignal;
|
|
68
39
|
protected readonly group_id: number;
|
|
40
|
+
protected readonly compactChunksOnly: boolean;
|
|
41
|
+
protected compactedBucketCount: number;
|
|
69
42
|
protected readonly logger: Logger;
|
|
70
43
|
constructor(storage: MongoSyncBucketStorage, db: VersionedPowerSyncMongo, options: MongoCompactOptions);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
* See /docs/storage/compacting-operations.md for details.
|
|
75
|
-
*/
|
|
76
|
-
compact(): Promise<void>;
|
|
77
|
-
private deleteOldCheckpointRequests;
|
|
78
|
-
/**
|
|
79
|
-
* Subset of compact, only populating checksums where relevant.
|
|
80
|
-
*/
|
|
81
|
-
populateChecksums(options: {
|
|
82
|
-
minBucketChanges: number;
|
|
83
|
-
}): Promise<PopulateChecksumCacheResults>;
|
|
84
|
-
protected dirtyBucketBatchesForCollection<TCollectionBucketState extends BucketStateDocumentBase>(collection: mongo.Collection<TCollectionBucketState>, lastId: TCollectionBucketState['_id'], maxId: TCollectionBucketState['_id'], options: {
|
|
85
|
-
minBucketChanges: number;
|
|
86
|
-
minChangeRatio: number;
|
|
87
|
-
}, getDefinitionId: (state: TCollectionBucketState) => BucketDefinitionId | null): AsyncGenerator<DirtyBucket[]>;
|
|
88
|
-
protected dirtyBucketBatchForChecksumsForCollection<TBucketState extends BucketStateDocumentBase>(collection: mongo.Collection<TBucketState>, filter: mongo.Filter<TBucketState>, getDefinitionId: (state: mongo.WithId<TBucketState>) => BucketDefinitionId | null): Promise<DirtyBucket[]>;
|
|
89
|
-
abstract dirtyBucketBatches(options: {
|
|
90
|
-
minBucketChanges: number;
|
|
91
|
-
minChangeRatio: number;
|
|
92
|
-
}): AsyncGenerator<DirtyBucket[]>;
|
|
93
|
-
abstract dirtyBucketBatchForChecksums(options: {
|
|
94
|
-
minBucketChanges: number;
|
|
95
|
-
}): Promise<DirtyBucket[]>;
|
|
96
|
-
protected compactDirtyBuckets(): Promise<void>;
|
|
44
|
+
abstract compact(): Promise<number>;
|
|
45
|
+
protected deleteOldCheckpointRequests(): Promise<void>;
|
|
46
|
+
protected deleteOldCustomCheckpointRequests(): Promise<void>;
|
|
97
47
|
/**
|
|
98
48
|
* Compaction for a single bucket, with retries on failure.
|
|
99
49
|
*
|
|
@@ -102,15 +52,7 @@ export declare abstract class MongoCompactor {
|
|
|
102
52
|
* storage paths are also prepared with lifecycle markers, so a retry can
|
|
103
53
|
* safely overwrite or eventually clean up uploads from the failed attempt.
|
|
104
54
|
*/
|
|
105
|
-
protected
|
|
106
|
-
protected abstract compactSingleBucket(bucket: string, definitionId?: BucketDefinitionId | null): Promise<void>;
|
|
107
|
-
protected collectBucketStateUpdates(state: CurrentBucketState, compactedOpId: InternalOpId): mongo.AnyBulkWriteOperation<BucketStateDocumentBase>;
|
|
108
|
-
protected updateBucketChecksums(state: CurrentBucketState, compactedOpId: InternalOpId): void;
|
|
109
|
-
protected flushBucketStateUpdates(): Promise<void>;
|
|
110
|
-
protected updateChecksumsBatch(buckets: Pick<DirtyBucket, 'bucket' | 'definitionId'>[]): Promise<void>;
|
|
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;
|
|
55
|
+
protected retryCompaction(bucket: string, compact: () => Promise<void>): Promise<void>;
|
|
114
56
|
}
|
|
115
57
|
export interface BucketDataCollectionContext<TBucketData extends mongo.Document> {
|
|
116
58
|
bucketKey: BucketKey;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import * as timers from 'node:timers/promises';
|
|
2
|
-
import { isMongoServerError
|
|
3
|
-
import { logger as defaultLogger, ReplicationAssertionError
|
|
4
|
-
import { isPartialChecksum } from '@powersync/service-core';
|
|
2
|
+
import { isMongoServerError } from '@powersync/lib-service-mongodb';
|
|
3
|
+
import { logger as defaultLogger, ReplicationAssertionError } from '@powersync/lib-services-framework';
|
|
5
4
|
import { isRetryableObjectStorageError } from './v3/object-storage/ObjectStorage.js';
|
|
6
5
|
const DEFAULT_CLEAR_BATCH_LIMIT = 5000;
|
|
7
6
|
const DEFAULT_MOVE_BATCH_LIMIT = 2000;
|
|
8
7
|
const DEFAULT_MOVE_BATCH_QUERY_LIMIT = 10_000;
|
|
9
8
|
const DEFAULT_MOVE_BATCH_BYTE_LIMIT = 16 * 1024 * 1024;
|
|
10
|
-
const DEFAULT_MIN_BUCKET_CHANGES = 10;
|
|
11
|
-
const DEFAULT_MIN_CHANGE_RATIO = 0.1;
|
|
12
|
-
const DIRTY_BUCKET_SCAN_BATCH_SIZE = 2_000;
|
|
13
9
|
/** This default is primarily for tests. */
|
|
14
10
|
const DEFAULT_MEMORY_LIMIT_MB = 64;
|
|
15
11
|
const COMPACTION_RETRY_LIMIT = 3;
|
|
@@ -20,22 +16,31 @@ export class ConcurrentCompactionError extends Error {
|
|
|
20
16
|
this.name = 'ConcurrentCompactionError';
|
|
21
17
|
}
|
|
22
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* A worker whose bucket lease has been replaced must stop immediately. Unlike
|
|
21
|
+
* a transactional replacement conflict, retrying it with the same compactor
|
|
22
|
+
* instance would still use the stale lease and could race the new owner.
|
|
23
|
+
*/
|
|
24
|
+
export class CompactionLeaseLostError extends ConcurrentCompactionError {
|
|
25
|
+
constructor(message) {
|
|
26
|
+
super(message);
|
|
27
|
+
this.name = 'CompactionLeaseLostError';
|
|
28
|
+
}
|
|
29
|
+
}
|
|
23
30
|
export class MongoCompactor {
|
|
24
31
|
storage;
|
|
25
32
|
db;
|
|
26
|
-
bucketStateUpdates = [];
|
|
27
33
|
idLimitBytes;
|
|
28
34
|
moveBatchLimit;
|
|
29
35
|
moveBatchQueryLimit;
|
|
30
36
|
moveBatchByteLimit;
|
|
31
37
|
clearBatchLimit;
|
|
32
|
-
minBucketChanges;
|
|
33
|
-
minChangeRatio;
|
|
34
|
-
maxOpId;
|
|
35
38
|
buckets;
|
|
36
39
|
deleteCheckpointRequestsBefore;
|
|
37
40
|
signal;
|
|
38
41
|
group_id;
|
|
42
|
+
compactChunksOnly;
|
|
43
|
+
compactedBucketCount = 0;
|
|
39
44
|
logger;
|
|
40
45
|
constructor(storage, db, options) {
|
|
41
46
|
this.storage = storage;
|
|
@@ -49,32 +54,12 @@ export class MongoCompactor {
|
|
|
49
54
|
if (this.clearBatchLimit < 2) {
|
|
50
55
|
throw new ReplicationAssertionError('clearBatchLimit must be >= 2');
|
|
51
56
|
}
|
|
52
|
-
this.minBucketChanges = options.minBucketChanges ?? DEFAULT_MIN_BUCKET_CHANGES;
|
|
53
|
-
this.minChangeRatio = options.minChangeRatio ?? DEFAULT_MIN_CHANGE_RATIO;
|
|
54
|
-
this.maxOpId = options.maxOpId ?? 0n;
|
|
55
57
|
this.buckets = options.compactBuckets;
|
|
56
58
|
this.deleteCheckpointRequestsBefore = options.deleteCheckpointRequestsBefore;
|
|
57
59
|
this.signal = options.signal;
|
|
60
|
+
this.compactChunksOnly = options.compactChunksOnly ?? false;
|
|
58
61
|
this.logger = options.logger ?? defaultLogger;
|
|
59
62
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Compact buckets by converting operations into MOVE and/or CLEAR operations.
|
|
62
|
-
*
|
|
63
|
-
* See /docs/storage/compacting-operations.md for details.
|
|
64
|
-
*/
|
|
65
|
-
async compact() {
|
|
66
|
-
await this.deleteOldCheckpointRequests();
|
|
67
|
-
if (this.buckets) {
|
|
68
|
-
for (const bucket of this.buckets) {
|
|
69
|
-
// We can make this more efficient later on by iterating through the buckets in a single query.
|
|
70
|
-
// That makes batching more tricky, so we leave for later.
|
|
71
|
-
await this.compactSingleBucketRetried(bucket);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
else {
|
|
75
|
-
await this.compactDirtyBuckets();
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
63
|
async deleteOldCheckpointRequests() {
|
|
79
64
|
if (this.deleteCheckpointRequestsBefore == null) {
|
|
80
65
|
return;
|
|
@@ -88,141 +73,16 @@ export class MongoCompactor {
|
|
|
88
73
|
checkpoint_requested_at: { $exists: true, $lt: this.deleteCheckpointRequestsBefore },
|
|
89
74
|
processed_at_lsn: { $ne: null }
|
|
90
75
|
});
|
|
76
|
+
await this.deleteOldCustomCheckpointRequests();
|
|
77
|
+
}
|
|
78
|
+
async deleteOldCustomCheckpointRequests() {
|
|
79
|
+
if (this.deleteCheckpointRequestsBefore == null) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
91
82
|
await this.db.custom_write_checkpoints.deleteMany({
|
|
92
83
|
checkpoint_requested_at: { $exists: true, $lt: this.deleteCheckpointRequestsBefore }
|
|
93
84
|
});
|
|
94
85
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Subset of compact, only populating checksums where relevant.
|
|
97
|
-
*/
|
|
98
|
-
async populateChecksums(options) {
|
|
99
|
-
let count = 0;
|
|
100
|
-
// Paginate through dirty buckets in batches until no more buckets meet the criteria.
|
|
101
|
-
while (true) {
|
|
102
|
-
this.signal?.throwIfAborted();
|
|
103
|
-
const buckets = await this.dirtyBucketBatchForChecksums(options);
|
|
104
|
-
if (buckets.length == 0) {
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
this.signal?.throwIfAborted();
|
|
108
|
-
const start = Date.now();
|
|
109
|
-
// Filter batch by estimated bucket size, to reduce possibility of timeouts.
|
|
110
|
-
const checkBuckets = [];
|
|
111
|
-
let totalCountEstimate = 0;
|
|
112
|
-
for (const bucket of buckets) {
|
|
113
|
-
checkBuckets.push(bucket);
|
|
114
|
-
totalCountEstimate += bucket.estimatedCount;
|
|
115
|
-
if (totalCountEstimate > 50_000) {
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
this.logger.info(`Calculating checksums for batch of ${buckets.length} buckets, estimated count of ${totalCountEstimate}`);
|
|
120
|
-
await this.updateChecksumsBatch(checkBuckets);
|
|
121
|
-
this.logger.info(`Updated checksums for batch of ${checkBuckets.length} buckets in ${Date.now() - start}ms`);
|
|
122
|
-
count += checkBuckets.length;
|
|
123
|
-
}
|
|
124
|
-
return { buckets: count };
|
|
125
|
-
}
|
|
126
|
-
async *dirtyBucketBatchesForCollection(collection, lastId, maxId, options, getDefinitionId) {
|
|
127
|
-
// Paginate through the bucket state collection using cursor-based scanning.
|
|
128
|
-
while (true) {
|
|
129
|
-
// To avoid timeouts from too many buckets not meeting the minBucketChanges criteria, use an aggregation pipeline
|
|
130
|
-
// to scan a fixed batch of buckets at a time, but only return buckets that meet the criteria.
|
|
131
|
-
const [result] = await collection
|
|
132
|
-
.aggregate([
|
|
133
|
-
{
|
|
134
|
-
$match: {
|
|
135
|
-
_id: { $gt: lastId, $lt: maxId }
|
|
136
|
-
}
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
$sort: { _id: 1 }
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
// Scan a fixed number of docs each query so sparse matches don't block progress.
|
|
143
|
-
$limit: DIRTY_BUCKET_SCAN_BATCH_SIZE
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
$facet: {
|
|
147
|
-
buckets: [
|
|
148
|
-
{
|
|
149
|
-
$match: {
|
|
150
|
-
'estimate_since_compact.count': { $gte: options.minBucketChanges }
|
|
151
|
-
}
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
$project: {
|
|
155
|
-
_id: 1,
|
|
156
|
-
estimate_since_compact: 1,
|
|
157
|
-
compacted_state: 1
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
],
|
|
161
|
-
// This is used for the next query.
|
|
162
|
-
cursor: [{ $sort: { _id: -1 } }, { $limit: 1 }, { $project: { _id: 1 } }]
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
], { maxTimeMS: MONGO_OPERATION_TIMEOUT_MS })
|
|
166
|
-
.toArray();
|
|
167
|
-
const cursor = result?.cursor?.[0];
|
|
168
|
-
if (cursor == null) {
|
|
169
|
-
break;
|
|
170
|
-
}
|
|
171
|
-
lastId = cursor._id;
|
|
172
|
-
const mapped = (result?.buckets ?? []).map((bucketState) => {
|
|
173
|
-
// The numbers, specifically the bytes, could be a bigint. Convert to Number to allow calculating ratios.
|
|
174
|
-
// BigInt precision is not needed here since this is only an estimate.
|
|
175
|
-
const updatedCount = bucketState.estimate_since_compact?.count ?? 0;
|
|
176
|
-
const totalCount = (bucketState.compacted_state?.count ?? 0) + updatedCount;
|
|
177
|
-
const updatedBytes = Number(bucketState.estimate_since_compact?.bytes ?? 0);
|
|
178
|
-
const totalBytes = Number(bucketState.compacted_state?.bytes ?? 0) + updatedBytes;
|
|
179
|
-
const dirtyChangeNumber = totalCount > 0 ? updatedCount / totalCount : 0;
|
|
180
|
-
const dirtyChangeBytes = totalBytes > 0 ? updatedBytes / totalBytes : 0;
|
|
181
|
-
return {
|
|
182
|
-
bucket: bucketState._id.b,
|
|
183
|
-
definitionId: getDefinitionId(bucketState),
|
|
184
|
-
estimatedCount: totalCount,
|
|
185
|
-
dirtyRatio: Math.max(dirtyChangeNumber, dirtyChangeBytes)
|
|
186
|
-
};
|
|
187
|
-
});
|
|
188
|
-
yield mapped.filter((bucket) => bucket.estimatedCount >= options.minBucketChanges && bucket.dirtyRatio >= options.minChangeRatio);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
async dirtyBucketBatchForChecksumsForCollection(collection, filter, getDefinitionId) {
|
|
192
|
-
const dirtyBuckets = await collection
|
|
193
|
-
.find(filter, {
|
|
194
|
-
projection: {
|
|
195
|
-
_id: 1,
|
|
196
|
-
estimate_since_compact: 1,
|
|
197
|
-
compacted_state: 1
|
|
198
|
-
},
|
|
199
|
-
sort: {
|
|
200
|
-
'estimate_since_compact.count': -1
|
|
201
|
-
},
|
|
202
|
-
limit: 200,
|
|
203
|
-
maxTimeMS: MONGO_OPERATION_TIMEOUT_MS
|
|
204
|
-
})
|
|
205
|
-
.toArray();
|
|
206
|
-
return dirtyBuckets.map((bucket) => ({
|
|
207
|
-
bucket: bucket._id.b,
|
|
208
|
-
definitionId: getDefinitionId(bucket),
|
|
209
|
-
estimatedCount: Number(bucket.estimate_since_compact.count) + Number(bucket.compacted_state?.count ?? 0)
|
|
210
|
-
}));
|
|
211
|
-
}
|
|
212
|
-
async compactDirtyBuckets() {
|
|
213
|
-
for await (const buckets of this.dirtyBucketBatches({
|
|
214
|
-
minBucketChanges: this.minBucketChanges,
|
|
215
|
-
minChangeRatio: this.minChangeRatio
|
|
216
|
-
})) {
|
|
217
|
-
this.signal?.throwIfAborted();
|
|
218
|
-
if (buckets.length == 0) {
|
|
219
|
-
continue;
|
|
220
|
-
}
|
|
221
|
-
for (const { bucket, definitionId } of buckets) {
|
|
222
|
-
await this.compactSingleBucketRetried(bucket, definitionId);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
86
|
/**
|
|
227
87
|
* Compaction for a single bucket, with retries on failure.
|
|
228
88
|
*
|
|
@@ -231,14 +91,12 @@ export class MongoCompactor {
|
|
|
231
91
|
* storage paths are also prepared with lifecycle markers, so a retry can
|
|
232
92
|
* safely overwrite or eventually clean up uploads from the failed attempt.
|
|
233
93
|
*/
|
|
234
|
-
async
|
|
94
|
+
async retryCompaction(bucket, compact) {
|
|
235
95
|
let retryCount = 0;
|
|
236
96
|
while (true) {
|
|
237
97
|
this.signal?.throwIfAborted();
|
|
238
|
-
// Do not carry queued bucket state writes from a failed attempt into the rescan.
|
|
239
|
-
this.bucketStateUpdates = [];
|
|
240
98
|
try {
|
|
241
|
-
await
|
|
99
|
+
await compact();
|
|
242
100
|
return;
|
|
243
101
|
}
|
|
244
102
|
catch (e) {
|
|
@@ -260,80 +118,11 @@ export class MongoCompactor {
|
|
|
260
118
|
}
|
|
261
119
|
}
|
|
262
120
|
}
|
|
263
|
-
collectBucketStateUpdates(state, compactedOpId) {
|
|
264
|
-
if (state.opCount < 0) {
|
|
265
|
-
throw new ServiceAssertionError(`Invalid opCount: ${state.opCount} checksum ${state.checksum} opsSincePut: ${state.opsSincePut} maxOpId: ${this.maxOpId}`);
|
|
266
|
-
}
|
|
267
|
-
return {
|
|
268
|
-
updateOne: {
|
|
269
|
-
filter: this.bucketStateFilter(state.bucket, state.definitionId),
|
|
270
|
-
update: {
|
|
271
|
-
$set: {
|
|
272
|
-
compacted_state: {
|
|
273
|
-
op_id: compactedOpId,
|
|
274
|
-
count: state.opCount,
|
|
275
|
-
checksum: BigInt(state.checksum),
|
|
276
|
-
bytes: state.opBytes
|
|
277
|
-
},
|
|
278
|
-
estimate_since_compact: {
|
|
279
|
-
// There could have been a whole bunch of new operations added to the bucket while compacting,
|
|
280
|
-
// which we don't currently cater for. We could potentially query for that, but that adds overhead.
|
|
281
|
-
count: 0,
|
|
282
|
-
bytes: 0
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
},
|
|
286
|
-
// We generally expect this to have been created before.
|
|
287
|
-
// We don't create new ones here, to avoid issues with the unique index on bucket_updates.
|
|
288
|
-
upsert: false
|
|
289
|
-
}
|
|
290
|
-
};
|
|
291
|
-
}
|
|
292
|
-
updateBucketChecksums(state, compactedOpId) {
|
|
293
|
-
this.bucketStateUpdates.push(this.collectBucketStateUpdates(state, compactedOpId));
|
|
294
|
-
}
|
|
295
|
-
async flushBucketStateUpdates() {
|
|
296
|
-
if (this.bucketStateUpdates.length > 0) {
|
|
297
|
-
this.logger.info(`Updating ${this.bucketStateUpdates.length} bucket states`);
|
|
298
|
-
await this.writeBucketStateUpdates();
|
|
299
|
-
this.bucketStateUpdates = [];
|
|
300
|
-
}
|
|
301
|
-
}
|
|
302
|
-
async updateChecksumsBatch(buckets) {
|
|
303
|
-
const checksums = await this.computeChecksumsForBuckets(buckets);
|
|
304
|
-
const definitionIdByBucket = new Map(buckets.map((bucket) => [bucket.bucket, bucket.definitionId]));
|
|
305
|
-
for (const bucketChecksum of checksums.values()) {
|
|
306
|
-
if (isPartialChecksum(bucketChecksum)) {
|
|
307
|
-
// Should never happen since we don't specify `start`.
|
|
308
|
-
throw new ServiceAssertionError(`Full checksum expected, got ${JSON.stringify(bucketChecksum)}`);
|
|
309
|
-
}
|
|
310
|
-
this.bucketStateUpdates.push({
|
|
311
|
-
updateOne: {
|
|
312
|
-
filter: this.bucketStateFilter(bucketChecksum.bucket, definitionIdByBucket.get(bucketChecksum.bucket) ?? null),
|
|
313
|
-
update: {
|
|
314
|
-
$set: {
|
|
315
|
-
compacted_state: {
|
|
316
|
-
op_id: this.maxOpId,
|
|
317
|
-
count: bucketChecksum.count,
|
|
318
|
-
checksum: BigInt(bucketChecksum.checksum),
|
|
319
|
-
bytes: null
|
|
320
|
-
},
|
|
321
|
-
estimate_since_compact: {
|
|
322
|
-
count: 0,
|
|
323
|
-
bytes: 0
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
},
|
|
327
|
-
// We don't create new ones here - it gets tricky to get the last_op right with the unique index on
|
|
328
|
-
// bucket_updates.
|
|
329
|
-
upsert: false
|
|
330
|
-
}
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
await this.flushBucketStateUpdates();
|
|
334
|
-
}
|
|
335
121
|
}
|
|
336
122
|
function compactionRetryReason(error) {
|
|
123
|
+
if (error instanceof CompactionLeaseLostError) {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
337
126
|
if (error instanceof ConcurrentCompactionError) {
|
|
338
127
|
return 'concurrent compaction';
|
|
339
128
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoCompactor.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoCompactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAE,kBAAkB,EAAS,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AACvG,OAAO,EACL,MAAM,IAAI,aAAa,EAEvB,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAgB,iBAAiB,EAAyC,MAAM,yBAAyB,CAAC;AAOjH,OAAO,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAC;AAsCrF,MAAM,yBAAyB,GAAG,IAAI,CAAC;AACvC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AACtC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,6BAA6B,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AACvD,MAAM,0BAA0B,GAAG,EAAE,CAAC;AACtC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAC3C,2CAA2C;AAC3C,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACnC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAExC,MAAM,OAAO,yBAA0B,SAAQ,KAAK;IAClD,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;CACF;AASD,MAAM,OAAgB,cAAc;IAmBb;IACA;IAnBX,kBAAkB,GAA2D,EAAE,CAAC;IAEvE,YAAY,CAAS;IACrB,cAAc,CAAS;IACvB,mBAAmB,CAAS;IAC5B,kBAAkB,CAAS;IAC3B,eAAe,CAAS;IACxB,gBAAgB,CAAS;IACzB,cAAc,CAAS;IACvB,OAAO,CAAS;IAChB,OAAO,CAAuB;IAC9B,8BAA8B,CAAmB;IACjD,MAAM,CAAe;IACrB,QAAQ,CAAS;IAEjB,MAAM,CAAS;IAElC,YACqB,OAA+B,EAC/B,EAA2B,EAC9C,OAA4B;QAFT,YAAO,GAAP,OAAO,CAAwB;QAC/B,OAAE,GAAF,EAAE,CAAyB;QAG9C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,CAAC,OAAO,CAAC,aAAa,IAAI,uBAAuB,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QACrF,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACzE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,8BAA8B,CAAC;QACzF,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,6BAA6B,CAAC;QACtF,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,yBAAyB,CAAC;QAC5E,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,yBAAyB,CAAC,8BAA8B,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,0BAA0B,CAAC;QAC/E,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC;QACzE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC;QACtC,IAAI,CAAC,8BAA8B,GAAG,OAAO,CAAC,8BAA8B,CAAC;QAC7E,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,+FAA+F;gBAC/F,0DAA0D;gBAC1D,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACnC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,2BAA2B;QACvC,IAAI,IAAI,CAAC,8BAA8B,IAAI,IAAI,EAAE,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;QAC9B,+DAA+D;QAC/D,6EAA6E;QAC7E,yFAAyF;QACzF,oBAAoB;QACpB,MAAM,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC;YACzC,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,8BAA8B,EAAE;YACpF,gBAAgB,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,EAAE,CAAC,wBAAwB,CAAC,UAAU,CAAC;YAChD,uBAAuB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,8BAA8B,EAAE;SACrF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAqC;QAC3D,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,qFAAqF;QACrF,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACjE,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACxB,MAAM;YACR,CAAC;YACD,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,4EAA4E;YAC5E,MAAM,YAAY,GAAmB,EAAE,CAAC;YACxC,IAAI,kBAAkB,GAAG,CAAC,CAAC;YAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC1B,kBAAkB,IAAI,MAAM,CAAC,cAAc,CAAC;gBAC5C,IAAI,kBAAkB,GAAG,MAAM,EAAE,CAAC;oBAChC,MAAM;gBACR,CAAC;YACH,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,sCAAsC,OAAO,CAAC,MAAM,gCAAgC,kBAAkB,EAAE,CACzG,CAAC;YACF,MAAM,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,YAAY,CAAC,MAAM,eAAe,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC;YAC7G,KAAK,IAAI,YAAY,CAAC,MAAM,CAAC;QAC/B,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC5B,CAAC;IAES,KAAK,CAAC,CAAC,+BAA+B,CAC9C,UAAoD,EACpD,MAAqC,EACrC,KAAoC,EACpC,OAGC,EACD,eAA6E;QAE7E,4EAA4E;QAC5E,OAAO,IAAI,EAAE,CAAC;YACZ,iHAAiH;YACjH,8FAA8F;YAC9F,MAAM,CAAC,MAAM,CAAC,GAAG,MAAM,UAAU;iBAC9B,SAAS,CAIR;gBACE;oBACE,MAAM,EAAE;wBACN,GAAG,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE;qBACjC;iBACF;gBACD;oBACE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE;iBAClB;gBACD;oBACE,iFAAiF;oBACjF,MAAM,EAAE,4BAA4B;iBACrC;gBACD;oBACE,MAAM,EAAE;wBACN,OAAO,EAAE;4BACP;gCACE,MAAM,EAAE;oCACN,8BAA8B,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,gBAAgB,EAAE;iCACnE;6BACF;4BACD;gCACE,QAAQ,EAAE;oCACR,GAAG,EAAE,CAAC;oCACN,sBAAsB,EAAE,CAAC;oCACzB,eAAe,EAAE,CAAC;iCACnB;6BACF;yBACF;wBACD,mCAAmC;wBACnC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;qBAC1E;iBACF;aACF,EACD,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAC1C;iBACA,OAAO,EAAE,CAAC;YAEb,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;gBACnB,MAAM;YACR,CAAC;YACD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC;YAEpB,MAAM,MAAM,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACzD,yGAAyG;gBACzG,sEAAsE;gBACtE,MAAM,YAAY,GAAG,WAAW,CAAC,sBAAsB,EAAE,KAAK,IAAI,CAAC,CAAC;gBACpE,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;gBAC5E,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAC,sBAAsB,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;gBAC5E,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC,GAAG,YAAY,CAAC;gBAClF,MAAM,iBAAiB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACzE,MAAM,gBAAgB,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxE,OAAO;oBACL,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;oBACzB,YAAY,EAAE,eAAe,CAAC,WAAW,CAAC;oBAC1C,cAAc,EAAE,UAAU;oBAC1B,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;iBAC1D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,MAAM,CAAC,MAAM,CACjB,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,IAAI,OAAO,CAAC,gBAAgB,IAAI,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,cAAc,CAC7G,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,yCAAyC,CACvD,UAA0C,EAC1C,MAAkC,EAClC,eAAiF;QAEjF,MAAM,YAAY,GAAG,MAAM,UAAU;aAClC,IAAI,CAAC,MAAM,EAAE;YACZ,UAAU,EAAE;gBACV,GAAG,EAAE,CAAC;gBACN,sBAAsB,EAAE,CAAC;gBACzB,eAAe,EAAE,CAAC;aACnB;YACD,IAAI,EAAE;gBACJ,8BAA8B,EAAE,CAAC,CAAC;aACnC;YACD,KAAK,EAAE,GAAG;YACV,SAAS,EAAE,0BAA0B;SACtC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;YACpB,YAAY,EAAE,eAAe,CAAC,MAAM,CAAC;YACrC,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,sBAAuB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC,CAAC;SAC1G,CAAC,CAAC,CAAC;IACN,CAAC;IASS,KAAK,CAAC,mBAAmB;QACjC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,kBAAkB,CAAC;YAClD,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;YACvC,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC,EAAE,CAAC;YACH,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,KAAK,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,OAAO,EAAE,CAAC;gBAC/C,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,0BAA0B,CAAC,MAAc,EAAE,eAA0C,IAAI;QACvG,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC;YAC9B,iFAAiF;YACjF,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBACrD,OAAO;YACT,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;oBACzB,MAAM,CAAC,CAAC;gBACV,CAAC;gBAED,MAAM,WAAW,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;oBACxB,MAAM,CAAC,CAAC;gBACV,CAAC;gBACD,IAAI,UAAU,IAAI,sBAAsB,EAAE,CAAC;oBACzC,MAAM,IAAI,KAAK,CACb,4BAA4B,MAAM,UAAU,UAAU,GAAG,CAAC,cAAc,WAAW,MAAM,YAAY,CAAC,CAAC,CAAC,EAAE,EAC1G,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;gBACJ,CAAC;gBAED,UAAU,EAAE,CAAC;gBACb,MAAM,KAAK,GAAG,yBAAyB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,2BAA2B,MAAM,KAAK,WAAW,kBAAkB,KAAK,KAAK;oBAC3E,YAAY,UAAU,GAAG,CAAC,IAAI,sBAAsB,GAAG,CAAC,GAAG,EAC7D,CAAC,CACF,CAAC;gBACF,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/F,CAAC;QACH,CAAC;IACH,CAAC;IAIS,yBAAyB,CACjC,KAAyB,EACzB,aAA2B;QAE3B,IAAI,KAAK,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,qBAAqB,CAC7B,oBAAoB,KAAK,CAAC,OAAO,aAAa,KAAK,CAAC,QAAQ,iBAAiB,KAAK,CAAC,WAAW,aAAa,IAAI,CAAC,OAAO,EAAE,CAC1H,CAAC;QACJ,CAAC;QACD,OAAO;YACL,SAAS,EAAE;gBACT,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC;gBAChE,MAAM,EAAE;oBACN,IAAI,EAAE;wBACJ,eAAe,EAAE;4BACf,KAAK,EAAE,aAAa;4BACpB,KAAK,EAAE,KAAK,CAAC,OAAO;4BACpB,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC;4BAChC,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB;wBACD,sBAAsB,EAAE;4BACtB,8FAA8F;4BAC9F,mGAAmG;4BACnG,KAAK,EAAE,CAAC;4BACR,KAAK,EAAE,CAAC;yBACT;qBACF;iBACoD;gBACvD,wDAAwD;gBACxD,0FAA0F;gBAC1F,MAAM,EAAE,KAAK;aACd;SACF,CAAC;IACJ,CAAC;IAES,qBAAqB,CAAC,KAAyB,EAAE,aAA2B;QACpF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC;IACrF,CAAC;IAES,KAAK,CAAC,uBAAuB;QACrC,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,MAAM,gBAAgB,CAAC,CAAC;YAC7E,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACrC,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,OAAuD;QAC1F,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpG,KAAK,MAAM,cAAc,IAAI,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,IAAI,iBAAiB,CAAC,cAAc,CAAC,EAAE,CAAC;gBACtC,sDAAsD;gBACtD,MAAM,IAAI,qBAAqB,CAAC,+BAA+B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;YACnG,CAAC;YAED,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,SAAS,EAAE;oBACT,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAC5B,cAAc,CAAC,MAAM,EACrB,oBAAoB,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,IAAI,CACxD;oBACD,MAAM,EAAE;wBACN,IAAI,EAAE;4BACJ,eAAe,EAAE;gCACf,KAAK,EAAE,IAAI,CAAC,OAAO;gCACnB,KAAK,EAAE,cAAc,CAAC,KAAK;gCAC3B,QAAQ,EAAE,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;gCACzC,KAAK,EAAE,IAAI;6BACZ;4BACD,sBAAsB,EAAE;gCACtB,KAAK,EAAE,CAAC;gCACR,KAAK,EAAE,CAAC;6BACT;yBACF;qBACoD;oBACvD,mGAAmG;oBACnG,kBAAkB;oBAClB,MAAM,EAAE,KAAK;iBACd;aACF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACvC,CAAC;CAOF;AAOD,SAAS,qBAAqB,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,yBAAyB,EAAE,CAAC;QAC/C,OAAO,uBAAuB,CAAC;IACjC,CAAC;IACD,IAAI,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IACD,IAAI,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC"}
|
|
1
|
+
{"version":3,"file":"MongoCompactor.js","sourceRoot":"","sources":["../../../src/storage/implementation/MongoCompactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,17 @@
|
|
|
5
5
|
* at the end of the transaction.
|
|
6
6
|
*/
|
|
7
7
|
export declare class MongoIdSequence {
|
|
8
|
+
private readonly ranges?;
|
|
8
9
|
private _last;
|
|
9
|
-
constructor(last: bigint);
|
|
10
|
+
constructor(last: bigint, ranges?: readonly OpIdRange[] | undefined);
|
|
10
11
|
next(): bigint;
|
|
11
12
|
last(): bigint;
|
|
12
13
|
}
|
|
14
|
+
/** Inclusive, durably reserved operation IDs. Gaps between ranges are valid. */
|
|
15
|
+
export interface OpIdRange {
|
|
16
|
+
start: bigint;
|
|
17
|
+
end: bigint;
|
|
18
|
+
}
|
|
19
|
+
/** Abort the transaction before reserving more IDs and retrying its evaluation. */
|
|
20
|
+
export declare class OpIdRangeExhausted extends Error {
|
|
21
|
+
}
|