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