@rocicorp/zero 0.16.2025021700 → 0.16.2025021801

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.
Files changed (72) hide show
  1. package/out/{chunk-LNUSK2ZZ.js → chunk-X7ACPYAD.js} +88 -97
  2. package/out/{chunk-LNUSK2ZZ.js.map → chunk-X7ACPYAD.js.map} +4 -4
  3. package/out/solid.js +1 -1
  4. package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
  5. package/out/zero-cache/src/services/change-source/pg/change-source.js +10 -5
  6. package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
  7. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +2 -2
  8. package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
  9. package/out/zero-cache/src/services/view-syncer/client-handler.js +0 -3
  10. package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -1
  11. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +12 -4
  12. package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +1 -1
  13. package/out/zero-cache/src/services/view-syncer/cvr-store.js +24 -320
  14. package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
  15. package/out/zero-cache/src/services/view-syncer/cvr.d.ts +1 -0
  16. package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
  17. package/out/zero-cache/src/services/view-syncer/cvr.js +23 -23
  18. package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
  19. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +87 -0
  20. package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +1 -0
  21. package/out/zero-cache/src/services/view-syncer/row-record-cache.js +294 -0
  22. package/out/zero-cache/src/services/view-syncer/row-record-cache.js.map +1 -0
  23. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +5 -0
  24. package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
  25. package/out/zero-cache/src/services/view-syncer/schema/cvr.js +12 -2
  26. package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
  27. package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
  28. package/out/zero-cache/src/services/view-syncer/schema/init.js +12 -2
  29. package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
  30. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +24 -66
  31. package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
  32. package/out/zero-cache/src/services/view-syncer/schema/types.js +24 -12
  33. package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
  34. package/out/zero-client/src/client/context.d.ts +2 -2
  35. package/out/zero-client/src/client/context.d.ts.map +1 -1
  36. package/out/zero-client/src/client/keys.d.ts +0 -3
  37. package/out/zero-client/src/client/keys.d.ts.map +1 -1
  38. package/out/zero-client/src/client/query-manager.d.ts +1 -1
  39. package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
  40. package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
  41. package/out/zero-client/src/client/zero.d.ts +1 -1
  42. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  43. package/out/zero-protocol/src/change-desired-queries.d.ts +2 -0
  44. package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
  45. package/out/zero-protocol/src/connect.d.ts +2 -0
  46. package/out/zero-protocol/src/connect.d.ts.map +1 -1
  47. package/out/zero-protocol/src/down.d.ts +2 -9
  48. package/out/zero-protocol/src/down.d.ts.map +1 -1
  49. package/out/zero-protocol/src/poke.d.ts +4 -18
  50. package/out/zero-protocol/src/poke.d.ts.map +1 -1
  51. package/out/zero-protocol/src/poke.js +0 -4
  52. package/out/zero-protocol/src/poke.js.map +1 -1
  53. package/out/zero-protocol/src/queries-patch.d.ts +4 -1
  54. package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
  55. package/out/zero-protocol/src/queries-patch.js +2 -1
  56. package/out/zero-protocol/src/queries-patch.js.map +1 -1
  57. package/out/zero-protocol/src/up.d.ts +2 -0
  58. package/out/zero-protocol/src/up.d.ts.map +1 -1
  59. package/out/zero.js +1 -1
  60. package/out/zql/src/query/query-impl.d.ts +5 -5
  61. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  62. package/out/zql/src/query/query-impl.js +27 -23
  63. package/out/zql/src/query/query-impl.js.map +1 -1
  64. package/out/zql/src/query/static-query.d.ts +1 -2
  65. package/out/zql/src/query/static-query.d.ts.map +1 -1
  66. package/out/zql/src/query/static-query.js +2 -5
  67. package/out/zql/src/query/static-query.js.map +1 -1
  68. package/package.json +1 -1
  69. package/out/zero-protocol/src/clients-patch.d.ts +0 -37
  70. package/out/zero-protocol/src/clients-patch.d.ts.map +0 -1
  71. package/out/zero-protocol/src/clients-patch.js +0 -15
  72. package/out/zero-protocol/src/clients-patch.js.map +0 -1
