@powersync/service-module-mongodb-storage 0.0.0-dev-20250122110924 → 0.0.0-dev-20250227082606
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 +101 -10
- package/dist/migrations/MongoMigrationAgent.js +3 -0
- package/dist/migrations/MongoMigrationAgent.js.map +1 -1
- package/dist/storage/MongoBucketStorage.d.ts +9 -20
- package/dist/storage/MongoBucketStorage.js +86 -199
- package/dist/storage/MongoBucketStorage.js.map +1 -1
- package/dist/storage/implementation/MongoBucketBatch.d.ts +3 -3
- package/dist/storage/implementation/MongoBucketBatch.js +37 -24
- package/dist/storage/implementation/MongoBucketBatch.js.map +1 -1
- package/dist/storage/implementation/MongoCompactor.d.ts +0 -6
- package/dist/storage/implementation/MongoCompactor.js +11 -4
- package/dist/storage/implementation/MongoCompactor.js.map +1 -1
- package/dist/storage/implementation/MongoIdSequence.js +1 -0
- package/dist/storage/implementation/MongoIdSequence.js.map +1 -1
- package/dist/storage/implementation/MongoPersistedSyncRules.js +4 -0
- package/dist/storage/implementation/MongoPersistedSyncRules.js.map +1 -1
- package/dist/storage/implementation/MongoPersistedSyncRulesContent.js +9 -1
- package/dist/storage/implementation/MongoPersistedSyncRulesContent.js.map +1 -1
- package/dist/storage/implementation/MongoStorageProvider.js +3 -1
- package/dist/storage/implementation/MongoStorageProvider.js.map +1 -1
- package/dist/storage/implementation/MongoSyncBucketStorage.d.ts +16 -3
- package/dist/storage/implementation/MongoSyncBucketStorage.js +225 -22
- package/dist/storage/implementation/MongoSyncBucketStorage.js.map +1 -1
- package/dist/storage/implementation/MongoSyncRulesLock.js +5 -1
- package/dist/storage/implementation/MongoSyncRulesLock.js.map +1 -1
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js +3 -2
- package/dist/storage/implementation/MongoWriteCheckpointAPI.js.map +1 -1
- package/dist/storage/implementation/OperationBatch.js +10 -6
- package/dist/storage/implementation/OperationBatch.js.map +1 -1
- package/dist/storage/implementation/PersistedBatch.js +18 -18
- package/dist/storage/implementation/PersistedBatch.js.map +1 -1
- package/dist/storage/implementation/db.d.ts +1 -1
- package/dist/storage/implementation/db.js +15 -3
- package/dist/storage/implementation/db.js.map +1 -1
- package/dist/storage/implementation/models.d.ts +1 -0
- package/dist/storage/implementation/util.d.ts +0 -14
- package/dist/storage/implementation/util.js +3 -41
- package/dist/storage/implementation/util.js.map +1 -1
- package/package.json +8 -8
- package/src/storage/MongoBucketStorage.ts +88 -232
- package/src/storage/implementation/MongoBucketBatch.ts +12 -10
- package/src/storage/implementation/MongoCompactor.ts +2 -10
- package/src/storage/implementation/MongoStorageProvider.ts +3 -1
- package/src/storage/implementation/MongoSyncBucketStorage.ts +292 -37
- package/src/storage/implementation/MongoWriteCheckpointAPI.ts +1 -3
- package/src/storage/implementation/PersistedBatch.ts +4 -5
- package/src/storage/implementation/db.ts +3 -3
- package/src/storage/implementation/models.ts +5 -0
- package/src/storage/implementation/util.ts +0 -45
- package/test/src/__snapshots__/storage_sync.test.ts.snap +138 -0
- package/test/src/storage_compacting.test.ts +1 -7
- package/test/src/storage_sync.test.ts +1 -1
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,21 +1,112 @@
|
|
|
1
1
|
# @powersync/service-module-mongodb-storage
|
|
2
2
|
|
|
3
|
-
## 0.0.0-dev-
|
|
3
|
+
## 0.0.0-dev-20250227082606
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 7f8d223: Make some service limits configurable.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [7f8d223]
|
|
12
|
+
- @powersync/service-core@0.0.0-dev-20250227082606
|
|
13
|
+
- @powersync/lib-service-mongodb@0.0.0-dev-20250227082606
|
|
14
|
+
- @powersync/service-types@0.0.0-dev-20250227082606
|
|
15
|
+
|
|
16
|
+
## 0.6.1
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- b4fe4ae: Upgrade mongodb and bson packages, removing the need for some workarounds.
|
|
21
|
+
- 88ab679: Keep serving current data when restarting replication due to errors.
|
|
22
|
+
- 2f75fd7: Improve handling of some edge cases which could trigger truncating of synced tables.
|
|
23
|
+
- 346382e: Unified compacting options between storage providers.
|
|
24
|
+
- Updated dependencies [b4fe4ae]
|
|
25
|
+
- Updated dependencies [88ab679]
|
|
26
|
+
- Updated dependencies [2f75fd7]
|
|
27
|
+
- Updated dependencies [346382e]
|
|
28
|
+
- Updated dependencies [9b1868d]
|
|
29
|
+
- @powersync/service-core@1.7.1
|
|
30
|
+
- @powersync/lib-services-framework@0.5.3
|
|
31
|
+
- @powersync/lib-service-mongodb@0.4.3
|
|
32
|
+
|
|
33
|
+
## 0.6.0
|
|
34
|
+
|
|
35
|
+
### Minor Changes
|
|
36
|
+
|
|
37
|
+
- 436eee6: Minor optimizations to new checkpoint calulations.
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- 88d4cb3: Fix signed integer overflow issue for int64 values from MongoDB.
|
|
42
|
+
- Updated dependencies [436eee6]
|
|
43
|
+
- Updated dependencies [15283d4]
|
|
44
|
+
- Updated dependencies [88d4cb3]
|
|
45
|
+
- Updated dependencies [f55e36a]
|
|
46
|
+
- @powersync/service-core@1.7.0
|
|
47
|
+
- @powersync/service-sync-rules@0.24.0
|
|
48
|
+
- @powersync/lib-services-framework@0.5.2
|
|
49
|
+
- @powersync/lib-service-mongodb@0.4.2
|
|
50
|
+
|
|
51
|
+
## 0.5.1
|
|
52
|
+
|
|
53
|
+
### Patch Changes
|
|
54
|
+
|
|
55
|
+
- Updated dependencies [ffc8d98]
|
|
56
|
+
- @powersync/service-core@0.18.1
|
|
57
|
+
|
|
58
|
+
## 0.5.0
|
|
59
|
+
|
|
60
|
+
### Minor Changes
|
|
61
|
+
|
|
62
|
+
- 4b43cdb: Exit replication process when sync rules are not valid; configurable with a new `sync_rules.exit_on_error` option.
|
|
63
|
+
|
|
64
|
+
### Patch Changes
|
|
65
|
+
|
|
66
|
+
- Updated dependencies [e26e434]
|
|
67
|
+
- Updated dependencies [4b43cdb]
|
|
68
|
+
- Updated dependencies [9a9e668]
|
|
69
|
+
- @powersync/service-sync-rules@0.23.4
|
|
70
|
+
- @powersync/service-core@0.18.0
|
|
71
|
+
- @powersync/service-types@0.8.0
|
|
72
|
+
- @powersync/lib-services-framework@0.5.1
|
|
73
|
+
- @powersync/lib-service-mongodb@0.4.1
|
|
74
|
+
|
|
75
|
+
## 0.4.0
|
|
76
|
+
|
|
77
|
+
### Minor Changes
|
|
78
|
+
|
|
79
|
+
- 23fb49f: Added the ability to skip creating empty sync checkpoints if no changes were present in a batch.
|
|
80
|
+
|
|
81
|
+
### Patch Changes
|
|
82
|
+
|
|
83
|
+
- Updated dependencies [23fb49f]
|
|
84
|
+
- @powersync/service-core@0.17.0
|
|
85
|
+
|
|
86
|
+
## 0.3.2
|
|
87
|
+
|
|
88
|
+
### Patch Changes
|
|
89
|
+
|
|
90
|
+
- Updated dependencies [5043a82]
|
|
91
|
+
- @powersync/service-sync-rules@0.23.3
|
|
92
|
+
- @powersync/service-core@0.16.1
|
|
93
|
+
|
|
94
|
+
## 0.3.1
|
|
4
95
|
|
|
5
96
|
### Patch Changes
|
|
6
97
|
|
|
7
|
-
-
|
|
8
|
-
- Updated dependencies [
|
|
98
|
+
- f049aa9: Introduce standard error codes
|
|
99
|
+
- Updated dependencies [f049aa9]
|
|
9
100
|
- Updated dependencies [8675236]
|
|
10
|
-
- Updated dependencies [
|
|
101
|
+
- Updated dependencies [f049aa9]
|
|
11
102
|
- Updated dependencies [8675236]
|
|
12
103
|
- Updated dependencies [8675236]
|
|
13
|
-
- Updated dependencies [
|
|
14
|
-
- @powersync/service-core@0.
|
|
15
|
-
- @powersync/service-sync-rules@0.
|
|
16
|
-
- @powersync/service-types@0.
|
|
17
|
-
- @powersync/lib-services-framework@0.
|
|
18
|
-
- @powersync/lib-service-mongodb@0.
|
|
104
|
+
- Updated dependencies [f049aa9]
|
|
105
|
+
- @powersync/service-core@0.16.0
|
|
106
|
+
- @powersync/service-sync-rules@0.23.2
|
|
107
|
+
- @powersync/service-types@0.7.1
|
|
108
|
+
- @powersync/lib-services-framework@0.5.0
|
|
109
|
+
- @powersync/lib-service-mongodb@0.4.0
|
|
19
110
|
|
|
20
111
|
## 0.3.0
|
|
21
112
|
|
|
@@ -9,6 +9,9 @@ const __dirname = path.dirname(__filename);
|
|
|
9
9
|
const MONGO_LOCK_PROCESS = 'migrations';
|
|
10
10
|
const MIGRATIONS_DIR = path.join(__dirname, '/db/migrations');
|
|
11
11
|
export class MongoMigrationAgent extends migrations.AbstractPowerSyncMigrationAgent {
|
|
12
|
+
store;
|
|
13
|
+
locks;
|
|
14
|
+
client;
|
|
12
15
|
constructor(mongoConfig) {
|
|
13
16
|
super();
|
|
14
17
|
this.client = createPowerSyncMongo(mongoConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoMigrationAgent.js","sourceRoot":"","sources":["../../src/migrations/MongoMigrationAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,kBAAkB,GAAG,YAAY,CAAC;AACxC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,UAAU,CAAC,+BAA+B;
|
|
1
|
+
{"version":3,"file":"MongoMigrationAgent.js","sourceRoot":"","sources":["../../src/migrations/MongoMigrationAgent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,SAAS,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAkB,MAAM,6BAA6B,CAAC;AAEnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,kBAAkB,GAAG,YAAY,CAAC;AACxC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;AAE9D,MAAM,OAAO,mBAAoB,SAAQ,UAAU,CAAC,+BAA+B;IACjF,KAAK,CAA2B;IAChC,KAAK,CAAwB;IAEnB,MAAM,CAAiB;IAEjC,YAAY,WAA+B;QACzC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAEhD,IAAI,CAAC,KAAK,GAAG,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,KAAK,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,qBAAqB;QACnB,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACzB,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACnC,CAAC;CACF"}
|
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
import { storage } from '@powersync/service-core';
|
|
2
|
-
import {
|
|
1
|
+
import { GetIntanceOptions, storage } from '@powersync/service-core';
|
|
2
|
+
import { BaseObserver } from '@powersync/lib-services-framework';
|
|
3
3
|
import { PowerSyncMongo } from './implementation/db.js';
|
|
4
4
|
import { MongoPersistedSyncRulesContent } from './implementation/MongoPersistedSyncRulesContent.js';
|
|
5
5
|
import { MongoSyncBucketStorage } from './implementation/MongoSyncBucketStorage.js';
|
|
6
|
-
export declare class MongoBucketStorage extends
|
|
6
|
+
export declare class MongoBucketStorage extends BaseObserver<storage.BucketStorageFactoryListener> implements storage.BucketStorageFactory {
|
|
7
7
|
private readonly client;
|
|
8
8
|
private readonly session;
|
|
9
9
|
readonly slot_name_prefix: string;
|
|
10
|
-
private
|
|
10
|
+
private activeStorageCache;
|
|
11
11
|
readonly db: PowerSyncMongo;
|
|
12
12
|
constructor(db: PowerSyncMongo, options: {
|
|
13
13
|
slot_name_prefix: string;
|
|
14
14
|
});
|
|
15
15
|
[Symbol.asyncDispose](): Promise<void>;
|
|
16
|
-
getInstance(
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}): Promise<{
|
|
16
|
+
getInstance(syncRules: storage.PersistedSyncRulesContent, options?: GetIntanceOptions): MongoSyncBucketStorage;
|
|
17
|
+
getSystemIdentifier(): Promise<storage.BucketStorageSystemIdentifier>;
|
|
18
|
+
configureSyncRules(options: storage.UpdateSyncRulesOptions): Promise<{
|
|
20
19
|
updated: boolean;
|
|
21
20
|
persisted_sync_rules?: undefined;
|
|
22
21
|
lock?: undefined;
|
|
@@ -25,7 +24,7 @@ export declare class MongoBucketStorage extends DisposableObserver<storage.Bucke
|
|
|
25
24
|
persisted_sync_rules: MongoPersistedSyncRulesContent;
|
|
26
25
|
lock: import("./storage-index.js").MongoSyncRulesLock | undefined;
|
|
27
26
|
}>;
|
|
28
|
-
|
|
27
|
+
restartReplication(sync_rules_group_id: number): Promise<void>;
|
|
29
28
|
updateSyncRules(options: storage.UpdateSyncRulesOptions): Promise<MongoPersistedSyncRulesContent>;
|
|
30
29
|
getActiveSyncRulesContent(): Promise<MongoPersistedSyncRulesContent | null>;
|
|
31
30
|
getActiveSyncRules(options: storage.ParseSyncRulesOptions): Promise<storage.PersistedSyncRules | null>;
|
|
@@ -33,17 +32,7 @@ export declare class MongoBucketStorage extends DisposableObserver<storage.Bucke
|
|
|
33
32
|
getNextSyncRules(options: storage.ParseSyncRulesOptions): Promise<storage.PersistedSyncRules | null>;
|
|
34
33
|
getReplicatingSyncRules(): Promise<storage.PersistedSyncRulesContent[]>;
|
|
35
34
|
getStoppedSyncRules(): Promise<storage.PersistedSyncRulesContent[]>;
|
|
36
|
-
|
|
35
|
+
getActiveStorage(): Promise<MongoSyncBucketStorage | null>;
|
|
37
36
|
getStorageMetrics(): Promise<storage.StorageMetrics>;
|
|
38
37
|
getPowerSyncInstanceId(): Promise<string>;
|
|
39
|
-
private makeActiveCheckpoint;
|
|
40
|
-
/**
|
|
41
|
-
* Instance-wide watch on the latest available checkpoint (op_id + lsn).
|
|
42
|
-
*/
|
|
43
|
-
private watchActiveCheckpoint;
|
|
44
|
-
private readonly sharedIter;
|
|
45
|
-
/**
|
|
46
|
-
* User-specific watch on the latest checkpoint and/or write checkpoint.
|
|
47
|
-
*/
|
|
48
|
-
watchWriteCheckpoint(user_id: string, signal: AbortSignal): AsyncIterable<storage.WriteCheckpoint>;
|
|
49
38
|
}
|
|
@@ -1,92 +1,83 @@
|
|
|
1
1
|
import { SqlSyncRules } from '@powersync/service-sync-rules';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import * as timers from 'timers/promises';
|
|
5
|
-
import { storage, sync, utils } from '@powersync/service-core';
|
|
6
|
-
import { DisposableObserver, ErrorCode, logger, ServiceError } from '@powersync/lib-services-framework';
|
|
2
|
+
import { storage } from '@powersync/service-core';
|
|
3
|
+
import { BaseObserver, ErrorCode, logger, ServiceError } from '@powersync/lib-services-framework';
|
|
7
4
|
import { v4 as uuid } from 'uuid';
|
|
8
5
|
import * as lib_mongo from '@powersync/lib-service-mongodb';
|
|
9
6
|
import { MongoPersistedSyncRulesContent } from './implementation/MongoPersistedSyncRulesContent.js';
|
|
10
7
|
import { MongoSyncBucketStorage } from './implementation/MongoSyncBucketStorage.js';
|
|
11
8
|
import { generateSlotName } from './implementation/util.js';
|
|
12
|
-
export class MongoBucketStorage extends
|
|
9
|
+
export class MongoBucketStorage extends BaseObserver {
|
|
10
|
+
client;
|
|
11
|
+
session;
|
|
12
|
+
// TODO: This is still Postgres specific and needs to be reworked
|
|
13
|
+
slot_name_prefix;
|
|
14
|
+
activeStorageCache;
|
|
15
|
+
db;
|
|
13
16
|
constructor(db, options) {
|
|
14
17
|
super();
|
|
15
|
-
this.storageCache = new LRUCache({
|
|
16
|
-
max: 3,
|
|
17
|
-
fetchMethod: async (id) => {
|
|
18
|
-
const doc2 = await this.db.sync_rules.findOne({
|
|
19
|
-
_id: id
|
|
20
|
-
}, { limit: 1 });
|
|
21
|
-
if (doc2 == null) {
|
|
22
|
-
// Deleted in the meantime?
|
|
23
|
-
return undefined;
|
|
24
|
-
}
|
|
25
|
-
const rules = new MongoPersistedSyncRulesContent(this.db, doc2);
|
|
26
|
-
return this.getInstance(rules);
|
|
27
|
-
},
|
|
28
|
-
dispose: (storage) => {
|
|
29
|
-
storage[Symbol.dispose]();
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
// Nothing is done here until a subscriber starts to iterate
|
|
33
|
-
this.sharedIter = new sync.BroadcastIterable((signal) => {
|
|
34
|
-
return this.watchActiveCheckpoint(signal);
|
|
35
|
-
});
|
|
36
18
|
this.client = db.client;
|
|
37
19
|
this.db = db;
|
|
38
20
|
this.session = this.client.startSession();
|
|
39
21
|
this.slot_name_prefix = options.slot_name_prefix;
|
|
40
22
|
}
|
|
41
23
|
async [Symbol.asyncDispose]() {
|
|
42
|
-
|
|
24
|
+
// No-op
|
|
43
25
|
}
|
|
44
|
-
getInstance(options) {
|
|
45
|
-
let { id, slot_name } =
|
|
26
|
+
getInstance(syncRules, options) {
|
|
27
|
+
let { id, slot_name } = syncRules;
|
|
46
28
|
if (typeof id == 'bigint') {
|
|
47
29
|
id = Number(id);
|
|
48
30
|
}
|
|
49
|
-
const storage = new MongoSyncBucketStorage(this, id,
|
|
50
|
-
|
|
31
|
+
const storage = new MongoSyncBucketStorage(this, id, syncRules, slot_name);
|
|
32
|
+
if (!options?.skipLifecycleHooks) {
|
|
33
|
+
this.iterateListeners((cb) => cb.syncStorageCreated?.(storage));
|
|
34
|
+
}
|
|
51
35
|
storage.registerListener({
|
|
52
36
|
batchStarted: (batch) => {
|
|
53
|
-
|
|
54
|
-
batch.registerManagedListener(storage, {
|
|
37
|
+
batch.registerListener({
|
|
55
38
|
replicationEvent: (payload) => this.iterateListeners((cb) => cb.replicationEvent?.(payload))
|
|
56
39
|
});
|
|
57
40
|
}
|
|
58
41
|
});
|
|
59
42
|
return storage;
|
|
60
43
|
}
|
|
61
|
-
async
|
|
44
|
+
async getSystemIdentifier() {
|
|
45
|
+
const { setName: id } = await this.db.db.command({
|
|
46
|
+
hello: 1
|
|
47
|
+
});
|
|
48
|
+
if (id == null) {
|
|
49
|
+
throw new ServiceError(ErrorCode.PSYNC_S1342, 'Standalone MongoDB instances are not supported - use a replicaset.');
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
id,
|
|
53
|
+
type: lib_mongo.MONGO_CONNECTION_TYPE
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
async configureSyncRules(options) {
|
|
62
57
|
const next = await this.getNextSyncRulesContent();
|
|
63
58
|
const active = await this.getActiveSyncRulesContent();
|
|
64
|
-
if (next?.sync_rules_content ==
|
|
59
|
+
if (next?.sync_rules_content == options.content) {
|
|
65
60
|
logger.info('Sync rules from configuration unchanged');
|
|
66
61
|
return { updated: false };
|
|
67
62
|
}
|
|
68
|
-
else if (next == null && active?.sync_rules_content ==
|
|
63
|
+
else if (next == null && active?.sync_rules_content == options.content) {
|
|
69
64
|
logger.info('Sync rules from configuration unchanged');
|
|
70
65
|
return { updated: false };
|
|
71
66
|
}
|
|
72
67
|
else {
|
|
73
68
|
logger.info('Sync rules updated from configuration');
|
|
74
|
-
const persisted_sync_rules = await this.updateSyncRules(
|
|
75
|
-
content: sync_rules,
|
|
76
|
-
lock: options?.lock
|
|
77
|
-
});
|
|
69
|
+
const persisted_sync_rules = await this.updateSyncRules(options);
|
|
78
70
|
return { updated: true, persisted_sync_rules, lock: persisted_sync_rules.current_lock ?? undefined };
|
|
79
71
|
}
|
|
80
72
|
}
|
|
81
|
-
async
|
|
73
|
+
async restartReplication(sync_rules_group_id) {
|
|
82
74
|
const next = await this.getNextSyncRulesContent();
|
|
83
75
|
const active = await this.getActiveSyncRulesContent();
|
|
84
|
-
|
|
85
|
-
// The current one will continue erroring until the next one has finished processing.
|
|
86
|
-
if (next != null && next.slot_name == slot_name) {
|
|
76
|
+
if (next != null && next.id == sync_rules_group_id) {
|
|
87
77
|
// We need to redo the "next" sync rules
|
|
88
78
|
await this.updateSyncRules({
|
|
89
|
-
content: next.sync_rules_content
|
|
79
|
+
content: next.sync_rules_content,
|
|
80
|
+
validate: false
|
|
90
81
|
});
|
|
91
82
|
// Pro-actively stop replicating
|
|
92
83
|
await this.db.sync_rules.updateOne({
|
|
@@ -98,30 +89,50 @@ export class MongoBucketStorage extends DisposableObserver {
|
|
|
98
89
|
}
|
|
99
90
|
});
|
|
100
91
|
}
|
|
101
|
-
else if (next == null && active?.
|
|
92
|
+
else if (next == null && active?.id == sync_rules_group_id) {
|
|
102
93
|
// Slot removed for "active" sync rules, while there is no "next" one.
|
|
103
94
|
await this.updateSyncRules({
|
|
104
|
-
content: active.sync_rules_content
|
|
95
|
+
content: active.sync_rules_content,
|
|
96
|
+
validate: false
|
|
105
97
|
});
|
|
106
|
-
//
|
|
98
|
+
// In this case we keep the old one as active for clients, so that that existing clients
|
|
99
|
+
// can still get the latest data while we replicate the new ones.
|
|
100
|
+
// It will however not replicate anymore.
|
|
107
101
|
await this.db.sync_rules.updateOne({
|
|
108
102
|
_id: active.id,
|
|
109
103
|
state: storage.SyncRuleState.ACTIVE
|
|
110
104
|
}, {
|
|
111
105
|
$set: {
|
|
112
|
-
state: storage.SyncRuleState.
|
|
106
|
+
state: storage.SyncRuleState.ERRORED
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (next != null && active?.id == sync_rules_group_id) {
|
|
111
|
+
// Already have next sync rules, but need to stop replicating the active one.
|
|
112
|
+
await this.db.sync_rules.updateOne({
|
|
113
|
+
_id: active.id,
|
|
114
|
+
state: storage.SyncRuleState.ACTIVE
|
|
115
|
+
}, {
|
|
116
|
+
$set: {
|
|
117
|
+
state: storage.SyncRuleState.ERRORED
|
|
113
118
|
}
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
}
|
|
117
122
|
async updateSyncRules(options) {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
if (options.validate) {
|
|
124
|
+
// Parse and validate before applying any changes
|
|
125
|
+
SqlSyncRules.fromYaml(options.content, {
|
|
126
|
+
// No schema-based validation at this point
|
|
127
|
+
schema: undefined,
|
|
128
|
+
defaultSchema: 'not_applicable', // Not needed for validation
|
|
129
|
+
throwOnError: true
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// We do not validate sync rules at this point.
|
|
134
|
+
// That is done when using the sync rules, so that the diagnostics API can report the errors.
|
|
135
|
+
}
|
|
125
136
|
let rules = undefined;
|
|
126
137
|
await this.session.withTransaction(async () => {
|
|
127
138
|
// Only have a single set of sync rules with PROCESSING.
|
|
@@ -164,7 +175,7 @@ export class MongoBucketStorage extends DisposableObserver {
|
|
|
164
175
|
}
|
|
165
176
|
async getActiveSyncRulesContent() {
|
|
166
177
|
const doc = await this.db.sync_rules.findOne({
|
|
167
|
-
state: storage.SyncRuleState.ACTIVE
|
|
178
|
+
state: { $in: [storage.SyncRuleState.ACTIVE, storage.SyncRuleState.ERRORED] }
|
|
168
179
|
}, { sort: { _id: -1 }, limit: 1 });
|
|
169
180
|
if (doc == null) {
|
|
170
181
|
return null;
|
|
@@ -191,7 +202,7 @@ export class MongoBucketStorage extends DisposableObserver {
|
|
|
191
202
|
async getReplicatingSyncRules() {
|
|
192
203
|
const docs = await this.db.sync_rules
|
|
193
204
|
.find({
|
|
194
|
-
|
|
205
|
+
state: { $in: [storage.SyncRuleState.PROCESSING, storage.SyncRuleState.ACTIVE] }
|
|
195
206
|
})
|
|
196
207
|
.toArray();
|
|
197
208
|
return docs.map((doc) => {
|
|
@@ -208,15 +219,22 @@ export class MongoBucketStorage extends DisposableObserver {
|
|
|
208
219
|
return new MongoPersistedSyncRulesContent(this.db, doc);
|
|
209
220
|
});
|
|
210
221
|
}
|
|
211
|
-
async
|
|
212
|
-
const
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
222
|
+
async getActiveStorage() {
|
|
223
|
+
const content = await this.getActiveSyncRulesContent();
|
|
224
|
+
if (content == null) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
// It is important that this instance is cached.
|
|
228
|
+
// Not for the instance construction itself, but to ensure that internal caches on the instance
|
|
229
|
+
// are re-used properly.
|
|
230
|
+
if (this.activeStorageCache?.group_id == content.id) {
|
|
231
|
+
return this.activeStorageCache;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
const instance = this.getInstance(content);
|
|
235
|
+
this.activeStorageCache = instance;
|
|
236
|
+
return instance;
|
|
237
|
+
}
|
|
220
238
|
}
|
|
221
239
|
async getStorageMetrics() {
|
|
222
240
|
const ignoreNotExiting = (e) => {
|
|
@@ -292,136 +310,5 @@ export class MongoBucketStorage extends DisposableObserver {
|
|
|
292
310
|
}
|
|
293
311
|
return instance._id;
|
|
294
312
|
}
|
|
295
|
-
makeActiveCheckpoint(doc) {
|
|
296
|
-
return {
|
|
297
|
-
checkpoint: utils.timestampToOpId(doc?.last_checkpoint ?? 0n),
|
|
298
|
-
lsn: doc?.last_checkpoint_lsn ?? null,
|
|
299
|
-
hasSyncRules() {
|
|
300
|
-
return doc != null;
|
|
301
|
-
},
|
|
302
|
-
getBucketStorage: async () => {
|
|
303
|
-
if (doc == null) {
|
|
304
|
-
return null;
|
|
305
|
-
}
|
|
306
|
-
return (await this.storageCache.fetch(doc._id)) ?? null;
|
|
307
|
-
}
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
/**
|
|
311
|
-
* Instance-wide watch on the latest available checkpoint (op_id + lsn).
|
|
312
|
-
*/
|
|
313
|
-
async *watchActiveCheckpoint(signal) {
|
|
314
|
-
const pipeline = [
|
|
315
|
-
{
|
|
316
|
-
$match: {
|
|
317
|
-
'fullDocument.state': 'ACTIVE',
|
|
318
|
-
operationType: { $in: ['insert', 'update'] }
|
|
319
|
-
}
|
|
320
|
-
},
|
|
321
|
-
{
|
|
322
|
-
$project: {
|
|
323
|
-
operationType: 1,
|
|
324
|
-
'fullDocument._id': 1,
|
|
325
|
-
'fullDocument.last_checkpoint': 1,
|
|
326
|
-
'fullDocument.last_checkpoint_lsn': 1
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
];
|
|
330
|
-
// Use this form instead of (doc: SyncRuleDocument | null = null),
|
|
331
|
-
// otherwise we get weird "doc: never" issues.
|
|
332
|
-
let doc = null;
|
|
333
|
-
let clusterTime = null;
|
|
334
|
-
await this.client.withSession(async (session) => {
|
|
335
|
-
doc = await this.db.sync_rules.findOne({
|
|
336
|
-
state: storage.SyncRuleState.ACTIVE
|
|
337
|
-
}, {
|
|
338
|
-
session,
|
|
339
|
-
sort: { _id: -1 },
|
|
340
|
-
limit: 1,
|
|
341
|
-
projection: {
|
|
342
|
-
_id: 1,
|
|
343
|
-
last_checkpoint: 1,
|
|
344
|
-
last_checkpoint_lsn: 1
|
|
345
|
-
}
|
|
346
|
-
});
|
|
347
|
-
const time = session.clusterTime?.clusterTime ?? null;
|
|
348
|
-
clusterTime = time;
|
|
349
|
-
});
|
|
350
|
-
if (clusterTime == null) {
|
|
351
|
-
throw new ServiceError(ErrorCode.PSYNC_S2401, 'Could not get clusterTime');
|
|
352
|
-
}
|
|
353
|
-
if (signal.aborted) {
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
if (doc) {
|
|
357
|
-
yield this.makeActiveCheckpoint(doc);
|
|
358
|
-
}
|
|
359
|
-
const stream = this.db.sync_rules.watch(pipeline, {
|
|
360
|
-
fullDocument: 'updateLookup',
|
|
361
|
-
// Start at the cluster time where we got the initial doc, to make sure
|
|
362
|
-
// we don't skip any updates.
|
|
363
|
-
// This may result in the first operation being a duplicate, but we filter
|
|
364
|
-
// it out anyway.
|
|
365
|
-
startAtOperationTime: clusterTime
|
|
366
|
-
});
|
|
367
|
-
signal.addEventListener('abort', () => {
|
|
368
|
-
stream.close();
|
|
369
|
-
}, { once: true });
|
|
370
|
-
let lastOp = null;
|
|
371
|
-
for await (const update of stream.stream()) {
|
|
372
|
-
if (signal.aborted) {
|
|
373
|
-
break;
|
|
374
|
-
}
|
|
375
|
-
if (update.operationType != 'insert' && update.operationType != 'update') {
|
|
376
|
-
continue;
|
|
377
|
-
}
|
|
378
|
-
const doc = update.fullDocument;
|
|
379
|
-
if (doc == null) {
|
|
380
|
-
continue;
|
|
381
|
-
}
|
|
382
|
-
const op = this.makeActiveCheckpoint(doc);
|
|
383
|
-
// Check for LSN / checkpoint changes - ignore other metadata changes
|
|
384
|
-
if (lastOp == null || op.lsn != lastOp.lsn || op.checkpoint != lastOp.checkpoint) {
|
|
385
|
-
lastOp = op;
|
|
386
|
-
yield op;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* User-specific watch on the latest checkpoint and/or write checkpoint.
|
|
392
|
-
*/
|
|
393
|
-
async *watchWriteCheckpoint(user_id, signal) {
|
|
394
|
-
let lastCheckpoint = null;
|
|
395
|
-
let lastWriteCheckpoint = null;
|
|
396
|
-
const iter = wrapWithAbort(this.sharedIter, signal);
|
|
397
|
-
for await (const cp of iter) {
|
|
398
|
-
const { checkpoint, lsn } = cp;
|
|
399
|
-
// lsn changes are not important by itself.
|
|
400
|
-
// What is important is:
|
|
401
|
-
// 1. checkpoint (op_id) changes.
|
|
402
|
-
// 2. write checkpoint changes for the specific user
|
|
403
|
-
const bucketStorage = await cp.getBucketStorage();
|
|
404
|
-
if (!bucketStorage) {
|
|
405
|
-
continue;
|
|
406
|
-
}
|
|
407
|
-
const lsnFilters = lsn ? { 1: lsn } : {};
|
|
408
|
-
const currentWriteCheckpoint = await bucketStorage.lastWriteCheckpoint({
|
|
409
|
-
user_id,
|
|
410
|
-
heads: {
|
|
411
|
-
...lsnFilters
|
|
412
|
-
}
|
|
413
|
-
});
|
|
414
|
-
if (currentWriteCheckpoint == lastWriteCheckpoint && checkpoint == lastCheckpoint) {
|
|
415
|
-
// No change - wait for next one
|
|
416
|
-
// In some cases, many LSNs may be produced in a short time.
|
|
417
|
-
// Add a delay to throttle the write checkpoint lookup a bit.
|
|
418
|
-
await timers.setTimeout(20 + 10 * Math.random());
|
|
419
|
-
continue;
|
|
420
|
-
}
|
|
421
|
-
lastWriteCheckpoint = currentWriteCheckpoint;
|
|
422
|
-
lastCheckpoint = checkpoint;
|
|
423
|
-
yield { base: cp, writeCheckpoint: currentWriteCheckpoint };
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
313
|
}
|
|
427
314
|
//# sourceMappingURL=MongoBucketStorage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MongoBucketStorage.js","sourceRoot":"","sources":["../../src/storage/MongoBucketStorage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MongoBucketStorage.js","sourceRoot":"","sources":["../../src/storage/MongoBucketStorage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mongo } from '@powersync/lib-service-mongodb';
|
|
2
2
|
import { SqlEventDescriptor, SqlSyncRules } from '@powersync/service-sync-rules';
|
|
3
|
-
import {
|
|
3
|
+
import { BaseObserver } from '@powersync/lib-services-framework';
|
|
4
4
|
import { storage } from '@powersync/service-core';
|
|
5
5
|
import { PowerSyncMongo } from './db.js';
|
|
6
6
|
import { CurrentBucket } from './models.js';
|
|
@@ -18,7 +18,7 @@ export interface MongoBucketBatchOptions {
|
|
|
18
18
|
*/
|
|
19
19
|
skipExistingRows: boolean;
|
|
20
20
|
}
|
|
21
|
-
export declare class MongoBucketBatch extends
|
|
21
|
+
export declare class MongoBucketBatch extends BaseObserver<storage.BucketBatchStorageListener> implements storage.BucketStorageBatch {
|
|
22
22
|
private readonly client;
|
|
23
23
|
readonly db: PowerSyncMongo;
|
|
24
24
|
readonly session: mongo.ClientSession;
|
|
@@ -54,7 +54,7 @@ export declare class MongoBucketBatch extends DisposableObserver<storage.BucketB
|
|
|
54
54
|
private withReplicationTransaction;
|
|
55
55
|
[Symbol.asyncDispose](): Promise<void>;
|
|
56
56
|
private lastWaitingLogThottled;
|
|
57
|
-
commit(lsn: string): Promise<boolean>;
|
|
57
|
+
commit(lsn: string, options?: storage.BucketBatchCommitOptions): Promise<boolean>;
|
|
58
58
|
keepalive(lsn: string): Promise<boolean>;
|
|
59
59
|
save(record: storage.SaveOptions): Promise<storage.FlushedResult | null>;
|
|
60
60
|
/**
|