@rocicorp/zero 0.17.2025022800 → 0.17.2025030600
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/out/{chunk-5BT5TJFM.js → chunk-XXZWDMNW.js} +4025 -531
- package/out/chunk-XXZWDMNW.js.map +7 -0
- package/out/react.js +19 -11
- package/out/react.js.map +2 -2
- package/out/shared/src/set-utils.d.ts +1 -1
- package/out/shared/src/set-utils.js +1 -1
- package/out/solid.js +9 -5
- package/out/solid.js.map +2 -2
- package/out/zero-cache/src/auth/read-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/read-authorizer.js +0 -1
- package/out/zero-cache/src/auth/read-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +46 -13
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +76 -32
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js +12 -6
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.d.ts +1 -1
- package/out/zero-cache/src/db/migration.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration.js +16 -5
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +4 -0
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +14 -4
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/scripts/deploy-permissions.js +35 -20
- package/out/zero-cache/src/scripts/deploy-permissions.js.map +1 -1
- package/out/zero-cache/src/scripts/permissions.d.ts +17 -0
- package/out/zero-cache/src/scripts/permissions.d.ts.map +1 -1
- package/out/zero-cache/src/scripts/permissions.js +3 -1
- package/out/zero-cache/src/scripts/permissions.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +11 -10
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +11 -4
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/multi/config.d.ts +23 -9
- package/out/zero-cache/src/server/multi/config.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/config.js +2 -4
- package/out/zero-cache/src/server/multi/config.js.map +1 -1
- package/out/zero-cache/src/server/multi/run-worker.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/run-worker.js +1 -3
- package/out/zero-cache/src/server/multi/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/replicator.js +1 -1
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +14 -12
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +21 -19
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/custom/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js +2 -2
- package/out/zero-cache/src/services/change-source/custom/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +5 -5
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +41 -34
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.d.ts +4 -0
- package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/decommission.js +21 -0
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -0
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +4 -3
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +45 -25
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts +3 -2
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js +35 -16
- package/out/zero-cache/src/services/change-source/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +4 -3
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +53 -13
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +10 -12
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +52 -53
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts +2 -2
- package/out/zero-cache/src/services/change-source/pg/sync-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js +11 -2
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +11 -11
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.js +25 -14
- package/out/zero-cache/src/services/change-streamer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +6 -5
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js +28 -26
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +4 -2
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +19 -9
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +3 -3
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +3 -2
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +14 -16
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +14 -5
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +29 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +5 -3
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +3 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js +21 -11
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +5 -3
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +100 -66
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts +2 -0
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js +8 -3
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +3 -2
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js +5 -3
- package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +3 -5
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +38 -40
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +7 -6
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +26 -18
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js +12 -9
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +18 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +194 -43
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +2 -2
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +9 -4
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +7 -3
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +11 -5
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/shards.d.ts +33 -0
- package/out/zero-cache/src/types/shards.d.ts.map +1 -0
- package/out/zero-cache/src/types/shards.js +44 -0
- package/out/zero-cache/src/types/shards.js.map +1 -0
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +39 -20
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +2 -1
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +42 -17
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +4 -4
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +5 -2
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-client/src/client/custom.d.ts +2 -11
- package/out/zero-client/src/client/custom.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +1 -0
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/custom.d.ts +1 -2
- package/out/zero-pg/src/custom.d.ts.map +1 -1
- package/out/zero-pg/src/custom.js.map +1 -1
- package/out/zero-pg/src/mod.d.ts +2 -2
- package/out/zero-pg/src/mod.d.ts.map +1 -1
- package/out/zero-pg/src/query.d.ts +3 -4
- package/out/zero-pg/src/query.d.ts.map +1 -1
- package/out/zero-pg/src/query.js +5 -7
- package/out/zero-pg/src/query.js.map +1 -1
- package/out/zero-pg/src/web.d.ts +1 -1
- package/out/zero-pg/src/web.d.ts.map +1 -1
- package/out/zero-pg/src/web.js.map +1 -1
- package/out/zero-protocol/src/close-connection.d.ts +16 -0
- package/out/zero-protocol/src/close-connection.d.ts.map +1 -0
- package/out/zero-protocol/src/close-connection.js +17 -0
- package/out/zero-protocol/src/close-connection.js.map +1 -0
- package/out/zero-protocol/src/up.d.ts +1 -1
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/up.js +2 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +11 -2
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-solid/src/use-query.d.ts +4 -1
- package/out/zero-solid/src/use-query.d.ts.map +1 -1
- package/out/zero.js +1 -2
- package/out/zql/src/ivm/exists.d.ts.map +1 -1
- package/out/zql/src/ivm/exists.js +134 -138
- package/out/zql/src/ivm/exists.js.map +1 -1
- package/out/zql/src/mutate/custom.d.ts +36 -1
- package/out/zql/src/mutate/custom.d.ts.map +1 -1
- package/out/zql/src/mutate/custom.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +8 -8
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +29 -25
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query-internal.d.ts +2 -2
- package/out/zql/src/query/query-internal.d.ts.map +1 -1
- package/out/zql/src/query/query.d.ts +10 -2
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/query.js +1 -1
- package/out/zql/src/query/query.js.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.js +2 -2
- package/out/zql/src/query/static-query.js.map +1 -1
- package/out/zqlite/src/db.d.ts +3 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +47 -0
- package/out/zqlite/src/db.js.map +1 -1
- package/package.json +3 -3
- package/out/chunk-5BT5TJFM.js.map +0 -7
- package/out/chunk-P3NUVEQJ.js +0 -3578
- package/out/chunk-P3NUVEQJ.js.map +0 -7
- package/out/pg.js +0 -593
- package/out/pg.js.map +0 -7
- package/out/zero-cache/src/services/change-source/pg/shard-config.d.ts +0 -19
- package/out/zero-cache/src/services/change-source/pg/shard-config.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/shard-config.js +0 -2
- package/out/zero-cache/src/services/change-source/pg/shard-config.js.map +0 -1
- package/out/zero-pg/src/db.d.ts +0 -27
- package/out/zero-pg/src/db.d.ts.map +0 -1
- package/out/zero-pg/src/db.js +0 -2
- package/out/zero-pg/src/db.js.map +0 -1
|
@@ -8,10 +8,11 @@ import { Queue } from "../../../../shared/src/queue.js";
|
|
|
8
8
|
import { promiseVoid } from "../../../../shared/src/resolved-promises.js";
|
|
9
9
|
import * as Mode from "../../db/mode-enum.js";
|
|
10
10
|
import { TransactionPool } from "../../db/transaction-pool.js";
|
|
11
|
+
import { cdcSchema } from "../../types/shards.js";
|
|
11
12
|
import {} from "../change-source/protocol/current/downstream.js";
|
|
12
13
|
import {} from "./change-streamer.js";
|
|
13
14
|
import * as ErrorType from "./error-type-enum.js";
|
|
14
|
-
import {
|
|
15
|
+
import { AutoResetSignal, markResetRequired, } from "./schema/tables.js";
|
|
15
16
|
import { Subscriber } from "./subscriber.js";
|
|
16
17
|
/**
|
|
17
18
|
* Handles the storage of changes and the catchup of subscribers
|
|
@@ -46,23 +47,25 @@ import { Subscriber } from "./subscriber.js";
|
|
|
46
47
|
export class Storer {
|
|
47
48
|
id = 'storer';
|
|
48
49
|
#lc;
|
|
49
|
-
#
|
|
50
|
+
#shard;
|
|
50
51
|
#taskID;
|
|
51
52
|
#db;
|
|
52
53
|
#replicaVersion;
|
|
53
54
|
#onConsumed;
|
|
55
|
+
#onFatal;
|
|
54
56
|
#queue = new Queue();
|
|
55
|
-
constructor(lc,
|
|
57
|
+
constructor(lc, shard, taskID, db, replicaVersion, onConsumed, onFatal) {
|
|
56
58
|
this.#lc = lc;
|
|
57
|
-
this.#
|
|
59
|
+
this.#shard = shard;
|
|
58
60
|
this.#taskID = taskID;
|
|
59
61
|
this.#db = db;
|
|
60
62
|
this.#replicaVersion = replicaVersion;
|
|
61
63
|
this.#onConsumed = onConsumed;
|
|
64
|
+
this.#onFatal = onFatal;
|
|
62
65
|
}
|
|
63
66
|
// For readability in SQL statements.
|
|
64
67
|
#cdc(table) {
|
|
65
|
-
return this.#db(`${cdcSchema(this.#
|
|
68
|
+
return this.#db(`${cdcSchema(this.#shard)}.${table}`);
|
|
66
69
|
}
|
|
67
70
|
async assumeOwnership() {
|
|
68
71
|
const db = this.#db;
|
|
@@ -88,8 +91,8 @@ export class Storer {
|
|
|
88
91
|
status(s) {
|
|
89
92
|
this.#queue.enqueue(s);
|
|
90
93
|
}
|
|
91
|
-
catchup(
|
|
92
|
-
this.#queue.enqueue(['subscriber',
|
|
94
|
+
catchup(subscriber, mode) {
|
|
95
|
+
this.#queue.enqueue(['subscriber', { subscriber, mode }]);
|
|
93
96
|
}
|
|
94
97
|
async run() {
|
|
95
98
|
let tx = null;
|
|
@@ -205,7 +208,7 @@ export class Storer {
|
|
|
205
208
|
// #catchup() by disconnecting the associated subscriber.
|
|
206
209
|
void Promise.all(subs.map(sub => this.#catchup(sub, reader))).finally(() => reader.setDone());
|
|
207
210
|
}
|
|
208
|
-
async #catchup(sub, reader) {
|
|
211
|
+
async #catchup({ subscriber: sub, mode }, reader) {
|
|
209
212
|
try {
|
|
210
213
|
await reader.processReadTask(async (tx) => {
|
|
211
214
|
const start = Date.now();
|
|
@@ -227,6 +230,9 @@ export class Storer {
|
|
|
227
230
|
sub.catchup(toDownstream(entry));
|
|
228
231
|
count++;
|
|
229
232
|
}
|
|
233
|
+
else if (mode === 'backup') {
|
|
234
|
+
throw new AutoResetSignal(`backup replica at watermark ${sub.watermark} is behind change db: ${entry.watermark})`);
|
|
235
|
+
}
|
|
230
236
|
else {
|
|
231
237
|
this.#lc.warn?.(`rejecting subscriber at watermark ${sub.watermark} (earliest watermark: ${entry.watermark})`);
|
|
232
238
|
sub.close(ErrorType.WatermarkTooOld, `earliest supported watermark is ${entry.watermark} (requested ${sub.watermark})`);
|
|
@@ -246,8 +252,12 @@ export class Storer {
|
|
|
246
252
|
});
|
|
247
253
|
}
|
|
248
254
|
catch (err) {
|
|
249
|
-
sub.fail(err);
|
|
250
255
|
this.#lc.error?.(`error while catching up subscriber ${sub.id}`, err);
|
|
256
|
+
if (err instanceof AutoResetSignal) {
|
|
257
|
+
await markResetRequired(this.#db, this.#shard);
|
|
258
|
+
this.#onFatal(err);
|
|
259
|
+
}
|
|
260
|
+
sub.fail(err);
|
|
251
261
|
}
|
|
252
262
|
}
|
|
253
263
|
stop() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AACjE,OAAO,EAAC,MAAM,EAAC,MAAM,mCAAmC,CAAC;AACzD,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,6CAA6C,CAAC;AACxE,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAG7D,OAAO,EAAa,MAAM,iDAAiD,CAAC;
|
|
1
|
+
{"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import { ChildProcess } from 'node:child_process';
|
|
3
3
|
import type { ZeroConfig } from '../../config/zero-config.ts';
|
|
4
|
-
type ZeroLitestreamConfig = Pick<ZeroConfig, 'log' | '
|
|
4
|
+
type ZeroLitestreamConfig = Pick<ZeroConfig, 'log' | 'replica' | 'litestream'>;
|
|
5
5
|
export declare function restoreReplica(lc: LogContext, config: ZeroLitestreamConfig, maxRetries: number, retryIntervalMs?: number): Promise<void>;
|
|
6
6
|
export declare function startReplicaBackupProcess(config: ZeroLitestreamConfig): ChildProcess;
|
|
7
7
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/litestream/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAW,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAC,YAAY,EAAQ,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAE5D,KAAK,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/litestream/commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAW,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAC,YAAY,EAAQ,MAAM,oBAAoB,CAAC;AAIvD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAE5D,KAAK,oBAAoB,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;AAE/E,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,oBAAoB,EAC5B,UAAU,EAAE,MAAM,EAClB,eAAe,SAAO,iBAmBvB;AAiFD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,oBAAoB,GAC3B,YAAY,CAOd"}
|
|
@@ -31,7 +31,7 @@ function getLitestream(config, logLevelOverride) {
|
|
|
31
31
|
litestream: must(executable, `Missing --litestream-executable`),
|
|
32
32
|
env: {
|
|
33
33
|
...process.env,
|
|
34
|
-
['ZERO_REPLICA_FILE']: config.
|
|
34
|
+
['ZERO_REPLICA_FILE']: config.replica.file,
|
|
35
35
|
['ZERO_LITESTREAM_BACKUP_URL']: must(backupURL),
|
|
36
36
|
['ZERO_LITESTREAM_MIN_CHECKPOINT_PAGE_COUNT']: String(minCheckpointPageCount),
|
|
37
37
|
['ZERO_LITESTREAM_MAX_CHECKPOINT_PAGE_COUNT']: String(maxCheckpointPageCount),
|
|
@@ -53,7 +53,7 @@ async function tryRestore(config) {
|
|
|
53
53
|
'-if-replica-exists',
|
|
54
54
|
'-parallelism',
|
|
55
55
|
String(parallelism),
|
|
56
|
-
config.
|
|
56
|
+
config.replica.file,
|
|
57
57
|
], { env, stdio: 'inherit', windowsHide: true });
|
|
58
58
|
const { promise, resolve, reject } = resolver();
|
|
59
59
|
proc.on('error', reject);
|
|
@@ -69,7 +69,7 @@ async function tryRestore(config) {
|
|
|
69
69
|
}
|
|
70
70
|
});
|
|
71
71
|
await promise;
|
|
72
|
-
return existsSync(config.
|
|
72
|
+
return existsSync(config.replica.file);
|
|
73
73
|
}
|
|
74
74
|
export function startReplicaBackupProcess(config) {
|
|
75
75
|
const { litestream, env } = getLitestream(config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/litestream/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,YAAY,EAAE,KAAK,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAC;AACnC,OAAO,EAAC,IAAI,EAAC,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAC,KAAK,EAAC,MAAM,iCAAiC,CAAC;
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/litestream/commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { type InsertOp, type Mutation, type UpsertOp } from '../../../../zero-pr
|
|
|
6
6
|
import { type WriteAuthorizer } from '../../auth/write-authorizer.ts';
|
|
7
7
|
import { type ZeroConfig } from '../../config/zero-config.ts';
|
|
8
8
|
import type { PostgresDB } from '../../types/pg.ts';
|
|
9
|
+
import { type ShardID } from '../../types/shards.ts';
|
|
9
10
|
import type { Service } from '../service.ts';
|
|
10
11
|
export type MutationError = [
|
|
11
12
|
kind: ErrorKind.MutationFailed | ErrorKind.MutationRateLimited,
|
|
@@ -17,12 +18,12 @@ export interface Mutagen {
|
|
|
17
18
|
export declare class MutagenService implements Mutagen, Service {
|
|
18
19
|
#private;
|
|
19
20
|
readonly id: string;
|
|
20
|
-
constructor(lc: LogContext,
|
|
21
|
+
constructor(lc: LogContext, shard: ShardID, clientGroupID: string, upstream: PostgresDB, config: ZeroConfig);
|
|
21
22
|
processMutation(mutation: Mutation, authData: JWTPayload | undefined, schemaVersion: number): Promise<MutationError | undefined>;
|
|
22
23
|
run(): Promise<void>;
|
|
23
24
|
stop(): Promise<void>;
|
|
24
25
|
}
|
|
25
|
-
export declare function processMutation(lc: LogContext, authData: JWTPayload | undefined, db: PostgresDB,
|
|
26
|
+
export declare function processMutation(lc: LogContext, authData: JWTPayload | undefined, db: PostgresDB, shard: ShardID, clientGroupID: string, mutation: Mutation, writeAuthorizer: WriteAuthorizer, schemaVersion: number, onTxStart?: () => void | Promise<void>): Promise<MutationError | undefined>;
|
|
26
27
|
export declare function getInsertSQL(tx: postgres.TransactionSql, create: InsertOp): postgres.PendingQuery<postgres.Row[]>;
|
|
27
28
|
export declare function getUpsertSQL(tx: postgres.TransactionSql, set: UpsertOp): postgres.PendingQuery<postgres.Row[]>;
|
|
28
29
|
//# sourceMappingURL=mutagen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutagen.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAM9E,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mutagen.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;AACrC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAGhC,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAM9E,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,QAAQ,EAEb,KAAK,QAAQ,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAC,KAAK,UAAU,EAAC,MAAM,6BAA6B,CAAC;AAG5D,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,mBAAmB,CAAC;AAEvE,OAAO,EAA4B,KAAK,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAE9E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAI3C,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,mBAAmB;IAC9D,IAAI,EAAE,MAAM;CACb,CAAC;AAEF,MAAM,WAAW,OAAO;IACtB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CACvC;AAED,qBAAa,cAAe,YAAW,OAAO,EAAE,OAAO;;IACrD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAUlB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,UAAU,EACpB,MAAM,EAAE,UAAU;IAyBpB,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAmBrC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAIpB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CAItB;AAID,wBAAsB,eAAe,CACnC,EAAE,EAAE,UAAU,EACd,QAAQ,EAAE,UAAU,GAAG,SAAS,EAChC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,eAAe,EAChC,aAAa,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACrC,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA2GpC;AAuED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,MAAM,EAAE,QAAQ,GACf,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAEvC;AAED,wBAAgB,YAAY,CAC1B,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,GAAG,EAAE,QAAQ,GACZ,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAOvC"}
|
|
@@ -13,28 +13,26 @@ import {} from "../../config/zero-config.js";
|
|
|
13
13
|
import * as Mode from "../../db/mode-enum.js";
|
|
14
14
|
import { ErrorForClient } from "../../types/error-for-client.js";
|
|
15
15
|
import { throwErrorForClientIfSchemaVersionNotSupported } from "../../types/schema-versions.js";
|
|
16
|
-
import {
|
|
16
|
+
import { appSchema, upstreamSchema } from "../../types/shards.js";
|
|
17
17
|
import { SlidingWindowLimiter } from "../limiter/sliding-window-limiter.js";
|
|
18
18
|
export class MutagenService {
|
|
19
19
|
id;
|
|
20
20
|
#lc;
|
|
21
21
|
#upstream;
|
|
22
|
-
#
|
|
23
|
-
#shardID;
|
|
22
|
+
#shard;
|
|
24
23
|
#stopped = resolver();
|
|
25
24
|
#replica;
|
|
26
25
|
#writeAuthorizer;
|
|
27
26
|
#limiter;
|
|
28
|
-
constructor(lc,
|
|
27
|
+
constructor(lc, shard, clientGroupID, upstream, config) {
|
|
29
28
|
this.id = clientGroupID;
|
|
30
29
|
this.#lc = lc;
|
|
31
30
|
this.#upstream = upstream;
|
|
32
|
-
this.#
|
|
33
|
-
this.#
|
|
34
|
-
this.#replica = new Database(this.#lc, config.replicaFile, {
|
|
31
|
+
this.#shard = shard;
|
|
32
|
+
this.#replica = new Database(this.#lc, config.replica.file, {
|
|
35
33
|
fileMustExist: true,
|
|
36
34
|
});
|
|
37
|
-
this.#writeAuthorizer = new WriteAuthorizerImpl(this.#lc, config, this.#replica, appID, clientGroupID);
|
|
35
|
+
this.#writeAuthorizer = new WriteAuthorizerImpl(this.#lc, config, this.#replica, shard.appID, clientGroupID);
|
|
38
36
|
if (config.perUserMutationLimit.max !== undefined) {
|
|
39
37
|
this.#limiter = new SlidingWindowLimiter(config.perUserMutationLimit.windowMs, config.perUserMutationLimit.max);
|
|
40
38
|
}
|
|
@@ -46,7 +44,7 @@ export class MutagenService {
|
|
|
46
44
|
'Rate limit exceeded',
|
|
47
45
|
]);
|
|
48
46
|
}
|
|
49
|
-
return processMutation(this.#lc, authData, this.#upstream, this.#
|
|
47
|
+
return processMutation(this.#lc, authData, this.#upstream, this.#shard, this.id, mutation, this.#writeAuthorizer, schemaVersion);
|
|
50
48
|
}
|
|
51
49
|
run() {
|
|
52
50
|
return this.#stopped.promise;
|
|
@@ -57,7 +55,7 @@ export class MutagenService {
|
|
|
57
55
|
}
|
|
58
56
|
}
|
|
59
57
|
const MAX_SERIALIZATION_ATTEMPTS = 10;
|
|
60
|
-
export async function processMutation(lc, authData, db,
|
|
58
|
+
export async function processMutation(lc, authData, db, shard, clientGroupID, mutation, writeAuthorizer, schemaVersion, onTxStart) {
|
|
61
59
|
assert(mutation.type === MutationType.CRUD, 'Only CRUD mutations are supported');
|
|
62
60
|
lc = lc.withContext('mutationID', mutation.id);
|
|
63
61
|
lc = lc.withContext('processMutation');
|
|
@@ -110,7 +108,7 @@ export async function processMutation(lc, authData, db, appID, shardID, clientGr
|
|
|
110
108
|
// Simulates a concurrent request for testing. In production this is a noop.
|
|
111
109
|
const done = onTxStart?.();
|
|
112
110
|
try {
|
|
113
|
-
return await processMutationWithTx(lc, tx, authData,
|
|
111
|
+
return await processMutationWithTx(lc, tx, authData, shard, clientGroupID, schemaVersion, mutation, errorMode, writeAuthorizer);
|
|
114
112
|
}
|
|
115
113
|
finally {
|
|
116
114
|
await done;
|
|
@@ -151,7 +149,7 @@ export async function processMutation(lc, authData, db, appID, shardID, clientGr
|
|
|
151
149
|
}
|
|
152
150
|
return result;
|
|
153
151
|
}
|
|
154
|
-
async function processMutationWithTx(lc, tx, authData,
|
|
152
|
+
async function processMutationWithTx(lc, tx, authData, shard, clientGroupID, schemaVersion, mutation, errorMode, authorizer) {
|
|
155
153
|
const tasks = [];
|
|
156
154
|
async function execute(stmt) {
|
|
157
155
|
try {
|
|
@@ -190,7 +188,7 @@ async function processMutationWithTx(lc, tx, authData, appID, shardID, clientGro
|
|
|
190
188
|
}
|
|
191
189
|
// Confirm the mutation even though it may have been blocked by the authorizer.
|
|
192
190
|
// Authorizer blocking a mutation is not an error but the correct result of the mutation.
|
|
193
|
-
tasks.unshift(() => checkSchemaVersionAndIncrementLastMutationID(tx,
|
|
191
|
+
tasks.unshift(() => checkSchemaVersionAndIncrementLastMutationID(tx, shard, clientGroupID, schemaVersion, mutation.clientID, mutation.id));
|
|
194
192
|
// Note: An error thrown from any Promise aborts the entire transaction.
|
|
195
193
|
await Promise.all(tasks.map(task => task()));
|
|
196
194
|
}
|
|
@@ -225,10 +223,10 @@ function getDeleteSQL(tx, deleteOp) {
|
|
|
225
223
|
}
|
|
226
224
|
return tx `DELETE FROM ${tx(tableName)} WHERE ${conditions}`;
|
|
227
225
|
}
|
|
228
|
-
async function checkSchemaVersionAndIncrementLastMutationID(tx,
|
|
226
|
+
async function checkSchemaVersionAndIncrementLastMutationID(tx, shard, clientGroupID, schemaVersion, clientID, receivedMutationID) {
|
|
229
227
|
const [[{ lastMutationID }], supportedVersionRange] = await Promise.all([
|
|
230
228
|
tx `
|
|
231
|
-
INSERT INTO ${tx(
|
|
229
|
+
INSERT INTO ${tx(upstreamSchema(shard))}.clients
|
|
232
230
|
as current ("clientGroupID", "clientID", "lastMutationID")
|
|
233
231
|
VALUES (${clientGroupID}, ${clientID}, ${1})
|
|
234
232
|
ON CONFLICT ("clientGroupID", "clientID")
|
|
@@ -236,7 +234,7 @@ async function checkSchemaVersionAndIncrementLastMutationID(tx, appID, shardID,
|
|
|
236
234
|
RETURNING "lastMutationID"
|
|
237
235
|
`,
|
|
238
236
|
tx `SELECT "minSupportedVersion", "maxSupportedVersion"
|
|
239
|
-
FROM ${tx(
|
|
237
|
+
FROM ${tx(appSchema(shard))}."schemaVersions"`,
|
|
240
238
|
]);
|
|
241
239
|
// ABORT if the resulting lastMutationID is not equal to the receivedMutationID.
|
|
242
240
|
if (receivedMutationID < lastMutationID) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutagen.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gCAAgC,CAAC;AAExE,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAE5C,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,kDAAkD,CAAC;AAC9E,OAAO,KAAK,YAAY,MAAM,qDAAqD,CAAC;AACpF,OAAO,EACL,qBAAqB,GAEtB,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAON,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AACtD,OAAO,EACL,mBAAmB,GAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAiB,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAC,cAAc,EAAC,MAAM,iCAAiC,CAAC;AAE/D,OAAO,EAAC,8CAA8C,EAAC,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"mutagen.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/mutagen/mutagen.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,16 +8,25 @@ import * as v from '../../../../../shared/src/valita.ts';
|
|
|
8
8
|
import { Database } from '../../../../../zqlite/src/db.ts';
|
|
9
9
|
import { StatementRunner } from '../../../db/statements.ts';
|
|
10
10
|
export declare const ZERO_VERSION_COLUMN_NAME = "_0_version";
|
|
11
|
+
export type RuntimeEvent = 'sync' | 'upgrade' | 'vacuum';
|
|
12
|
+
export declare const CREATE_RUNTIME_EVENTS_TABLE = "\n CREATE TABLE \"_zero.runtimeEvents\" (\n event TEXT PRIMARY KEY ON CONFLICT REPLACE,\n timestamp TEXT NOT NULL DEFAULT (current_timestamp)\n );\n";
|
|
13
|
+
declare const subscriptionStateSchema: v.Type<{
|
|
14
|
+
publications: string[];
|
|
15
|
+
replicaVersion: string;
|
|
16
|
+
watermark: string;
|
|
17
|
+
}>;
|
|
18
|
+
export type SubscriptionState = v.Infer<typeof subscriptionStateSchema>;
|
|
11
19
|
declare const replicationStateSchema: v.ObjectType<{
|
|
12
20
|
stateVersion: v.Type<string>;
|
|
13
21
|
}, undefined>;
|
|
14
22
|
export type ReplicationState = v.Infer<typeof replicationStateSchema>;
|
|
15
23
|
export declare function initReplicationState(db: Database, publications: string[], watermark: string): void;
|
|
16
|
-
export declare function
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
};
|
|
24
|
+
export declare function recordEvent(db: Database, event: RuntimeEvent): void;
|
|
25
|
+
export declare function getAscendingEvents(db: Database): {
|
|
26
|
+
event: string;
|
|
27
|
+
timestamp: Date;
|
|
28
|
+
}[];
|
|
29
|
+
export declare function getSubscriptionState(db: StatementRunner): SubscriptionState;
|
|
21
30
|
export declare function updateReplicationWatermark(db: StatementRunner, watermark: string): void;
|
|
22
31
|
export declare function getReplicationState(db: StatementRunner): ReplicationState;
|
|
23
32
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication-state.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,eAAO,MAAM,wBAAwB,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"replication-state.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,eAAO,MAAM,wBAAwB,eAAe,CAAC;AAErD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAMzD,eAAO,MAAM,2BAA2B,iKAKvC,CAAC;AA+BF,QAAA,MAAM,uBAAuB;;;;EASxB,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,QAAA,MAAM,sBAAsB;;aAE1B,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAEtE,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,QAAQ,EACZ,YAAY,EAAE,MAAM,EAAE,EACtB,SAAS,EAAE,MAAM,QAelB;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,QAM5D;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ;;;IAY9C;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe,GAAG,iBAAiB,CAU3E;AAED,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,eAAe,EACnB,SAAS,EAAE,MAAM,QAGlB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,eAAe,GAAG,gBAAgB,CAGzE"}
|
|
@@ -8,6 +8,16 @@ import * as v from "../../../../../shared/src/valita.js";
|
|
|
8
8
|
import { Database } from "../../../../../zqlite/src/db.js";
|
|
9
9
|
import { StatementRunner } from "../../../db/statements.js";
|
|
10
10
|
export const ZERO_VERSION_COLUMN_NAME = '_0_version';
|
|
11
|
+
// event : The RuntimeEvent. Only one row per event is tracked.
|
|
12
|
+
// Inserting an event will REPLACE any row for the same event.
|
|
13
|
+
// timestamp : SQLite timestamp string, e.g. "2024-04-12 11:37:46".
|
|
14
|
+
// Append a `Z` when parsing with `new Date(...)`;
|
|
15
|
+
export const CREATE_RUNTIME_EVENTS_TABLE = `
|
|
16
|
+
CREATE TABLE "_zero.runtimeEvents" (
|
|
17
|
+
event TEXT PRIMARY KEY ON CONFLICT REPLACE,
|
|
18
|
+
timestamp TEXT NOT NULL DEFAULT (current_timestamp)
|
|
19
|
+
);
|
|
20
|
+
`;
|
|
11
21
|
const CREATE_REPLICATION_STATE_SCHEMA =
|
|
12
22
|
// replicaVersion : A value identifying the version at which the initial sync happened, i.e.
|
|
13
23
|
// the version at which all rows were copied, and to `_0_version` was set.
|
|
@@ -32,7 +42,8 @@ const CREATE_REPLICATION_STATE_SCHEMA =
|
|
|
32
42
|
stateVersion TEXT NOT NULL,
|
|
33
43
|
lock INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
|
|
34
44
|
);
|
|
35
|
-
|
|
45
|
+
` +
|
|
46
|
+
CREATE_RUNTIME_EVENTS_TABLE;
|
|
36
47
|
const stringArray = v.array(v.string());
|
|
37
48
|
const subscriptionStateSchema = v
|
|
38
49
|
.object({
|
|
@@ -56,6 +67,23 @@ export function initReplicationState(db, publications, watermark) {
|
|
|
56
67
|
db.prepare(`
|
|
57
68
|
INSERT INTO "_zero.replicationState" (stateVersion) VALUES (?)
|
|
58
69
|
`).run(watermark);
|
|
70
|
+
recordEvent(db, 'sync');
|
|
71
|
+
}
|
|
72
|
+
export function recordEvent(db, event) {
|
|
73
|
+
db.prepare(`
|
|
74
|
+
INSERT INTO "_zero.runtimeEvents" (event) VALUES (?)
|
|
75
|
+
`).run(event);
|
|
76
|
+
}
|
|
77
|
+
export function getAscendingEvents(db) {
|
|
78
|
+
const result = db
|
|
79
|
+
.prepare(`SELECT event, timestamp FROM "_zero.runtimeEvents"
|
|
80
|
+
ORDER BY timestamp ASC
|
|
81
|
+
`)
|
|
82
|
+
.all();
|
|
83
|
+
return result.map(({ event, timestamp }) => ({
|
|
84
|
+
event,
|
|
85
|
+
timestamp: new Date(timestamp + 'Z'),
|
|
86
|
+
}));
|
|
59
87
|
}
|
|
60
88
|
export function getSubscriptionState(db) {
|
|
61
89
|
const result = db.get(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication-state.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAC,QAAQ,EAAC,MAAM,iCAAiC,CAAC;AACzD,OAAO,EAAC,eAAe,EAAC,MAAM,2BAA2B,CAAC;AAE1D,MAAM,CAAC,MAAM,wBAAwB,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"replication-state.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/replicator/schema/replication-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import type { AST } from '../../../../zero-protocol/src/ast.ts';
|
|
|
4
4
|
import type { Downstream } from '../../../../zero-protocol/src/down.ts';
|
|
5
5
|
import type { JSONObject } from '../../types/bigint-json.ts';
|
|
6
6
|
import { type SchemaVersions } from '../../types/schema-versions.ts';
|
|
7
|
+
import { type ShardID } from '../../types/shards.ts';
|
|
7
8
|
import type { Subscription } from '../../types/subscription.ts';
|
|
8
9
|
import { type CVRVersion, type DelQueryPatch, type NullableCVRVersion, type PutQueryPatch, type RowID } from './schema/types.ts';
|
|
9
10
|
export type PutRowPatch = {
|
|
@@ -38,13 +39,13 @@ export declare class ClientHandler {
|
|
|
38
39
|
#private;
|
|
39
40
|
readonly clientID: string;
|
|
40
41
|
readonly wsID: string;
|
|
41
|
-
constructor(lc: LogContext, clientGroupID: string, clientID: string, wsID: string,
|
|
42
|
+
constructor(lc: LogContext, clientGroupID: string, clientID: string, wsID: string, shard: ShardID, baseCookie: string | null, protocolVersion: number, schemaVersion: number, downstream: Subscription<Downstream>);
|
|
42
43
|
version(): NullableCVRVersion;
|
|
43
44
|
supportsRevisedCookieProtocol(): boolean;
|
|
44
45
|
fail(e: unknown): void;
|
|
45
46
|
close(reason: string): void;
|
|
46
47
|
startPoke(tentativeVersion: CVRVersion, schemaVersions?: SchemaVersions): PokeHandler;
|
|
47
|
-
sendDeleteClients(deletedClientIDs: string[], deletedClientGroupIDs: string[]): void;
|
|
48
|
+
sendDeleteClients(lc: LogContext, deletedClientIDs: string[], deletedClientGroupIDs: string[]): void;
|
|
48
49
|
}
|
|
49
50
|
/**
|
|
50
51
|
* Column values of type INT8 are returned as the `bigint` from the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-handler.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/client-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAEL,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAG9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AAQtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"client-handler.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/client-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAEL,KAAK,UAAU,IAAI,cAAc,EAClC,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAG9D,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,uCAAuC,CAAC;AAQtE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAEL,KAAK,cAAc,EACpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAiB,KAAK,OAAO,EAAC,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAKL,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,KAAK,EACX,MAAM,mBAAmB,CAAC;AAE3B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,KAAK,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;IACV,QAAQ,EAAE,UAAU,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,KAAK,CAAC;IACV,EAAE,EAAE,KAAK,CAAC;CACX,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC;AACpD,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,aAAa,GAAG;IAAC,GAAG,EAAE,GAAG,CAAA;CAAC,CAAC,CAAC;AAEvE,MAAM,MAAM,KAAK,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3C,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,UAAU,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,MAAM,IAAI,IAAI,CAAC;IACf,GAAG,CAAC,YAAY,EAAE,UAAU,GAAG,IAAI,CAAC;CACrC;AAYD;;GAEG;AACH,qBAAa,aAAa;;IAExB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBASpB,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,eAAe,EAAE,MAAM,EACvB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,YAAY,CAAC,UAAU,CAAC;IAatC,OAAO,IAAI,kBAAkB;IAI7B,6BAA6B;IAK7B,IAAI,CAAC,CAAC,EAAE,OAAO;IAQf,KAAK,CAAC,MAAM,EAAE,MAAM;IAKpB,SAAS,CACP,gBAAgB,EAAE,UAAU,EAC5B,cAAc,CAAC,EAAE,cAAc,GAC9B,WAAW;IAkId,iBAAiB,CACf,EAAE,EAAE,UAAU,EACd,gBAAgB,EAAE,MAAM,EAAE,EAC1B,qBAAqB,EAAE,MAAM,EAAE,GAC9B,IAAI;CAiCR;AAmCD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,CAgB9D;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,aAAa,EAAE,WAO3E"}
|
|
@@ -5,6 +5,7 @@ import { rowSchema } from "../../../../zero-protocol/src/data.js";
|
|
|
5
5
|
import { primaryKeyValueRecordSchema } from "../../../../zero-protocol/src/primary-key.js";
|
|
6
6
|
import { getLogLevel } from "../../types/error-for-client.js";
|
|
7
7
|
import { getErrorForClientIfSchemaVersionNotSupported, } from "../../types/schema-versions.js";
|
|
8
|
+
import { upstreamSchema } from "../../types/shards.js";
|
|
8
9
|
import { cmpVersions, cookieToVersion, versionToCookie, versionToNullableCookie, } from "./schema/types.js";
|
|
9
10
|
const NOOP = {
|
|
10
11
|
addPatch: () => { },
|
|
@@ -27,11 +28,11 @@ export class ClientHandler {
|
|
|
27
28
|
#baseVersion;
|
|
28
29
|
#protocolVersion;
|
|
29
30
|
#schemaVersion;
|
|
30
|
-
constructor(lc, clientGroupID, clientID, wsID,
|
|
31
|
+
constructor(lc, clientGroupID, clientID, wsID, shard, baseCookie, protocolVersion, schemaVersion, downstream) {
|
|
31
32
|
this.#clientGroupID = clientGroupID;
|
|
32
33
|
this.clientID = clientID;
|
|
33
34
|
this.wsID = wsID;
|
|
34
|
-
this.#zeroClientsTable = `${
|
|
35
|
+
this.#zeroClientsTable = `${upstreamSchema(shard)}.clients`;
|
|
35
36
|
this.#lc = lc;
|
|
36
37
|
this.#downstream = downstream;
|
|
37
38
|
this.#baseVersion = cookieToVersion(baseCookie);
|
|
@@ -169,7 +170,7 @@ export class ClientHandler {
|
|
|
169
170
|
},
|
|
170
171
|
};
|
|
171
172
|
}
|
|
172
|
-
sendDeleteClients(deletedClientIDs, deletedClientGroupIDs) {
|
|
173
|
+
sendDeleteClients(lc, deletedClientIDs, deletedClientGroupIDs) {
|
|
173
174
|
const deleteClientsBody = {};
|
|
174
175
|
if (deletedClientIDs.length > 0) {
|
|
175
176
|
deleteClientsBody.clientIDs = deletedClientIDs;
|
|
@@ -177,6 +178,7 @@ export class ClientHandler {
|
|
|
177
178
|
if (deletedClientGroupIDs.length > 0) {
|
|
178
179
|
deleteClientsBody.clientGroupIDs = deletedClientGroupIDs;
|
|
179
180
|
}
|
|
181
|
+
lc.debug?.('sending deleteClients', deleteClientsBody);
|
|
180
182
|
this.#downstream.push(['deleteClients', deleteClientsBody]);
|
|
181
183
|
}
|
|
182
184
|
#updateLMIDs(lmids, patch) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-handler.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/client-handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,eAAe,GAEhB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,kCAAkC,CAAC;AAGtD,OAAO,EAAC,SAAS,EAAC,MAAM,uCAAuC,CAAC;AAQhE,OAAO,EAAC,2BAA2B,EAAC,MAAM,8CAA8C,CAAC;AAGzF,OAAO,EAAC,WAAW,EAAC,MAAM,iCAAiC,CAAC;AAC5D,OAAO,EACL,4CAA4C,GAE7C,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"client-handler.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/client-handler.ts"],"names":[],"mappings":"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"}
|