@@ -81,13 +81,13 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
81
81
  #ensureClient(id) {
82
82
  let client = this._cvr.clients[id];
83
83
  if (client) {
84
- return { client, patches: [] };
84
+ return client;
85
85
  }
86
86
  // Add the ClientRecord and PutPatch
87
- const newVersion = this._ensureNewVersion();
88
- client = { id, patchVersion: newVersion, desiredQueryIDs: [] };
87
+ client = { id, desiredQueryIDs: [] };
89
88
  this._cvr.clients[id] = client;
90
- this._cvrStore.insertClient(client);
89
+ const newVersion = this._ensureNewVersion();
90
+ this._cvrStore.insertClient(client, newVersion);
91
91
  if (!this._cvr.queries[CLIENT_LMID_QUERY_ID]) {
92
92
  const lmidsQuery = {
93
93
  id: CLIENT_LMID_QUERY_ID,
@@ -116,15 +116,11 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
116
116
  this._cvr.queries[CLIENT_LMID_QUERY_ID] = lmidsQuery;
117
117
  this._cvrStore.putQuery(lmidsQuery);
118
118
  }
119
- return {
120
- client,
121
- patches: [
122
- { toVersion: newVersion, patch: { type: 'client', op: 'put', id } },
123
- ],
124
- };
119
+ return client;
125
120
  }
126
121
  putDesiredQueries(clientID, queries) {
127
- const { client, patches } = this.#ensureClient(clientID);
122
+ const patches = [];
123
+ const client = this.#ensureClient(clientID);
128
124
  const current = new Set(client.desiredQueryIDs);
129
125
  const additional = new Set(queries.map(({ hash }) => hash));
130
126
  const needed = difference(additional, current);
@@ -134,22 +130,30 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
134
130
  const newVersion = this._ensureNewVersion();
135
131
  client.desiredQueryIDs = [...union(current, needed)].sort(compareUTF8);
136
132
  for (const id of needed) {
137
- const { ast } = must(queries.find(({ hash }) => hash === id));
133
+ const { ast, ttl = null } = must(queries.find(({ hash }) => hash === id));
138
134
  const query = this._cvr.queries[id] ?? { id, ast, desiredBy: {} };
139
135
  assertNotInternal(query);
140
- query.desiredBy[clientID] = newVersion;
136
+ const expiresAt = null;
137
+ const inactivatedAt = null;
138
+ query.desiredBy[clientID] = {
139
+ expiresAt,
140
+ inactivatedAt,
141
+ ttl,
142
+ version: newVersion,
143
+ };
141
144
  this._cvr.queries[id] = query;
142
145
  patches.push({
143
146
  toVersion: newVersion,
144
147
  patch: { type: 'query', op: 'put', id, ast, clientID },
145
148
  });
146
149
  this._cvrStore.putQuery(query);
147
- this._cvrStore.insertDesiredQuery(newVersion, query, client, false);
150
+ this._cvrStore.insertDesiredQuery(newVersion, query, client, false, expiresAt, inactivatedAt, ttl);
148
151
  }
149
152
  return patches;
150
153
  }
151
154
  deleteDesiredQueries(clientID, queries) {
152
- const { client, patches } = this.#ensureClient(clientID);
155
+ const patches = [];
156
+ const client = this.#ensureClient(clientID);
153
157
  const current = new Set(client.desiredQueryIDs);
154
158
  const unwanted = new Set(queries);
155
159
  const remove = intersection(unwanted, current);
@@ -158,7 +162,6 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
158
162
  }
159
163
  const newVersion = this._ensureNewVersion();
160
164
  client.desiredQueryIDs = [...difference(current, remove)].sort(compareUTF8);
