@rocicorp/zero 0.11.2025011802 → 0.11.2025012400
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-3JROCHFI.js → chunk-N57WXYAL.js} +316 -263
- package/out/chunk-N57WXYAL.js.map +7 -0
- package/out/datadog/src/datadog-log-sink.d.ts.map +1 -1
- package/out/react.js +37 -10
- package/out/react.js.map +2 -2
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/request-id.d.ts.map +1 -1
- package/out/shared/src/custom-key-set.d.ts +25 -0
- package/out/shared/src/custom-key-set.d.ts.map +1 -0
- package/out/shared/src/custom-key-set.js +58 -0
- package/out/shared/src/custom-key-set.js.map +1 -0
- package/out/solid.js +1 -1
- package/out/zero/src/zero-cache-dev.d.ts.map +1 -1
- package/out/zero/src/zero-cache-dev.js +10 -0
- package/out/zero/src/zero-cache-dev.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/db/create.js +1 -1
- package/out/zero-cache/src/db/create.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js +8 -10
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts +2 -1
- package/out/zero-cache/src/db/pg-to-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/pg-to-lite.js +6 -8
- package/out/zero-cache/src/db/pg-to-lite.js.map +1 -1
- package/out/zero-cache/src/db/specs.d.ts +2 -1
- package/out/zero-cache/src/db/specs.d.ts.map +1 -1
- package/out/zero-cache/src/db/specs.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 +4 -0
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/server/life-cycle.js +2 -0
- package/out/zero-cache/src/server/life-cycle.js.map +1 -1
- package/out/zero-cache/src/server/logging.js +1 -0
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +7 -3
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/multi/runtime.d.ts.map +1 -1
- package/out/zero-cache/src/server/multi/runtime.js +5 -1
- package/out/zero-cache/src/server/multi/runtime.js.map +1 -1
- 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 +21 -4
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +4 -0
- 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 +16 -5
- 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.js +3 -3
- package/out/zero-cache/src/services/change-source/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +0 -14
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/sync-dispatcher.d.ts +1 -1
- package/out/zero-cache/src/services/dispatcher/sync-dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/sync-dispatcher.js +9 -2
- package/out/zero-cache/src/services/dispatcher/sync-dispatcher.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +16 -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 +73 -26
- 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 +2 -2
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +24 -4
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/key-columns.d.ts +32 -0
- package/out/zero-cache/src/services/view-syncer/key-columns.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/key-columns.js +73 -0
- package/out/zero-cache/src/services/view-syncer/key-columns.js.map +1 -0
- package/out/zero-cache/src/types/error-for-client.d.ts +3 -1
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +27 -8
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +24 -12
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +0 -4
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-client/src/client/server-error.d.ts +2 -2
- package/out/zero-client/src/client/server-error.d.ts.map +1 -1
- package/out/zero-client/src/client/server-option.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +1 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +7 -3
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts +24 -24
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +23 -1
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.d.ts +4 -0
- package/out/zero-protocol/src/error-kind-enum.d.ts.map +1 -1
- package/out/zero-protocol/src/error-kind-enum.js +2 -0
- package/out/zero-protocol/src/error-kind-enum.js.map +1 -1
- package/out/zero-protocol/src/error.d.ts +8 -5
- package/out/zero-protocol/src/error.d.ts.map +1 -1
- package/out/zero-protocol/src/error.js +15 -5
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.js +1 -1
- package/out/zero-react/src/use-query.d.ts +60 -3
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.d.ts +10 -3
- package/out/zero-schema/src/builder/schema-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/schema-builder.js +11 -5
- package/out/zero-schema/src/builder/schema-builder.js.map +1 -1
- package/out/zero-schema/src/permissions.d.ts +4 -5
- package/out/zero-schema/src/permissions.d.ts.map +1 -1
- package/out/zero-schema/src/table-schema.d.ts +2 -2
- package/out/zero-schema/src/table-schema.d.ts.map +1 -1
- package/out/zero.js +1 -1
- package/out/zql/src/builder/builder.d.ts +1 -1
- package/out/zql/src/builder/builder.d.ts.map +1 -1
- package/out/zql/src/builder/builder.js +18 -25
- package/out/zql/src/builder/builder.js.map +1 -1
- package/out/zql/src/ivm/filter-push.d.ts +5 -0
- package/out/zql/src/ivm/filter-push.d.ts.map +1 -0
- package/out/zql/src/ivm/filter-push.js +27 -0
- package/out/zql/src/ivm/filter-push.js.map +1 -0
- package/out/zql/src/ivm/filter.d.ts +1 -7
- package/out/zql/src/ivm/filter.d.ts.map +1 -1
- package/out/zql/src/ivm/filter.js +4 -24
- package/out/zql/src/ivm/filter.js.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +1 -1
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +6 -5
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/source.d.ts +3 -3
- package/out/zql/src/ivm/source.d.ts.map +1 -1
- package/out/zql/src/query/expression.d.ts +3 -3
- package/out/zql/src/query/expression.d.ts.map +1 -1
- package/out/zql/src/query/expression.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +2 -2
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +4 -3
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zqlite/src/db.d.ts +9 -1
- package/out/zqlite/src/db.d.ts.map +1 -1
- package/out/zqlite/src/db.js +20 -5
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +4 -4
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +18 -13
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +2 -2
- package/out/chunk-3JROCHFI.js.map +0 -7
|
@@ -58,20 +58,6 @@ export class Storer {
|
|
|
58
58
|
return result[0].max;
|
|
59
59
|
}
|
|
60
60
|
async purgeRecordsBefore(watermark) {
|
|
61
|
-
// This is a sanity check to guarantee the invariant of the "changeLog"
|
|
62
|
-
// that it always contains at least one entry (from which catchup can proceed),
|
|
63
|
-
// unless no replication changes have flowed through the system
|
|
64
|
-
// (i.e. watermark === replicaVersion).
|
|
65
|
-
const exists = await this.#db `
|
|
66
|
-
SELECT watermark FROM cdc."changeLog" WHERE watermark = ${watermark}`;
|
|
67
|
-
// Watermark boundaries should always be "commit" entries, which are the sole
|
|
68
|
-
// entry with that watermark (i.e. exists.length === 1). It follows that
|
|
69
|
-
// catchup, which proceeds from the next entry, always starts with a
|
|
70
|
-
// "begin" entry.
|
|
71
|
-
if (exists.length !== 1 && watermark !== this.#replicaVersion) {
|
|
72
|
-
this.#lc.warn?.(`rejecting attempted to purge up to watermark ${watermark} with ${exists.length} entries`);
|
|
73
|
-
return 0;
|
|
74
|
-
}
|
|
75
61
|
const result = await this.#db `
|
|
76
62
|
WITH purged AS (
|
|
77
63
|
DELETE FROM cdc."changeLog" WHERE watermark < ${watermark}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,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;AAI5E,OAAO,EAAkB,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAa3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,OAAO,MAAM;IACR,EAAE,GAAG,QAAQ,CAAC;IACd,GAAG,CAAa;IAChB,GAAG,CAAa;IAChB,eAAe,CAAS;IACxB,WAAW,CAAsC;IACjD,MAAM,GAAG,IAAI,KAAK,EAAc,CAAC;IACjC,OAAO,GAAG,QAAQ,EAAS,CAAC;IAErC,YACE,EAAc,EACd,EAAc,EACd,cAAsB,EACtB,UAA+C;QAE/C,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;QACd,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAE5B,mDAAmD,CAAC;QACrD,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QACxC,
|
|
1
|
+
{"version":3,"file":"storer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/storer.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { HttpService, type Options } from '../http-service.js';
|
|
|
4
4
|
export declare class SyncDispatcher extends HttpService {
|
|
5
5
|
#private;
|
|
6
6
|
readonly id = "dispatcher";
|
|
7
|
-
constructor(lc: LogContext, parent: Worker | null, syncers: Worker[], opts: Options);
|
|
7
|
+
constructor(lc: LogContext, taskID: string, parent: Worker | null, syncers: Worker[], opts: Options);
|
|
8
8
|
}
|
|
9
9
|
export declare function parseSyncPath(url: URL): {
|
|
10
10
|
base?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/sync-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAI5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,WAAW,EAAE,KAAK,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAQ7D,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;
|
|
1
|
+
{"version":3,"file":"sync-dispatcher.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/sync-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAI5C,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAC,WAAW,EAAE,KAAK,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAQ7D,qBAAa,cAAe,SAAQ,WAAW;;IAC7C,QAAQ,CAAC,EAAE,gBAAgB;gBAKzB,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,OAAO;CAyChB;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,GACP;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,GAAG,SAAS,CAG9C"}
|
|
@@ -9,12 +9,14 @@ import { installWebSocketHandoff } from './websocket-handoff.js';
|
|
|
9
9
|
const CONNECT_URL_PATTERN = new UrlPattern('(/:base)/sync/v:version/connect');
|
|
10
10
|
export class SyncDispatcher extends HttpService {
|
|
11
11
|
id = 'dispatcher';
|
|
12
|
+
#taskID;
|
|
12
13
|
#syncers;
|
|
13
|
-
constructor(lc, parent, syncers, opts) {
|
|
14
|
+
constructor(lc, taskID, parent, syncers, opts) {
|
|
14
15
|
super('dispatcher', lc, opts, fastify => {
|
|
15
16
|
fastify.get('/', (_req, res) => res.send('OK'));
|
|
16
17
|
installWebSocketHandoff(lc, req => this.#handoff(req), fastify.server);
|
|
17
18
|
});
|
|
19
|
+
this.#taskID = taskID;
|
|
18
20
|
this.#syncers = syncers;
|
|
19
21
|
if (parent) {
|
|
20
22
|
installWebSocketHandoff(lc, req => this.#handoff(req), parent);
|
|
@@ -36,7 +38,12 @@ export class SyncDispatcher extends HttpService {
|
|
|
36
38
|
throw new Error(error);
|
|
37
39
|
}
|
|
38
40
|
const { clientGroupID } = params;
|
|
39
|
-
|
|
41
|
+
// Include the TaskID when hash-bucketting the client group to the sync
|
|
42
|
+
// worker. This diversifies the distribution of client groups (across
|
|
43
|
+
// workers) for different tasks, so that if one task sheds connections
|
|
44
|
+
// from its most heavily loaded sync worker(s), those client groups will
|
|
45
|
+
// be distributed uniformly across workers on the receiving task(s).
|
|
46
|
+
const syncer = h32(this.#taskID + '/' + clientGroupID) % this.#syncers.length;
|
|
40
47
|
this._lc.debug?.(`connecting ${clientGroupID} to syncer ${syncer}`);
|
|
41
48
|
return { payload: params, receiver: this.#syncers[syncer] };
|
|
42
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/sync-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAC5C,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAC,GAAG,EAAC,MAAM,gCAAgC,CAAC;AAGnD,OAAO,EAAC,WAAW,EAAe,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAC,uBAAuB,EAAC,MAAM,wBAAwB,CAAC;AAE/D,qEAAqE;AACrE,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,IAAI,UAAU,CAAC,iCAAiC,CAAC,CAAC;AAE9E,MAAM,OAAO,cAAe,SAAQ,WAAW;IACpC,EAAE,GAAG,YAAY,CAAC;IAClB,QAAQ,CAAW;IAE5B,YACE,EAAc,EACd,MAAqB,EACrB,OAAiB,EACjB,IAAa;QAEb,KAAK,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE;YACtC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAChD,uBAAuB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,MAAM,EAAE,CAAC;YACX,uBAAuB,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,GAA0B;QACjC,MAAM,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAC,GAAG,GAAG,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,gBAAgB,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,EAAC,MAAM,EAAE,KAAK,EAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAChE,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,MAAM,EAAC,aAAa,EAAC,GAAG,MAAM,CAAC;QAC/B,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"sync-dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/sync-dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,8 +20,23 @@ export declare class CVRStore {
|
|
|
20
20
|
setTimeoutFn?: typeof setTimeout);
|
|
21
21
|
load(lc: LogContext, lastConnectTime: number): Promise<CVR>;
|
|
22
22
|
getRowRecords(): Promise<ReadonlyMap<RowID, RowRecord>>;
|
|
23
|
-
getPendingRowRecord(id: RowID): RowRecord | undefined;
|
|
24
23
|
putRowRecord(row: RowRecord): void;
|
|
24
|
+
/**
|
|
25
|
+
* Note: Removing a row from the CVR should be represented by a
|
|
26
|
+
* {@link putRowRecord()} with `refCounts: null` in order to properly
|
|
27
|
+
* produce the appropriate delete patch when catching up old clients.
|
|
28
|
+
*
|
|
29
|
+
* This `delRowRecord()` method, on the other hand, is only used when a
|
|
30
|
+
* row record is being *replaced* by another RowRecord, which currently
|
|
31
|
+
* only happens when the columns of the row key change.
|
|
32
|
+
*/
|
|
33
|
+
delRowRecord(id: RowID): void;
|
|
34
|
+
/**
|
|
35
|
+
* Overrides the default logic that removes no-op writes and forces
|
|
36
|
+
* the updates for the given row `ids`. This has no effect if there
|
|
37
|
+
* are no corresponding puts or dels for the associated row records.
|
|
38
|
+
*/
|
|
39
|
+
forceUpdates(...ids: RowID[]): void;
|
|
25
40
|
putInstance({ version, replicaVersion, lastActive, }: Pick<CVRSnapshot, 'version' | 'replicaVersion' | 'lastActive'>): void;
|
|
26
41
|
markQueryAsDeleted(version: CVRVersion, queryPatch: QueryPatch): void;
|
|
27
42
|
putQuery(query: QueryRecord): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr-store.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"cvr-store.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { startAsyncSpan } from '../../../../otel/src/span.js';
|
|
|
4
4
|
import { version } from '../../../../otel/src/version.js';
|
|
5
5
|
import { assert } from '../../../../shared/src/asserts.js';
|
|
6
6
|
import { CustomKeyMap } from '../../../../shared/src/custom-key-map.js';
|
|
7
|
+
import { CustomKeySet } from '../../../../shared/src/custom-key-set.js';
|
|
7
8
|
import { deepEqual, } from '../../../../shared/src/json.js';
|
|
8
9
|
import { must } from '../../../../shared/src/must.js';
|
|
9
10
|
import { promiseVoid } from '../../../../shared/src/resolved-promises.js';
|
|
@@ -131,15 +132,15 @@ class RowRecordCache {
|
|
|
131
132
|
*/
|
|
132
133
|
async apply(rowRecords, rowsVersion, flushed) {
|
|
133
134
|
const cache = await this.#ensureLoaded();
|
|
134
|
-
for (const row of rowRecords) {
|
|
135
|
-
if (row.refCounts === null) {
|
|
136
|
-
cache.delete(
|
|
135
|
+
for (const [id, row] of rowRecords.entries()) {
|
|
136
|
+
if (row === null || row.refCounts === null) {
|
|
137
|
+
cache.delete(id);
|
|
137
138
|
}
|
|
138
139
|
else {
|
|
139
|
-
cache.set(
|
|
140
|
+
cache.set(id, row);
|
|
140
141
|
}
|
|
141
142
|
if (!flushed) {
|
|
142
|
-
this.#pending.set(
|
|
143
|
+
this.#pending.set(id, row);
|
|
143
144
|
}
|
|
144
145
|
}
|
|
145
146
|
this.#pendingRowsVersion = rowsVersion;
|
|
@@ -159,7 +160,7 @@ class RowRecordCache {
|
|
|
159
160
|
// #pendingRowsVersion is consistent with the #pending rows.
|
|
160
161
|
const rows = this.#pending.size;
|
|
161
162
|
const rowsVersion = must(this.#pendingRowsVersion);
|
|
162
|
-
this.executeRowUpdates(tx, rowsVersion,
|
|
163
|
+
this.executeRowUpdates(tx, rowsVersion, this.#pending, 'force');
|
|
163
164
|
this.#pending.clear();
|
|
164
165
|
return { rows, rowsVersion };
|
|
165
166
|
});
|
|
@@ -237,15 +238,14 @@ class RowRecordCache {
|
|
|
237
238
|
const totalMs = Date.now() - startMs;
|
|
238
239
|
lc.debug?.(`finished row catchup (flush: ${flushMs} ms, total: ${totalMs} ms)`);
|
|
239
240
|
}
|
|
240
|
-
executeRowUpdates(tx, version,
|
|
241
|
+
executeRowUpdates(tx, version, rowUpdates, mode) {
|
|
241
242
|
if (mode === 'allow-defer' &&
|
|
242
243
|
// defer if pending rows are being flushed
|
|
243
244
|
(this.#flushing !== null ||
|
|
244
245
|
// or if the new batch is above the limit.
|
|
245
|
-
|
|
246
|
+
rowUpdates.size > this.#deferredRowFlushThreshold)) {
|
|
246
247
|
return [];
|
|
247
248
|
}
|
|
248
|
-
const rowRecordRows = rowRecordsToFlush.map(r => rowRecordToRowsRow(this.#cvrID, r));
|
|
249
249
|
const rowsVersion = {
|
|
250
250
|
clientGroupID: this.#cvrID,
|
|
251
251
|
version: versionString(version),
|
|
@@ -255,6 +255,21 @@ class RowRecordCache {
|
|
|
255
255
|
ON CONFLICT ("clientGroupID")
|
|
256
256
|
DO UPDATE SET ${tx(rowsVersion)}`.execute(),
|
|
257
257
|
];
|
|
258
|
+
const rowRecordRows = [];
|
|
259
|
+
for (const [id, row] of rowUpdates.entries()) {
|
|
260
|
+
if (row === null) {
|
|
261
|
+
pending.push(tx `
|
|
262
|
+
DELETE FROM cvr.rows
|
|
263
|
+
WHERE "clientGroupID" = ${this.#cvrID}
|
|
264
|
+
AND "schema" = ${id.schema}
|
|
265
|
+
AND "table" = ${id.table}
|
|
266
|
+
AND "rowKey" = ${id.rowKey}
|
|
267
|
+
`.execute());
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
rowRecordRows.push(rowRecordToRowsRow(this.#cvrID, row));
|
|
271
|
+
}
|
|
272
|
+
}
|
|
258
273
|
if (rowRecordRows.length) {
|
|
259
274
|
pending.push(tx `
|
|
260
275
|
INSERT INTO cvr.rows(
|
|
@@ -274,7 +289,7 @@ class RowRecordCache {
|
|
|
274
289
|
"patchVersion" = excluded."patchVersion",
|
|
275
290
|
"refCounts" = excluded."refCounts"
|
|
276
291
|
`.execute());
|
|
277
|
-
this.#lc.debug?.(`flushing ${rowRecordRows.length}
|
|
292
|
+
this.#lc.debug?.(`flushing ${rowUpdates.size} rows (${rowRecordRows.length} inserts, ${rowUpdates.size - rowRecordRows.length} deletes)`);
|
|
278
293
|
}
|
|
279
294
|
return pending;
|
|
280
295
|
}
|
|
@@ -313,7 +328,8 @@ export class CVRStore {
|
|
|
313
328
|
#id;
|
|
314
329
|
#db;
|
|
315
330
|
#writes = new Set();
|
|
316
|
-
#
|
|
331
|
+
#pendingRowRecordUpdates = new CustomKeyMap(rowIDString);
|
|
332
|
+
#forceUpdates = new CustomKeySet(rowIDString);
|
|
317
333
|
#rowCache;
|
|
318
334
|
#loadAttemptIntervalMs;
|
|
319
335
|
#maxLoadAttempts;
|
|
@@ -443,11 +459,30 @@ export class CVRStore {
|
|
|
443
459
|
getRowRecords() {
|
|
444
460
|
return this.#rowCache.getRowRecords();
|
|
445
461
|
}
|
|
446
|
-
getPendingRowRecord(id) {
|
|
447
|
-
return this.#pendingRowRecordPuts.get(id);
|
|
448
|
-
}
|
|
449
462
|
putRowRecord(row) {
|
|
450
|
-
this.#
|
|
463
|
+
this.#pendingRowRecordUpdates.set(row.id, row);
|
|
464
|
+
}
|
|
465
|
+
/**
|
|
466
|
+
* Note: Removing a row from the CVR should be represented by a
|
|
467
|
+
* {@link putRowRecord()} with `refCounts: null` in order to properly
|
|
468
|
+
* produce the appropriate delete patch when catching up old clients.
|
|
469
|
+
*
|
|
470
|
+
* This `delRowRecord()` method, on the other hand, is only used when a
|
|
471
|
+
* row record is being *replaced* by another RowRecord, which currently
|
|
472
|
+
* only happens when the columns of the row key change.
|
|
473
|
+
*/
|
|
474
|
+
delRowRecord(id) {
|
|
475
|
+
this.#pendingRowRecordUpdates.set(id, null);
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* Overrides the default logic that removes no-op writes and forces
|
|
479
|
+
* the updates for the given row `ids`. This has no effect if there
|
|
480
|
+
* are no corresponding puts or dels for the associated row records.
|
|
481
|
+
*/
|
|
482
|
+
forceUpdates(...ids) {
|
|
483
|
+
for (const id of ids) {
|
|
484
|
+
this.#forceUpdates.add(id);
|
|
485
|
+
}
|
|
451
486
|
}
|
|
452
487
|
putInstance({ version, replicaVersion, lastActive, }) {
|
|
453
488
|
this.#writes.add({
|
|
@@ -654,12 +689,22 @@ export class CVRStore {
|
|
|
654
689
|
rowsDeferred: 0,
|
|
655
690
|
statements: 0,
|
|
656
691
|
};
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
const
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
692
|
+
if (this.#pendingRowRecordUpdates.size) {
|
|
693
|
+
const existingRowRecords = await this.getRowRecords();
|
|
694
|
+
for (const [id, row] of this.#pendingRowRecordUpdates.entries()) {
|
|
695
|
+
if (this.#forceUpdates.has(id)) {
|
|
696
|
+
continue;
|
|
697
|
+
}
|
|
698
|
+
const existing = existingRowRecords.get(id);
|
|
699
|
+
if (
|
|
700
|
+
// Don't delete or add an unreferenced row if it's not in the CVR.
|
|
701
|
+
(existing === undefined && !row?.refCounts) ||
|
|
702
|
+
// Don't write a row record that exactly matches what's in the CVR.
|
|
703
|
+
deepEqual((row ?? undefined), existing)) {
|
|
704
|
+
this.#pendingRowRecordUpdates.delete(id);
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
}
|
|
663
708
|
const rowsFlushed = await this.#db.begin(async (tx) => {
|
|
664
709
|
const pipelined = [
|
|
665
710
|
// #checkVersionAndOwnership() executes a `SELECT ... FOR UPDATE`
|
|
@@ -676,23 +721,24 @@ export class CVRStore {
|
|
|
676
721
|
stats.queries += write.stats.queries ?? 0;
|
|
677
722
|
stats.desires += write.stats.desires ?? 0;
|
|
678
723
|
stats.clients += write.stats.clients ?? 0;
|
|
724
|
+
stats.rows += write.stats.rows ?? 0;
|
|
679
725
|
pipelined.push(write.write(tx, lastConnectTime).execute());
|
|
680
726
|
stats.statements++;
|
|
681
727
|
}
|
|
682
|
-
const rowUpdates = this.#rowCache.executeRowUpdates(tx, newVersion,
|
|
728
|
+
const rowUpdates = this.#rowCache.executeRowUpdates(tx, newVersion, this.#pendingRowRecordUpdates, 'allow-defer');
|
|
683
729
|
pipelined.push(...rowUpdates);
|
|
684
730
|
stats.statements += rowUpdates.length;
|
|
685
731
|
// Make sure Errors thrown by pipelined statements
|
|
686
732
|
// are propagated up the stack.
|
|
687
733
|
await Promise.all(pipelined);
|
|
688
734
|
if (rowUpdates.length === 0) {
|
|
689
|
-
stats.rowsDeferred =
|
|
735
|
+
stats.rowsDeferred = this.#pendingRowRecordUpdates.size;
|
|
690
736
|
return false;
|
|
691
737
|
}
|
|
692
|
-
stats.rows
|
|
738
|
+
stats.rows += this.#pendingRowRecordUpdates.size;
|
|
693
739
|
return true;
|
|
694
740
|
});
|
|
695
|
-
await this.#rowCache.apply(
|
|
741
|
+
await this.#rowCache.apply(this.#pendingRowRecordUpdates, newVersion, rowsFlushed);
|
|
696
742
|
return stats;
|
|
697
743
|
}
|
|
698
744
|
async flush(expectedCurrentVersion, newVersion, lastConnectTime) {
|
|
@@ -706,7 +752,8 @@ export class CVRStore {
|
|
|
706
752
|
}
|
|
707
753
|
finally {
|
|
708
754
|
this.#writes.clear();
|
|
709
|
-
this.#
|
|
755
|
+
this.#pendingRowRecordUpdates.clear();
|
|
756
|
+
this.#forceUpdates.clear();
|
|
710
757
|
}
|
|
711
758
|
}
|
|
712
759
|
hasPendingUpdates() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr-store.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cvr-store.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { AST } from '../../../../zero-protocol/src/ast.js';
|
|
3
|
-
import type
|
|
3
|
+
import { type JSONObject } from '../../types/bigint-json.js';
|
|
4
4
|
import type { LexiVersion } from '../../types/lexi-version.js';
|
|
5
5
|
import type { PatchToVersion } from './client-handler.js';
|
|
6
6
|
import type { CVRFlushStats, CVRStore } from './cvr-store.js';
|
|
@@ -135,7 +135,7 @@ export declare class CVRQueryDrivenUpdater extends CVRUpdater {
|
|
|
135
135
|
* returns (put) patches to be returned to update their state, versioned by
|
|
136
136
|
* patchVersion so that only the patches new to the clients are sent.
|
|
137
137
|
*/
|
|
138
|
-
received(
|
|
138
|
+
received(lc: LogContext, rows: Map<RowID, RowUpdate>): Promise<PatchToVersion[]>;
|
|
139
139
|
/**
|
|
140
140
|
* Computes and updates the row records based on:
|
|
141
141
|
* * The {@link #executed} queries
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AASjD,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,sCAAsC,CAAC;AAC9D,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,10 @@ import { compareUTF8 } from 'compare-utf8';
|
|
|
2
2
|
import { assert } from '../../../../shared/src/asserts.js';
|
|
3
3
|
import { CustomKeyMap } from '../../../../shared/src/custom-key-map.js';
|
|
4
4
|
import { difference, intersection, union, } from '../../../../shared/src/set-utils.js';
|
|
5
|
+
import { stringify } from '../../types/bigint-json.js';
|
|
5
6
|
import { rowIDString } from '../../types/row-key.js';
|
|
6
7
|
import { unescapedSchema as schema } from '../change-source/pg/schema/shard.js';
|
|
8
|
+
import { KeyColumns } from './key-columns.js';
|
|
7
9
|
import { cmpVersions, oneAfter, versionString, } from './schema/types.js';
|
|
8
10
|
const CLIENT_LMID_QUERY_ID = 'lmids';
|
|
9
11
|
function assertNotInternal(query) {
|
|
@@ -204,6 +206,7 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
|
|
|
204
206
|
export class CVRQueryDrivenUpdater extends CVRUpdater {
|
|
205
207
|
#removedOrExecutedQueryIDs = new Set();
|
|
206
208
|
#receivedRows = new CustomKeyMap(rowIDString);
|
|
209
|
+
#replacedRows = new CustomKeyMap(rowIDString);
|
|
207
210
|
#existingRows = undefined;
|
|
208
211
|
/**
|
|
209
212
|
* @param stateVersion The `stateVersion` at which the queries were executed.
|
|
@@ -337,18 +340,35 @@ export class CVRQueryDrivenUpdater extends CVRUpdater {
|
|
|
337
340
|
updatedVersion() {
|
|
338
341
|
return this._cvr.version;
|
|
339
342
|
}
|
|
343
|
+
#keyColumns;
|
|
340
344
|
/**
|
|
341
345
|
* Tracks rows received from executing queries. This will update row records
|
|
342
346
|
* and row patches if the received rows have a new version. The method also
|
|
343
347
|
* returns (put) patches to be returned to update their state, versioned by
|
|
344
348
|
* patchVersion so that only the patches new to the clients are sent.
|
|
345
349
|
*/
|
|
346
|
-
async received(
|
|
350
|
+
async received(lc, rows) {
|
|
347
351
|
const patches = [];
|
|
348
352
|
const existingRows = await this._cvrStore.getRowRecords();
|
|
353
|
+
this.#keyColumns ??= new KeyColumns(existingRows.values());
|
|
349
354
|
for (const [id, update] of rows.entries()) {
|
|
350
355
|
const { contents, version, refCounts } = update;
|
|
351
|
-
|
|
356
|
+
let existing = existingRows.get(id);
|
|
357
|
+
if (!existing && contents) {
|
|
358
|
+
// See if the row being put is referenced in the CVR using a different ID.
|
|
359
|
+
const oldID = this.#keyColumns.getOldRowID(id, contents);
|
|
360
|
+
if (oldID) {
|
|
361
|
+
existing = existingRows.get(oldID);
|
|
362
|
+
if (existing && !this.#replacedRows.get(oldID)) {
|
|
363
|
+
lc.debug?.(`replacing ${stringify(oldID)} with ${stringify(id)}`);
|
|
364
|
+
this.#replacedRows.set(oldID, true);
|
|
365
|
+
this._cvrStore.delRowRecord(oldID);
|
|
366
|
+
// Force the updates for these rows to happen, even if they look like
|
|
367
|
+
// no-ops on their own.
|
|
368
|
+
this._cvrStore.forceUpdates(oldID, id);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
352
372
|
// Accumulate all received refCounts to determine which rows to prune.
|
|
353
373
|
const previouslyReceived = this.#receivedRows.get(id);
|
|
354
374
|
const merged = previouslyReceived !== undefined
|
|
@@ -430,8 +450,8 @@ export class CVRQueryDrivenUpdater extends CVRUpdater {
|
|
|
430
450
|
return patches;
|
|
431
451
|
}
|
|
432
452
|
#deleteUnreferencedRow(existing) {
|
|
433
|
-
|
|
434
|
-
|
|
453
|
+
if (this.#receivedRows.get(existing.id) ||
|
|
454
|
+
this.#replacedRows.get(existing.id)) {
|
|
435
455
|
return null;
|
|
436
456
|
}
|
|
437
457
|
const newRefCounts = mergeRefCounts(existing.refCounts, undefined, this.#removedOrExecutedQueryIDs);
|