@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,yBAAyB,EAAC,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,MAAM,EAAC,MAAM,yCAAyC,CAAC;AAC/D,OAAO,KAAK,CAAC,MAAM,wCAAwC,CAAC;AAC5D,OAAO,EAAC,OAAO,EAAC,MAAM,kDAAkD,CAAC;
|
|
1
|
+
{"version":3,"file":"shard.js","sourceRoot":"","sources":["../../../../../../../../zero-cache/src/services/change-source/pg/schema/shard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
+
import type { ShardConfig } from '../../../types/shards.ts';
|
|
2
3
|
import { type InitialSyncOptions } from './initial-sync.ts';
|
|
3
|
-
|
|
4
|
-
export declare function initSyncSchema(log: LogContext, debugName: string, appID: string, shard: ShardConfig, dbPath: string, upstreamURI: string, syncOptions: InitialSyncOptions): Promise<void>;
|
|
4
|
+
export declare function initSyncSchema(log: LogContext, debugName: string, shard: ShardConfig, dbPath: string, upstreamURI: string, syncOptions: InitialSyncOptions): Promise<void>;
|
|
5
5
|
//# sourceMappingURL=sync-schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-schema.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/sync-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-schema.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/sync-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAOjD,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAM1D,OAAO,EAAc,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAEvE,wBAAsB,cAAc,CAClC,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { runSchemaMigrations, } from "../../../db/migration-lite.js";
|
|
2
2
|
import { AutoResetSignal } from "../../change-streamer/schema/tables.js";
|
|
3
|
+
import { CREATE_RUNTIME_EVENTS_TABLE, recordEvent, } from "../../replicator/schema/replication-state.js";
|
|
3
4
|
import { initialSync } from "./initial-sync.js";
|
|
4
|
-
export async function initSyncSchema(log, debugName,
|
|
5
|
+
export async function initSyncSchema(log, debugName, shard, dbPath, upstreamURI, syncOptions) {
|
|
5
6
|
const setupMigration = {
|
|
6
|
-
migrateSchema: (log, tx) => initialSync(log,
|
|
7
|
+
migrateSchema: (log, tx) => initialSync(log, shard, tx, upstreamURI, syncOptions),
|
|
7
8
|
minSafeVersion: 1,
|
|
8
9
|
};
|
|
9
10
|
const schemaVersionMigrationMap = {
|
|
@@ -14,6 +15,14 @@ export async function initSyncSchema(log, debugName, appID, shard, dbPath, upstr
|
|
|
14
15
|
},
|
|
15
16
|
minSafeVersion: 3,
|
|
16
17
|
},
|
|
18
|
+
5: {
|
|
19
|
+
migrateSchema: (_, db) => {
|
|
20
|
+
db.exec(CREATE_RUNTIME_EVENTS_TABLE);
|
|
21
|
+
},
|
|
22
|
+
migrateData: (_, db) => {
|
|
23
|
+
recordEvent(db, 'upgrade');
|
|
24
|
+
},
|
|
25
|
+
},
|
|
17
26
|
};
|
|
18
27
|
await runSchemaMigrations(log, debugName, dbPath, setupMigration, schemaVersionMigrationMap);
|
|
19
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-schema.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/sync-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"sync-schema.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-source/pg/sync-schema.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,mBAAmB,GAGpB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAC,eAAe,EAAC,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,2BAA2B,EAC3B,WAAW,GACZ,MAAM,8CAA8C,CAAC;AACtD,OAAO,EAAC,WAAW,EAA0B,MAAM,mBAAmB,CAAC;AAEvE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAe,EACf,SAAiB,EACjB,KAAkB,EAClB,MAAc,EACd,WAAmB,EACnB,WAA+B;IAE/B,MAAM,cAAc,GAAc;QAChC,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CACzB,WAAW,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,CAAC;QACvD,cAAc,EAAE,CAAC;KAClB,CAAC;IAEF,MAAM,yBAAyB,GAA4B;QACzD,oEAAoE;QACpE,CAAC,EAAE;YACD,aAAa,EAAE,GAAG,EAAE;gBAClB,MAAM,IAAI,eAAe,CAAC,iCAAiC,CAAC,CAAC;YAC/D,CAAC;YACD,cAAc,EAAE,CAAC;SAClB;QAED,CAAC,EAAE;YACD,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBACvB,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;YACvC,CAAC;YACD,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE;gBACrB,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;YAC7B,CAAC;SACF;KACF,CAAC;IAEF,MAAM,mBAAmB,CACvB,GAAG,EACH,SAAS,EACT,MAAM,EACN,cAAc,EACd,yBAAyB,CAC1B,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { PostgresDB } from '../../types/pg.ts';
|
|
3
|
+
import type { ShardID } from '../../types/shards.ts';
|
|
3
4
|
import type { Sink, Source } from '../../types/streams.ts';
|
|
4
5
|
import { type ChangeStreamData, type ChangeStreamMessage } from '../change-source/protocol/current/downstream.ts';
|
|
5
6
|
import type { ChangeSourceUpstream } from '../change-source/protocol/current/upstream.ts';
|
|
7
|
+
import type { SubscriptionState } from '../replicator/schema/replication-state.ts';
|
|
6
8
|
import { type ChangeStreamerService } from './change-streamer.ts';
|
|
7
|
-
import { type ReplicationConfig } from './schema/tables.ts';
|
|
8
9
|
/**
|
|
9
10
|
* Performs initialization and schema migrations to initialize a ChangeStreamerImpl.
|
|
10
11
|
*/
|
|
11
|
-
export declare function initializeStreamer(lc: LogContext,
|
|
12
|
+
export declare function initializeStreamer(lc: LogContext, shard: ShardID, taskID: string, changeDB: PostgresDB, changeSource: ChangeSource, subscriptionState: SubscriptionState, autoReset: boolean, setTimeoutFn?: typeof setTimeout): Promise<ChangeStreamerService>;
|
|
12
13
|
/**
|
|
13
14
|
* Internally all Downstream messages (not just commits) are given a watermark.
|
|
14
15
|
* These are used for internal ordering for:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-streamer-service.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/change-streamer-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"change-streamer-service.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/change-streamer-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAQ5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAC,IAAI,EAAE,MAAM,EAAC,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACzB,MAAM,iDAAiD,CAAC;AACzD,OAAO,KAAK,EAAC,oBAAoB,EAAC,MAAM,+CAA+C,CAAC;AACxF,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,2CAA2C,CAAC;AAMjF,OAAO,EACL,KAAK,qBAAqB,EAG3B,MAAM,sBAAsB,CAAC;AAY9B;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,UAAU,EACpB,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,SAAS,EAAE,OAAO,EAClB,YAAY,oBAAa,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAsBhC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAEtE,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAErC;;;;OAIG;IACH,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;CAClC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC5D"}
|
|
@@ -16,12 +16,12 @@ import { Subscriber } from "./subscriber.js";
|
|
|
16
16
|
/**
|
|
17
17
|
* Performs initialization and schema migrations to initialize a ChangeStreamerImpl.
|
|
18
18
|
*/
|
|
19
|
-
export async function initializeStreamer(lc,
|
|
19
|
+
export async function initializeStreamer(lc, shard, taskID, changeDB, changeSource, subscriptionState, autoReset, setTimeoutFn = setTimeout) {
|
|
20
20
|
// Make sure the ChangeLog DB is set up.
|
|
21
|
-
await initChangeStreamerSchema(lc, changeDB,
|
|
22
|
-
await ensureReplicationConfig(lc, changeDB,
|
|
23
|
-
const { replicaVersion } =
|
|
24
|
-
return new ChangeStreamerImpl(lc,
|
|
21
|
+
await initChangeStreamerSchema(lc, changeDB, shard);
|
|
22
|
+
await ensureReplicationConfig(lc, changeDB, subscriptionState, shard, autoReset);
|
|
23
|
+
const { replicaVersion } = subscriptionState;
|
|
24
|
+
return new ChangeStreamerImpl(lc, shard, taskID, changeDB, replicaVersion, changeSource, autoReset, setTimeoutFn);
|
|
25
25
|
}
|
|
26
26
|
/**
|
|
27
27
|
* The maximum time to wait for a serving request before taking
|
|
@@ -169,7 +169,7 @@ const MAX_SERVING_DELAY = 30_000;
|
|
|
169
169
|
class ChangeStreamerImpl {
|
|
170
170
|
id;
|
|
171
171
|
#lc;
|
|
172
|
-
#
|
|
172
|
+
#shard;
|
|
173
173
|
#changeDB;
|
|
174
174
|
#replicaVersion;
|
|
175
175
|
#source;
|
|
@@ -188,14 +188,14 @@ class ChangeStreamerImpl {
|
|
|
188
188
|
// load-balancing / routing logic has begun routing requests to this task.
|
|
189
189
|
#serving = resolver();
|
|
190
190
|
#stream;
|
|
191
|
-
constructor(lc,
|
|
191
|
+
constructor(lc, shard, taskID, changeDB, replicaVersion, source, autoReset, setTimeoutFn = setTimeout) {
|
|
192
192
|
this.id = `change-streamer`;
|
|
193
193
|
this.#lc = lc.withContext('component', 'change-streamer');
|
|
194
|
-
this.#
|
|
194
|
+
this.#shard = shard;
|
|
195
195
|
this.#changeDB = changeDB;
|
|
196
196
|
this.#replicaVersion = replicaVersion;
|
|
197
197
|
this.#source = source;
|
|
198
|
-
this.#storer = new Storer(lc,
|
|
198
|
+
this.#storer = new Storer(lc, shard, taskID, changeDB, replicaVersion, consumed => this.#stream?.acks.push(['status', consumed[1], consumed[2]]), err => this.stop(err));
|
|
199
199
|
this.#forwarder = new Forwarder();
|
|
200
200
|
this.#autoReset = autoReset;
|
|
201
201
|
this.#state = new RunningState(this.id, undefined, setTimeoutFn);
|
|
@@ -267,7 +267,7 @@ class ChangeStreamerImpl {
|
|
|
267
267
|
const { tag } = msg;
|
|
268
268
|
switch (tag) {
|
|
269
269
|
case 'reset-required':
|
|
270
|
-
await markResetRequired(this.#changeDB, this.#
|
|
270
|
+
await markResetRequired(this.#changeDB, this.#shard);
|
|
271
271
|
if (this.#autoReset) {
|
|
272
272
|
this.#lc.warn?.('shutting down for auto-reset');
|
|
273
273
|
await this.stop(new AutoResetSignal());
|
|
@@ -293,7 +293,7 @@ class ChangeStreamerImpl {
|
|
|
293
293
|
else {
|
|
294
294
|
this.#lc.debug?.(`adding subscriber ${subscriber.id}`);
|
|
295
295
|
this.#forwarder.add(subscriber);
|
|
296
|
-
this.#storer.catchup(subscriber);
|
|
296
|
+
this.#storer.catchup(subscriber, mode);
|
|
297
297
|
if (initial) {
|
|
298
298
|
this.#scheduleCleanup(watermark);
|
|
299
299
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-streamer-service.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/change-streamer-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,WAAW,EAAC,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EACL,GAAG,GAGJ,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"change-streamer-service.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/change-streamer-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { PostgresDB } from '../../../types/pg.ts';
|
|
3
|
-
|
|
4
|
-
export declare function
|
|
3
|
+
import { type ShardID } from '../../../types/shards.ts';
|
|
4
|
+
export declare function initChangeStreamerSchema(log: LogContext, db: PostgresDB, shard: ShardID): Promise<void>;
|
|
5
|
+
export declare function getLastWatermarkV2(db: PostgresDB, shard: ShardID): Promise<string>;
|
|
5
6
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAC,UAAU,EAAsB,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,0BAA0B,CAAC;AA6BjE,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,UAAU,EACf,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,IAAI,CAAC,CA0Df;AAED,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,CAajB"}
|
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
import { runSchemaMigrations, } from "../../../db/migration.js";
|
|
2
|
-
import { cdcSchema
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
import { cdcSchema } from "../../../types/shards.js";
|
|
3
|
+
import { createReplicationStateTable, setupCDCTables, } from "./tables.js";
|
|
4
|
+
async function migrateFromLegacySchemas(lc, db, newSchema, ...legacy) {
|
|
5
|
+
const rows = await db `
|
|
6
|
+
SELECT nspname FROM pg_namespace
|
|
7
|
+
WHERE nspname IN ${db([newSchema, ...legacy])}`.values();
|
|
8
|
+
const names = rows.flat();
|
|
9
|
+
if (names.includes(newSchema)) {
|
|
10
|
+
return; // already migrated
|
|
11
|
+
}
|
|
12
|
+
for (const schema of legacy) {
|
|
13
|
+
if (names.includes(schema)) {
|
|
14
|
+
lc.info?.(`Migrating ${schema} to ${newSchema}`);
|
|
15
|
+
await db `ALTER SCHEMA ${db(schema)} RENAME TO ${db(newSchema)}`;
|
|
16
|
+
break;
|
|
17
|
+
}
|
|
8
18
|
}
|
|
9
19
|
}
|
|
10
|
-
export async function initChangeStreamerSchema(log, db,
|
|
11
|
-
const schema = cdcSchema(
|
|
12
|
-
|
|
20
|
+
export async function initChangeStreamerSchema(log, db, shard) {
|
|
21
|
+
const schema = cdcSchema(shard);
|
|
22
|
+
const { appID } = shard;
|
|
23
|
+
await migrateFromLegacySchemas(log, db, schema, appID === 'zero' ? `cdc_0` : `cdc_${appID}`, 'cdc');
|
|
13
24
|
const setupMigration = {
|
|
14
|
-
migrateSchema: (lc, tx) => setupCDCTables(lc, tx,
|
|
25
|
+
migrateSchema: (lc, tx) => setupCDCTables(lc, tx, shard),
|
|
15
26
|
minSafeVersion: 1,
|
|
16
27
|
};
|
|
17
28
|
async function migrateV1toV2(_, db) {
|
|
@@ -20,10 +31,10 @@ export async function initChangeStreamerSchema(log, db, shardID) {
|
|
|
20
31
|
}
|
|
21
32
|
const migrateV2ToV3 = {
|
|
22
33
|
migrateSchema: async (_, db) => {
|
|
23
|
-
await db.unsafe(createReplicationStateTable(
|
|
34
|
+
await db.unsafe(createReplicationStateTable(shard));
|
|
24
35
|
},
|
|
25
36
|
migrateData: async (_, db) => {
|
|
26
|
-
const lastWatermark = await getLastWatermarkV2(db,
|
|
37
|
+
const lastWatermark = await getLastWatermarkV2(db, shard);
|
|
27
38
|
const replicationState = { lastWatermark };
|
|
28
39
|
await db `
|
|
29
40
|
TRUNCATE TABLE ${db(schema)}."replicationState"`;
|
|
@@ -45,8 +56,8 @@ export async function initChangeStreamerSchema(log, db, shardID) {
|
|
|
45
56
|
};
|
|
46
57
|
await runSchemaMigrations(log, 'change-streamer', schema, db, setupMigration, schemaVersionMigrationMap);
|
|
47
58
|
}
|
|
48
|
-
export async function getLastWatermarkV2(db,
|
|
49
|
-
const schema = cdcSchema(
|
|
59
|
+
export async function getLastWatermarkV2(db, shard) {
|
|
60
|
+
const schema = cdcSchema(shard);
|
|
50
61
|
const [{ max }] = await db `
|
|
51
62
|
SELECT MAX(watermark) as max FROM ${db(schema)}."changeLog"`;
|
|
52
63
|
if (max !== null) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"AACA,OAAO,EACL,mBAAmB,GAGpB,MAAM,0BAA0B,CAAC;AAElC,OAAO,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,9 @@ import { LogContext } from '@rocicorp/logger';
|
|
|
2
2
|
import postgres from 'postgres';
|
|
3
3
|
import { AbortError } from '../../../../../shared/src/abort-error.ts';
|
|
4
4
|
import type { PostgresDB } from '../../../types/pg.ts';
|
|
5
|
+
import { type ShardID } from '../../../types/shards.ts';
|
|
5
6
|
import type { Change } from '../../change-source/protocol/current/data.ts';
|
|
6
|
-
|
|
7
|
+
import type { SubscriptionState } from '../../replicator/schema/replication-state.ts';
|
|
7
8
|
export declare const PG_SCHEMA = "cdc";
|
|
8
9
|
export type ChangeLogEntry = {
|
|
9
10
|
watermark: string;
|
|
@@ -17,7 +18,7 @@ export type ReplicationState = {
|
|
|
17
18
|
lastWatermark: string;
|
|
18
19
|
owner: string | null;
|
|
19
20
|
};
|
|
20
|
-
export declare function createReplicationStateTable(
|
|
21
|
+
export declare function createReplicationStateTable(shard: ShardID): string;
|
|
21
22
|
/**
|
|
22
23
|
* This mirrors the analogously named table in the SQLite replica
|
|
23
24
|
* (`services/replicator/schema/replication-state.ts`), and is used
|
|
@@ -28,9 +29,9 @@ export type ReplicationConfig = {
|
|
|
28
29
|
replicaVersion: string;
|
|
29
30
|
publications: readonly string[];
|
|
30
31
|
};
|
|
31
|
-
export declare function setupCDCTables(lc: LogContext, db: postgres.TransactionSql,
|
|
32
|
-
export declare function markResetRequired(db: PostgresDB,
|
|
33
|
-
export declare function ensureReplicationConfig(lc: LogContext, db: PostgresDB,
|
|
32
|
+
export declare function setupCDCTables(lc: LogContext, db: postgres.TransactionSql, shard: ShardID): Promise<void>;
|
|
33
|
+
export declare function markResetRequired(db: PostgresDB, shard: ShardID): Promise<void>;
|
|
34
|
+
export declare function ensureReplicationConfig(lc: LogContext, db: PostgresDB, subscriptionState: SubscriptionState, shard: ShardID, autoReset: boolean): Promise<void>;
|
|
34
35
|
export declare class AutoResetSignal extends AbortError {
|
|
35
36
|
readonly name = "AutoResetSignal";
|
|
36
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAuC,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"tables.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,QAAuC,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AAEpE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,8CAA8C,CAAC;AACzE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8CAA8C,CAAC;AAOpF,eAAO,MAAM,SAAS,QAAQ,CAAC;AAM/B,MAAM,MAAM,cAAc,GAAG;IAG3B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAiBF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,UAQzD;AAED;;;;;GAKG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;CACjC,CAAC;AAsBF,wBAAsB,cAAc,CAClC,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,QAAQ,CAAC,cAAc,EAC3B,KAAK,EAAE,OAAO,iBAIf;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,iBAKrE;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,iBAAiB,EAAE,iBAAiB,EACpC,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,OAAO,iBAuEnB;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,IAAI,qBAAqB;CACnC"}
|
|
@@ -3,23 +3,21 @@ import { ident } from 'pg-format';
|
|
|
3
3
|
import postgres, {} from 'postgres';
|
|
4
4
|
import { AbortError } from "../../../../../shared/src/abort-error.js";
|
|
5
5
|
import { equals } from "../../../../../shared/src/set-utils.js";
|
|
6
|
-
|
|
7
|
-
return `cdc_${shardID}`;
|
|
8
|
-
}
|
|
6
|
+
import { cdcSchema } from "../../../types/shards.js";
|
|
9
7
|
// For readability in the sql statements.
|
|
10
|
-
function schema(
|
|
11
|
-
return ident(cdcSchema(
|
|
8
|
+
function schema(shard) {
|
|
9
|
+
return ident(cdcSchema(shard));
|
|
12
10
|
}
|
|
13
11
|
export const PG_SCHEMA = 'cdc';
|
|
14
|
-
function createSchema(
|
|
15
|
-
return `CREATE SCHEMA IF NOT EXISTS ${schema(
|
|
12
|
+
function createSchema(shard) {
|
|
13
|
+
return `CREATE SCHEMA IF NOT EXISTS ${schema(shard)};`;
|
|
16
14
|
}
|
|
17
|
-
function createChangeLogTable(
|
|
15
|
+
function createChangeLogTable(shard) {
|
|
18
16
|
// Note: The "change" column used to be JSONB, but that was problematic in that
|
|
19
17
|
// it does not handle the NULL unicode character.
|
|
20
18
|
// https://vladimir.varank.in/notes/2021/01/you-dont-insert-unicode-null-character-as-postgres-jsonb/
|
|
21
19
|
return `
|
|
22
|
-
CREATE TABLE ${schema(
|
|
20
|
+
CREATE TABLE ${schema(shard)}."changeLog" (
|
|
23
21
|
watermark TEXT,
|
|
24
22
|
pos INT8,
|
|
25
23
|
change JSON NOT NULL,
|
|
@@ -28,18 +26,18 @@ function createChangeLogTable(shardID) {
|
|
|
28
26
|
);
|
|
29
27
|
`;
|
|
30
28
|
}
|
|
31
|
-
export function createReplicationStateTable(
|
|
29
|
+
export function createReplicationStateTable(shard) {
|
|
32
30
|
return `
|
|
33
|
-
CREATE TABLE ${schema(
|
|
31
|
+
CREATE TABLE ${schema(shard)}."replicationState" (
|
|
34
32
|
"lastWatermark" TEXT NOT NULL,
|
|
35
33
|
"owner" TEXT,
|
|
36
34
|
"lock" INTEGER PRIMARY KEY DEFAULT 1 CHECK (lock=1)
|
|
37
35
|
);
|
|
38
36
|
`;
|
|
39
37
|
}
|
|
40
|
-
function createReplicationConfigTable(
|
|
38
|
+
function createReplicationConfigTable(shard) {
|
|
41
39
|
return `
|
|
42
|
-
CREATE TABLE ${schema(
|
|
40
|
+
CREATE TABLE ${schema(shard)}."replicationConfig" (
|
|
43
41
|
"replicaVersion" TEXT NOT NULL,
|
|
44
42
|
"publications" TEXT[] NOT NULL,
|
|
45
43
|
"resetRequired" BOOL,
|
|
@@ -47,30 +45,29 @@ function createReplicationConfigTable(shardID) {
|
|
|
47
45
|
);
|
|
48
46
|
`;
|
|
49
47
|
}
|
|
50
|
-
function createTables(
|
|
51
|
-
return (createSchema(
|
|
52
|
-
createChangeLogTable(
|
|
53
|
-
createReplicationStateTable(
|
|
54
|
-
createReplicationConfigTable(
|
|
48
|
+
function createTables(shard) {
|
|
49
|
+
return (createSchema(shard) +
|
|
50
|
+
createChangeLogTable(shard) +
|
|
51
|
+
createReplicationStateTable(shard) +
|
|
52
|
+
createReplicationConfigTable(shard));
|
|
55
53
|
}
|
|
56
|
-
export async function setupCDCTables(lc, db,
|
|
54
|
+
export async function setupCDCTables(lc, db, shard) {
|
|
57
55
|
lc.info?.(`Setting up CDC tables`);
|
|
58
|
-
await db.unsafe(createTables(
|
|
56
|
+
await db.unsafe(createTables(shard));
|
|
59
57
|
}
|
|
60
|
-
export async function markResetRequired(db,
|
|
61
|
-
const schema = cdcSchema(
|
|
58
|
+
export async function markResetRequired(db, shard) {
|
|
59
|
+
const schema = cdcSchema(shard);
|
|
62
60
|
await db `
|
|
63
61
|
UPDATE ${db(schema)}."replicationConfig"
|
|
64
62
|
SET "resetRequired" = true`;
|
|
65
63
|
}
|
|
66
|
-
export async function ensureReplicationConfig(lc, db,
|
|
67
|
-
|
|
68
|
-
const { publications, replicaVersion } = config;
|
|
64
|
+
export async function ensureReplicationConfig(lc, db, subscriptionState, shard, autoReset) {
|
|
65
|
+
const { publications, replicaVersion, watermark } = subscriptionState;
|
|
69
66
|
const replicaConfig = { publications, replicaVersion };
|
|
70
67
|
const replicationState = {
|
|
71
68
|
lastWatermark: replicaVersion,
|
|
72
69
|
};
|
|
73
|
-
const schema = cdcSchema(
|
|
70
|
+
const schema = cdcSchema(shard);
|
|
74
71
|
await db.begin(async (tx) => {
|
|
75
72
|
const stmts = [];
|
|
76
73
|
const results = await tx `
|
|
@@ -80,6 +77,11 @@ export async function ensureReplicationConfig(lc, db, config, shardID, autoReset
|
|
|
80
77
|
const { replicaVersion, publications } = results[0];
|
|
81
78
|
if (replicaVersion !== replicaConfig.replicaVersion ||
|
|
82
79
|
!equals(new Set(publications), new Set(replicaConfig.publications))) {
|
|
80
|
+
if (replicaConfig.replicaVersion !== watermark) {
|
|
81
|
+
throw new AutoResetSignal(`Cannot reset change db@${replicaVersion} to ` +
|
|
82
|
+
`service replica@${replicaConfig.replicaVersion} ` +
|
|
83
|
+
`from watermark ${watermark}`);
|
|
84
|
+
}
|
|
83
85
|
lc.info?.(`Data in cdc tables @${replicaVersion} is incompatible ` +
|
|
84
86
|
`with replica @${replicaConfig.replicaVersion}. Clearing tables.`);
|
|
85
87
|
stmts.push(tx `TRUNCATE TABLE ${tx(schema)}."changeLog"`, tx `TRUNCATE TABLE ${tx(schema)}."replicationConfig"`, tx `TRUNCATE TABLE ${tx(schema)}."replicationState"`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,EAAE,EAA6B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AACpE,OAAO,EAAC,MAAM,EAAC,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/change-streamer/schema/tables.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAChC,OAAO,QAAQ,EAAE,EAA6B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AACpE,OAAO,EAAC,MAAM,EAAC,MAAM,wCAAwC,CAAC;AAE9D,OAAO,EAAC,SAAS,EAAe,MAAM,0BAA0B,CAAC;AAIjE,yCAAyC;AACzC,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,CAAC;AAE/B,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,+BAA+B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACzD,CAAC;AASD,SAAS,oBAAoB,CAAC,KAAc;IAC1C,+EAA+E;IAC/E,iDAAiD;IACjD,qGAAqG;IACrG,OAAO;iBACQ,MAAM,CAAC,KAAK,CAAC;;;;;;;CAO7B,CAAC;AACF,CAAC;AAWD,MAAM,UAAU,2BAA2B,CAAC,KAAc;IACxD,OAAO;iBACQ,MAAM,CAAC,KAAK,CAAC;;;;;CAK7B,CAAC;AACF,CAAC;AAaD,SAAS,4BAA4B,CAAC,KAAc;IAClD,OAAO;iBACQ,MAAM,CAAC,KAAK,CAAC;;;;;;CAM7B,CAAC;AACF,CAAC;AAED,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,YAAY,CAAC,KAAK,CAAC;QACnB,oBAAoB,CAAC,KAAK,CAAC;QAC3B,2BAA2B,CAAC,KAAK,CAAC;QAClC,4BAA4B,CAAC,KAAK,CAAC,CACpC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAAc,EACd,EAA2B,EAC3B,KAAc;IAEd,EAAE,CAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,CAAC;IACnC,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EAAc,EAAE,KAAc;IACpE,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAChC,MAAM,EAAE,CAAA;WACC,EAAE,CAAC,MAAM,CAAC;+BACU,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,EAAc,EACd,EAAc,EACd,iBAAoC,EACpC,KAAc,EACd,SAAkB;IAElB,MAAM,EAAC,YAAY,EAAE,cAAc,EAAE,SAAS,EAAC,GAAG,iBAAiB,CAAC;IACpE,MAAM,aAAa,GAAG,EAAC,YAAY,EAAE,cAAc,EAAC,CAAC;IACrD,MAAM,gBAAgB,GAA8B;QAClD,aAAa,EAAE,cAAc;KAC9B,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QACxB,MAAM,KAAK,GAA0B,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,MAAM,EAAE,CAMvB;;aAEQ,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC;QAE1C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,MAAM,EAAC,cAAc,EAAE,YAAY,EAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAClD,IACE,cAAc,KAAK,aAAa,CAAC,cAAc;gBAC/C,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,IAAI,GAAG,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,EACnE,CAAC;gBACD,IAAI,aAAa,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;oBAC/C,MAAM,IAAI,eAAe,CACvB,0BAA0B,cAAc,MAAM;wBAC5C,mBAAmB,aAAa,CAAC,cAAc,GAAG;wBAClD,kBAAkB,SAAS,EAAE,CAChC,CAAC;gBACJ,CAAC;gBACD,EAAE,CAAC,IAAI,EAAE,CACP,uBAAuB,cAAc,mBAAmB;oBACtD,iBAAiB,aAAa,CAAC,cAAc,oBAAoB,CACpE,CAAC;gBACF,KAAK,CAAC,IAAI,CACR,EAAE,CAAA,kBAAkB,EAAE,CAAC,MAAM,CAAC,cAAc,EAC5C,EAAE,CAAA,kBAAkB,EAAE,CAAC,MAAM,CAAC,sBAAsB,EACpD,EAAE,CAAA,kBAAkB,EAAE,CAAC,MAAM,CAAC,qBAAqB,CACpD,CAAC;YACJ,CAAC;QACH,CAAC;QACD,iDAAiD;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7C,KAAK,CAAC,IAAI,CACR,EAAE,CAAA,eAAe,EAAE,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC,aAAa,CAAC,EAAE,EACtE,EAAE,CAAA,eAAe,EAAE,CAAC,MAAM,CAAC;aACtB,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAC5B,CAAC;YACF,OAAO,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,EAAC,aAAa,EAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,eAAe,CAAC,sCAAsC,CAAC,CAAC;YACpE,CAAC;YACD,EAAE,CAAC,KAAK,EAAE,CACR,QAAQ;gBACN,mDAAmD;gBACnD,8EAA8E;gBAC9E,2FAA2F;gBAC3F,QAAQ,CACX,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,OAAO,eAAgB,SAAQ,UAAU;IACpC,IAAI,GAAG,iBAAiB,CAAC;CACnC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { PostgresDB } from '../../types/pg.ts';
|
|
3
|
+
import { type ShardID } from '../../types/shards.ts';
|
|
3
4
|
import { type Commit } from '../change-source/protocol/current/downstream.ts';
|
|
4
5
|
import type { StatusMessage } from '../change-source/protocol/current/status.ts';
|
|
6
|
+
import type { ReplicatorMode } from '../replicator/replicator.ts';
|
|
5
7
|
import type { Service } from '../service.ts';
|
|
6
8
|
import type { WatermarkedChange } from './change-streamer-service.ts';
|
|
7
9
|
import { Subscriber } from './subscriber.ts';
|
|
@@ -38,13 +40,13 @@ import { Subscriber } from './subscriber.ts';
|
|
|
38
40
|
export declare class Storer implements Service {
|
|
39
41
|
#private;
|
|
40
42
|
readonly id = "storer";
|
|
41
|
-
constructor(lc: LogContext,
|
|
43
|
+
constructor(lc: LogContext, shard: ShardID, taskID: string, db: PostgresDB, replicaVersion: string, onConsumed: (c: Commit | StatusMessage) => void, onFatal: (err: Error) => void);
|
|
42
44
|
assumeOwnership(): Promise<void>;
|
|
43
45
|
getLastWatermark(): Promise<string>;
|
|
44
46
|
purgeRecordsBefore(watermark: string): Promise<number>;
|
|
45
47
|
store(entry: WatermarkedChange): void;
|
|
46
48
|
status(s: StatusMessage): void;
|
|
47
|
-
catchup(
|
|
49
|
+
catchup(subscriber: Subscriber, mode: ReplicatorMode): void;
|
|
48
50
|
run(): Promise<void>;
|
|
49
51
|
stop(): Promise<void>;
|
|
50
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAU5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,iDAAiD,CAAC;AAC5E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC/E,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"storer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAU5C,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAY,KAAK,OAAO,EAAC,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAC,KAAK,MAAM,EAAC,MAAM,iDAAiD,CAAC;AAC5E,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,6CAA6C,CAAC;AAC/E,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAChE,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,8BAA8B,CAAC;AAQpE,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAoB3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,MAAO,YAAW,OAAO;;IACpC,QAAQ,CAAC,EAAE,YAAY;gBAWrB,EAAE,EAAE,UAAU,EACd,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,UAAU,EACd,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,KAAK,IAAI,EAC/C,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI;IAgBzB,eAAe;IAMf,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAMnC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU5D,KAAK,CAAC,KAAK,EAAE,iBAAiB;IAI9B,MAAM,CAAC,CAAC,EAAE,aAAa;IAIvB,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,cAAc;IAI9C,GAAG;IA4MT,IAAI;CAIL"}
|