161
- this._cvrStore.updateClientPatchVersion(client.id, client.patchVersion);
162
165
  for (const id of remove) {
163
166
  const query = this._cvr.queries[id];
164
167
  if (!query) {
@@ -167,7 +170,7 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
167
170
  assertNotInternal(query);
168
171
  delete query.desiredBy[clientID];
169
172
  this._cvrStore.putQuery(query);
170
- this._cvrStore.insertDesiredQuery(newVersion, query, client, true);
173
+ this._cvrStore.insertDesiredQuery(newVersion, query, client, true, null, null, null);
171
174
  patches.push({
172
175
  toVersion: newVersion,
173
176
  patch: { type: 'query', op: 'del', id, clientID },
@@ -176,11 +179,8 @@ export class CVRConfigDrivenUpdater extends CVRUpdater {
176
179
  return patches;
177
180
  }
178
181
  clearDesiredQueries(clientID) {
179
- const { client, patches } = this.#ensureClient(clientID);
180
- return [
181
- ...patches,
182
- ...this.deleteDesiredQueries(clientID, client.desiredQueryIDs),
183
- ];
182
+ const client = this.#ensureClient(clientID);
183
+ return this.deleteDesiredQueries(clientID, client.desiredQueryIDs);
184
184
  }
185
185
  flush(lc, skipNoopFlushes, lastConnectTime, lastActive = Date.now()) {
186
186
  // TODO: Add cleanup of no-longer-desired got queries and constituent rows.
@@ -271,7 +271,7 @@ export class CVRQueryDrivenUpdater extends CVRUpdater {
271
271
  lc.debug?.(`found ${results.size} (of ${total}) rows for executed / removed queries ${[
272
272
  ...this.#removedOrExecutedQueryIDs,
273
273
  ]}`);
274
- return [...results.values()];
274
+ return results.values();
275
275
  }
276
276
  /**
277
277
  * Tracks an executed query, ensures that it is marked as "gotten",
@@ -1 +1 @@
1
- {"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cvr.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/cvr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ import type { LogContext } from '@rocicorp/logger';
2
+ import type { PendingQuery, Row } from 'postgres';
3
+ import type { PostgresDB, PostgresTransaction } from '../../types/pg.ts';
4
+ import type { CVRSnapshot } from './cvr.ts';
5
+ import { type RowsRow } from './schema/cvr.ts';
6
+ import { type CVRVersion, type NullableCVRVersion, type RowID, type RowRecord } from './schema/types.ts';
7
+ /**
8
+ * The RowRecordCache is an in-memory cache of the `cvr.rows` tables that
9
+ * operates as both a write-through and write-back cache.
10
+ *
11
+ * For "small" CVR updates (i.e. zero or small numbers of rows) the
12
+ * RowRecordCache operates as write-through, executing commits in
13
+ * {@link executeRowUpdates()} before they are {@link apply}-ed to the
14
+ * in-memory state.
15
+ *
16
+ * For "large" CVR updates (i.e. with many rows), the cache switches to a
17
+ * write-back mode of operation, in which {@link executeRowUpdates()} is a
18
+ * no-op, and {@link apply()} initiates a background task to flush the pending
19
+ * row changes to the store. This allows the client poke to be completed and
20
+ * committed on the client without waiting for the heavyweight operation of
21
+ * committing the row records to the CVR store.
22
+ *
23
+ * Note that when the cache is in write-back mode, all updates become
24
+ * write-back (i.e. asynchronously flushed) until the pending update queue is
25
+ * fully flushed. This is required because updates must be applied in version
26
+ * order. As with all pending work systems in zero-cache, multiple pending
27
+ * updates are coalesced to reduce buildup of work.
28
+ *
29
+ * ### High level consistency
30
+ *
31
+ * Note that the above caching scheme only applies to the row data in `cvr.rows`
32
+ * and corresponding `cvr.rowsVersion` tables. CVR metadata and query
33
+ * information, on the other hand, are always committed before completing the
34
+ * client poke. In this manner, the difference between the `version` column in
35
+ * `cvr.instances` and the analogous column in `cvr.rowsVersion` determines
36
+ * whether the data in the store is consistent, or whether it is awaiting a
37
+ * pending update.
38
+ *
39
+ * The logic in {@link CVRStore.load()} takes this into account by loading both
40
+ * the `cvr.instances` version and the `cvr.rowsVersion` version and checking
41
+ * if they are in sync, waiting for a configurable delay until they are.
42
+ *
43
+ * ### Eventual conversion
44
+ *
45
+ * In the event of a continual stream of mutations (e.g. an animation-style
46
+ * app), it is conceivable that the row record data be continually behind
47
+ * the CVR metadata. In order to effect eventual convergence, a new view-syncer
48
+ * signals the current view-syncer to stop updating by writing new `owner`
49
+ * information to the `cvr.instances` row. This effectively stops the mutation
50
+ * processing (in {@link CVRStore.#checkVersionAndOwnership}) so that the row
51
+ * data can eventually catch up, allowing the new view-syncer to take over.
52
+ *
53
+ * Of course, there is the pathological situation in which a view-syncer
54
+ * process crashes before the pending row updates are flushed. In this case,
55
+ * the wait timeout will elapse and the CVR considered invalid.
56
+ */
57
+ export declare class RowRecordCache {
58
+ #private;
59
+ constructor(lc: LogContext, db: PostgresDB, shardID: string, cvrID: string, failService: (e: unknown) => void, deferredRowFlushThreshold?: number, setTimeoutFn?: typeof setTimeout);
60
+ getRowRecords(): Promise<ReadonlyMap<RowID, RowRecord>>;
61
+ /**
62
+ * Applies the `rowRecords` corresponding to the `rowsVersion`
63
+ * to the cache, indicating whether the corresponding updates
64
+ * (generated by {@link executeRowUpdates}) were `flushed`.
65
+ *
66
+ * If `flushed` is false, the RowRecordCache will flush the records
67
+ * asynchronously.
68
+ *
69
+ * Note that `apply()` indicates that the CVR metadata associated with
70
+ * the `rowRecords` was successfully committed, which essentially means
71
+ * that this process has the unconditional right (and responsibility) of
72
+ * following up with a flush of the `rowRecords`. In particular, the
73
+ * commit of row records are not conditioned on the version or ownership
74
+ * columns of the `cvr.instances` row.
75
+ */
76
+ apply(rowRecords: Map<RowID, RowRecord | null>, rowsVersion: CVRVersion, flushed: boolean): Promise<void>;
77
+ hasPendingUpdates(): boolean;
78
+ /**
79
+ * Returns a promise that resolves when all outstanding row-records
80
+ * have been committed.
81
+ */
82
+ flushed(lc: LogContext): Promise<void>;
83
+ clear(): void;
84
+ catchupRowPatches(lc: LogContext, afterVersion: NullableCVRVersion, upToCVR: CVRSnapshot, current: CVRVersion, excludeQueryHashes?: string[]): AsyncGenerator<RowsRow[], void, undefined>;
85
+ executeRowUpdates(tx: PostgresTransaction, version: CVRVersion, rowUpdates: Map<RowID, RowRecord | null>, mode: 'allow-defer' | 'force'): PendingQuery<Row[]>[];
86
+ }
87
+ //# sourceMappingURL=row-record-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-record-cache.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/row-record-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,YAAY,EAAE,GAAG,EAAC,MAAM,UAAU,CAAC;AAMhD,OAAO,KAAK,EAAC,UAAU,EAAE,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAGvE,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAGL,KAAK,OAAO,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,KAAK,EACV,KAAK,SAAS,EAGf,MAAM,mBAAmB,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,qBAAa,cAAc;;gBAoBvB,EAAE,EAAE,UAAU,EACd,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,EACjC,yBAAyB,SAAM,EAC/B,YAAY,oBAAa;IAuC3B,aAAa,IAAI,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAIvD;;;;;;;;;;;;;;OAcG;IACG,KAAK,CACT,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,EACxC,WAAW,EAAE,UAAU,EACvB,OAAO,EAAE,OAAO;IAwDlB,iBAAiB;IAIjB;;;OAGG;IACH,OAAO,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtC,KAAK;IAOE,iBAAiB,CACtB,EAAE,EAAE,UAAU,EACd,YAAY,EAAE,kBAAkB,EAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,EACnB,kBAAkB,GAAE,MAAM,EAAO,GAChC,cAAc,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC;IAmD7C,iBAAiB,CACf,EAAE,EAAE,mBAAmB,EACvB,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,GAAG,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC,EACxC,IAAI,EAAE,aAAa,GAAG,OAAO,GAC5B,YAAY,CAAC,GAAG,EAAE,CAAC,EAAE;CAiEzB"}
@@ -0,0 +1,294 @@
1
+ import { resolver } from '@rocicorp/resolver';
2
+ import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
3
+ import { must } from "../../../../shared/src/must.js";
4
+ import { promiseVoid } from "../../../../shared/src/resolved-promises.js";
5
+ import * as Mode from "../../db/mode-enum.js";
6
+ import { TransactionPool } from "../../db/transaction-pool.js";
7
+ import { rowIDString } from "../../types/row-key.js";
8
+ import { checkVersion } from "./cvr-store.js";
9
+ import { cvrSchema, rowRecordToRowsRow, rowsRowToRowRecord, } from "./schema/cvr.js";
10
+ import { cmpVersions, versionString, versionToNullableCookie, } from "./schema/types.js";
11
+ /**
12
+ * The RowRecordCache is an in-memory cache of the `cvr.rows` tables that
13
+ * operates as both a write-through and write-back cache.
14
+ *
15
+ * For "small" CVR updates (i.e. zero or small numbers of rows) the
16
+ * RowRecordCache operates as write-through, executing commits in
17
+ * {@link executeRowUpdates()} before they are {@link apply}-ed to the
18
+ * in-memory state.
19
+ *
20
+ * For "large" CVR updates (i.e. with many rows), the cache switches to a
21
+ * write-back mode of operation, in which {@link executeRowUpdates()} is a
22
+ * no-op, and {@link apply()} initiates a background task to flush the pending
23
+ * row changes to the store. This allows the client poke to be completed and
24
+ * committed on the client without waiting for the heavyweight operation of
25
+ * committing the row records to the CVR store.
26
+ *
27
+ * Note that when the cache is in write-back mode, all updates become
28
+ * write-back (i.e. asynchronously flushed) until the pending update queue is
29
+ * fully flushed. This is required because updates must be applied in version
30
+ * order. As with all pending work systems in zero-cache, multiple pending
31
+ * updates are coalesced to reduce buildup of work.
32
+ *
33
+ * ### High level consistency
34
+ *
35
+ * Note that the above caching scheme only applies to the row data in `cvr.rows`
36
+ * and corresponding `cvr.rowsVersion` tables. CVR metadata and query
37
+ * information, on the other hand, are always committed before completing the
38
+ * client poke. In this manner, the difference between the `version` column in
39
+ * `cvr.instances` and the analogous column in `cvr.rowsVersion` determines
40
+ * whether the data in the store is consistent, or whether it is awaiting a
41
+ * pending update.
42
+ *
43
+ * The logic in {@link CVRStore.load()} takes this into account by loading both
44
+ * the `cvr.instances` version and the `cvr.rowsVersion` version and checking
45
+ * if they are in sync, waiting for a configurable delay until they are.
46
+ *
47
+ * ### Eventual conversion
48
+ *
49
+ * In the event of a continual stream of mutations (e.g. an animation-style
50
+ * app), it is conceivable that the row record data be continually behind
51
+ * the CVR metadata. In order to effect eventual convergence, a new view-syncer
52
+ * signals the current view-syncer to stop updating by writing new `owner`
53
+ * information to the `cvr.instances` row. This effectively stops the mutation
54
+ * processing (in {@link CVRStore.#checkVersionAndOwnership}) so that the row
55
+ * data can eventually catch up, allowing the new view-syncer to take over.
56
+ *
57
+ * Of course, there is the pathological situation in which a view-syncer
58
+ * process crashes before the pending row updates are flushed. In this case,
59
+ * the wait timeout will elapse and the CVR considered invalid.
60
+ */
61
+ export class RowRecordCache {
62
+ // The state in the #cache is always in sync with the CVR metadata
63
+ // (i.e. cvr.instances). It may contain information that has not yet
64
+ // been flushed to cvr.rows.
65
+ #cache;
66
+ #lc;
67
+ #db;
68
+ #schema;
69
+ #cvrID;
70
+ #failService;
71
+ #deferredRowFlushThreshold;
72
+ #setTimeout;
73
+ // Write-back cache state.
74
+ #pending = new CustomKeyMap(rowIDString);
75
+ #pendingRowsVersion = null;
76
+ #flushedRowsVersion = null;
77
+ #flushing = null;
78
+ constructor(lc, db, shardID, cvrID, failService, deferredRowFlushThreshold = 100, setTimeoutFn = setTimeout) {
79
+ this.#lc = lc;
80
+ this.#db = db;
81
+ this.#schema = cvrSchema(shardID);
82
+ this.#cvrID = cvrID;
83
+ this.#failService = failService;
84
+ this.#deferredRowFlushThreshold = deferredRowFlushThreshold;
85
+ this.#setTimeout = setTimeoutFn;
86
+ }
87
+ #cvr(table) {
88
+ return this.#db(`${this.#schema}.${table}`);
89
+ }
90
+ async #ensureLoaded() {
91
+ if (this.#cache) {
92
+ return this.#cache;
93
+ }
94
+ const r = resolver();
95
+ // Set this.#cache immediately (before await) so that only one db
96
+ // query is made even if there are multiple callers.
97
+ this.#cache = r.promise;
98
+ const cache = new CustomKeyMap(rowIDString);
99
+ for await (const rows of this.#db `
100
+ SELECT * FROM ${this.#cvr(`rows`)}
101
+ WHERE "clientGroupID" = ${this.#cvrID} AND "refCounts" IS NOT NULL`
102
+ // TODO(arv): Arbitrary page size
103
+ .cursor(5000)) {
104
+ for (const row of rows) {
105
+ const rowRecord = rowsRowToRowRecord(row);
106
+ cache.set(rowRecord.id, rowRecord);
107
+ }
108
+ }
109
+ r.resolve(cache);
110
+ return this.#cache;
111
+ }
112
+ getRowRecords() {
113
+ return this.#ensureLoaded();
114
+ }
115
+ /**
116
+ * Applies the `rowRecords` corresponding to the `rowsVersion`
117
+ * to the cache, indicating whether the corresponding updates
118
+ * (generated by {@link executeRowUpdates}) were `flushed`.
119
+ *
120
+ * If `flushed` is false, the RowRecordCache will flush the records
121
+ * asynchronously.
122
+ *
123
+ * Note that `apply()` indicates that the CVR metadata associated with
124
+ * the `rowRecords` was successfully committed, which essentially means
125
+ * that this process has the unconditional right (and responsibility) of
126
+ * following up with a flush of the `rowRecords`. In particular, the
127
+ * commit of row records are not conditioned on the version or ownership
128
+ * columns of the `cvr.instances` row.
129
+ */
130
+ async apply(rowRecords, rowsVersion, flushed) {
131
+ const cache = await this.#ensureLoaded();
132
+ for (const [id, row] of rowRecords.entries()) {
133
+ if (row === null || row.refCounts === null) {
134
+ cache.delete(id);
135
+ }
136
+ else {
137
+ cache.set(id, row);
138
+ }
139
+ if (!flushed) {
140
+ this.#pending.set(id, row);
141
+ }
142
+ }
143
+ this.#pendingRowsVersion = rowsVersion;
144
+ // Initiate a flush if not already flushing.
145
+ if (!flushed && this.#flushing === null) {
146
+ this.#flushing = resolver();
147
+ this.#setTimeout(() => this.#flush(), 0);
148
+ }
149
+ }
150
+ async #flush() {
151
+ const flushing = must(this.#flushing);
152
+ try {
153
+ while (this.#pendingRowsVersion !== this.#flushedRowsVersion) {
154
+ const start = Date.now();
155
+ const { rows, rowsVersion } = await this.#db.begin(tx => {
156
+ // Note: This code block is synchronous, guaranteeing that the
157
+ // #pendingRowsVersion is consistent with the #pending rows.
158
+ const rows = this.#pending.size;
159
+ const rowsVersion = must(this.#pendingRowsVersion);
160
+ this.executeRowUpdates(tx, rowsVersion, this.#pending, 'force');
161
+ this.#pending.clear();
162
+ return { rows, rowsVersion };
163
+ });
164
+ this.#lc.debug?.(`flushed ${rows} rows@${versionString(rowsVersion)} (${Date.now() - start} ms)`);
165
+ this.#flushedRowsVersion = rowsVersion;
166
+ // Note: apply() may have called while the transaction was committing,
167
+ // which will result in looping to commit the next #pendingRowsVersion.
168
+ }
169
+ this.#lc.debug?.(`up to date rows@${versionToNullableCookie(this.#flushedRowsVersion)}`);
170
+ flushing.resolve();
171
+ this.#flushing = null;
172
+ }
173
+ catch (e) {
174
+ flushing.reject(e);
175
+ this.#failService(e);
176
+ }
177
+ }
178
+ hasPendingUpdates() {
179
+ return this.#flushing !== null;
180
+ }
181
+ /**
182
+ * Returns a promise that resolves when all outstanding row-records
183
+ * have been committed.
184
+ */
185
+ flushed(lc) {
186
+ if (this.#flushing) {
187
+ lc.debug?.('awaiting pending row flush');
188
+ return this.#flushing.promise;
189
+ }
190
+ return promiseVoid;
191
+ }
192
+ clear() {
193
+ // Note: Only the #cache is cleared. #pending updates, on the other hand,
194
+ // comprise canonical (i.e. already flushed) data and must be flushed
195
+ // even if the snapshot of the present state (the #cache) is cleared.
196
+ this.#cache = undefined;
197
+ }
198
+ async *catchupRowPatches(lc, afterVersion, upToCVR, current, excludeQueryHashes = []) {
199
+ if (cmpVersions(afterVersion, upToCVR.version) >= 0) {
200
+ return;
201
+ }
202
+ const startMs = Date.now();
203
+ const start = afterVersion ? versionString(afterVersion) : '';
204
+ const end = versionString(upToCVR.version);
205
+ lc.debug?.(`scanning row patches for clients from ${start}`);
206
+ // Before accessing the CVR db, pending row records must be flushed.
207
+ // Note that because catchupRowPatches() is called from within the
208
+ // view syncer lock, this flush is guaranteed to complete since no
209
+ // new CVR updates can happen while the lock is held.
210
+ await this.flushed(lc);
211
+ const flushMs = Date.now() - startMs;
212
+ const reader = new TransactionPool(lc, Mode.READONLY).run(this.#db);
213
+ try {
214
+ // Verify that we are reading the right version of the CVR.
215
+ await reader.processReadTask(tx => checkVersion(tx, this.#schema, this.#cvrID, current));
216
+ const { query } = await reader.processReadTask(tx => {
217
+ const query = excludeQueryHashes.length === 0
218
+ ? tx `SELECT * FROM ${this.#cvr('rows')}
219
+ WHERE "clientGroupID" = ${this.#cvrID}
220
+ AND "patchVersion" > ${start}
221
+ AND "patchVersion" <= ${end}`
222
+ : // Exclude rows that were already sent as part of query hydration.
223
+ tx `SELECT * FROM ${this.#cvr('rows')}
224
+ WHERE "clientGroupID" = ${this.#cvrID}
225
+ AND "patchVersion" > ${start}
226
+ AND "patchVersion" <= ${end}
227
+ AND ("refCounts" IS NULL OR NOT "refCounts" ?| ${excludeQueryHashes})`;
228
+ return { query };
229
+ });
230
+ yield* query.cursor(10000);
231
+ }
232
+ finally {
233
+ reader.setDone();
234
+ }
235
+ const totalMs = Date.now() - startMs;
236
+ lc.debug?.(`finished row catchup (flush: ${flushMs} ms, total: ${totalMs} ms)`);
237
+ }
238
+ executeRowUpdates(tx, version, rowUpdates, mode) {
239
+ if (mode === 'allow-defer' &&
240
+ // defer if pending rows are being flushed
241
+ (this.#flushing !== null ||
242
+ // or if the new batch is above the limit.
243
+ rowUpdates.size > this.#deferredRowFlushThreshold)) {
244
+ return [];
245
+ }
246
+ const rowsVersion = {
247
+ clientGroupID: this.#cvrID,
248
+ version: versionString(version),
249
+ };
250
+ const pending = [
251
+ tx `INSERT INTO ${this.#cvr('rowsVersion')} ${tx(rowsVersion)}
252
+ ON CONFLICT ("clientGroupID")
253
+ DO UPDATE SET ${tx(rowsVersion)}`.execute(),
254
+ ];
255
+ const rowRecordRows = [];
256
+ for (const [id, row] of rowUpdates.entries()) {
257
+ if (row === null) {
258
+ pending.push(tx `
259
+ DELETE FROM ${this.#cvr('rows')}
260
+ WHERE "clientGroupID" = ${this.#cvrID}
261
+ AND "schema" = ${id.schema}
262
+ AND "table" = ${id.table}
263
+ AND "rowKey" = ${id.rowKey}
264
+ `.execute());
265
+ }
266
+ else {
267
+ rowRecordRows.push(rowRecordToRowsRow(this.#cvrID, row));
268
+ }
269
+ }
270
+ if (rowRecordRows.length) {
271
+ pending.push(tx `
272
+ INSERT INTO ${this.#cvr('rows')}(
273
+ "clientGroupID", "schema", "table", "rowKey", "rowVersion", "patchVersion", "refCounts"
274
+ ) SELECT
275
+ "clientGroupID", "schema", "table", "rowKey", "rowVersion", "patchVersion", "refCounts"
276
+ FROM json_to_recordset(${rowRecordRows}) AS x(
277
+ "clientGroupID" TEXT,
278
+ "schema" TEXT,
279
+ "table" TEXT,
280
+ "rowKey" JSONB,
281
+ "rowVersion" TEXT,
282
+ "patchVersion" TEXT,
283
+ "refCounts" JSONB
284
+ ) ON CONFLICT ("clientGroupID", "schema", "table", "rowKey")
285
+ DO UPDATE SET "rowVersion" = excluded."rowVersion",
286
+ "patchVersion" = excluded."patchVersion",
287
+ "refCounts" = excluded."refCounts"
288
+ `.execute());
289
+ this.#lc.debug?.(`flushing ${rowUpdates.size} rows (${rowRecordRows.length} inserts, ${rowUpdates.size - rowRecordRows.length} deletes)`);
290
+ }
291
+ return pending;
292
+ }
293
+ }
294
+ //# sourceMappingURL=row-record-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"row-record-cache.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/row-record-cache.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,9 @@ export declare function compareInstancesRows(a: InstancesRow, b: InstancesRow):
15
15
  export type ClientsRow = {
16
16
  clientGroupID: string;
17
17
  clientID: string;
18
+ /** @deprecated */
18
19
  patchVersion: string;
20
+ /** @deprecated */
19
21
  deleted: boolean | null;
20
22
  };
21
23
  export declare function compareClientsRows(a: ClientsRow, b: ClientsRow): number;
@@ -36,6 +38,9 @@ export type DesiresRow = {
36
38
  queryHash: string;
37
39
  patchVersion: string;
38
40
  deleted: boolean | null;
41
+ ttl: number | null;
42
+ expiresAt: number | null;
43
+ inactivatedAt: number | null;
39
44
  };
40
45
  export declare function compareDesiresRows(a: DesiresRow, b: DesiresRow): number;
41
46
  export type RowsRow = {
@@ -1 +1 @@
1
- {"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cvr.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/cvr.ts"],"names":[],"mappings":"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"}