@rocicorp/zero 0.24.2025102200 → 0.25.0-canary.0

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 (99) hide show
  1. package/out/{chunk-VHLCXJ6Q.js → chunk-4RB4OYLQ.js} +3 -2
  2. package/out/{chunk-VHLCXJ6Q.js.map → chunk-4RB4OYLQ.js.map} +2 -2
  3. package/out/{chunk-PIXC6O7W.js → chunk-BJ2CGCME.js} +3 -3
  4. package/out/chunk-BJ2CGCME.js.map +7 -0
  5. package/out/{chunk-JS2ABYXG.js → chunk-MXPHMVU7.js} +505 -206
  6. package/out/chunk-MXPHMVU7.js.map +7 -0
  7. package/out/{lazy-inspector-NCBESZMS.js → lazy-inspector-2SW772W4.js} +2 -2
  8. package/out/react.js +2 -2
  9. package/out/solid.js +3 -3
  10. package/out/zero/package.json +2 -2
  11. package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
  12. package/out/zero-cache/src/db/lite-tables.js +36 -15
  13. package/out/zero-cache/src/db/lite-tables.js.map +1 -1
  14. package/out/zero-cache/src/db/specs.d.ts +12 -7
  15. package/out/zero-cache/src/db/specs.d.ts.map +1 -1
  16. package/out/zero-cache/src/db/specs.js.map +1 -1
  17. package/out/zero-cache/src/services/change-source/column-metadata.d.ts +65 -0
  18. package/out/zero-cache/src/services/change-source/column-metadata.d.ts.map +1 -0
  19. package/out/zero-cache/src/services/change-source/column-metadata.js +198 -0
  20. package/out/zero-cache/src/services/change-source/column-metadata.js.map +1 -0
  21. package/out/zero-cache/src/services/view-syncer/client-schema.js +1 -1
  22. package/out/zero-cache/src/services/view-syncer/client-schema.js.map +1 -1
  23. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +1 -1
  24. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  25. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +38 -25
  26. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  27. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +11 -6
  28. package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
  29. package/out/zero-cache/src/services/view-syncer/snapshotter.js +34 -22
  30. package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
  31. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +4 -4
  32. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  33. package/out/zero-cache/src/services/view-syncer/view-syncer.js +44 -20
  34. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  35. package/out/zero-client/src/client/client-error-kind-enum.d.ts +19 -0
  36. package/out/zero-client/src/client/client-error-kind-enum.d.ts.map +1 -0
  37. package/out/zero-client/src/client/client-error-kind.d.ts +5 -0
  38. package/out/zero-client/src/client/client-error-kind.d.ts.map +1 -0
  39. package/out/zero-client/src/client/connection-manager.d.ts +86 -0
  40. package/out/zero-client/src/client/connection-manager.d.ts.map +1 -0
  41. package/out/zero-client/src/client/connection-status-enum.d.ts +9 -0
  42. package/out/zero-client/src/client/connection-status-enum.d.ts.map +1 -0
  43. package/out/zero-client/src/client/connection-status.d.ts +5 -0
  44. package/out/zero-client/src/client/connection-status.d.ts.map +1 -0
  45. package/out/zero-client/src/client/crud.d.ts.map +1 -1
  46. package/out/zero-client/src/client/error.d.ts +37 -0
  47. package/out/zero-client/src/client/error.d.ts.map +1 -0
  48. package/out/zero-client/src/client/metric-name.d.ts +5 -0
  49. package/out/zero-client/src/client/metric-name.d.ts.map +1 -0
  50. package/out/zero-client/src/client/metrics.d.ts +3 -9
  51. package/out/zero-client/src/client/metrics.d.ts.map +1 -1
  52. package/out/zero-client/src/client/zero.d.ts +28 -6
  53. package/out/zero-client/src/client/zero.d.ts.map +1 -1
  54. package/out/zero-protocol/src/ast.d.ts +2 -0
  55. package/out/zero-protocol/src/ast.d.ts.map +1 -1
  56. package/out/zero-protocol/src/ast.js +1 -0
  57. package/out/zero-protocol/src/ast.js.map +1 -1
  58. package/out/zero-schema/src/builder/relationship-builder.d.ts +20 -18
  59. package/out/zero-schema/src/builder/relationship-builder.d.ts.map +1 -1
  60. package/out/zero-schema/src/builder/relationship-builder.js.map +1 -1
  61. package/out/zero-server/src/adapters/drizzle.d.ts +2 -3
  62. package/out/zero-server/src/adapters/drizzle.d.ts.map +1 -1
  63. package/out/zero-server/src/adapters/drizzle.js.map +1 -1
  64. package/out/zero-server/src/adapters/pg.d.ts +1 -0
  65. package/out/zero-server/src/adapters/pg.d.ts.map +1 -1
  66. package/out/zero-server/src/adapters/pg.js.map +1 -1
  67. package/out/zero-server/src/adapters/postgresjs.d.ts +1 -0
  68. package/out/zero-server/src/adapters/postgresjs.d.ts.map +1 -1
  69. package/out/zero-server/src/adapters/postgresjs.js.map +1 -1
  70. package/out/zero.js +3 -3
  71. package/out/zql/src/builder/builder.d.ts +12 -0
  72. package/out/zql/src/builder/builder.d.ts.map +1 -1
  73. package/out/zql/src/builder/builder.js +28 -1
  74. package/out/zql/src/builder/builder.js.map +1 -1
  75. package/out/zql/src/ivm/memory-source.d.ts +3 -3
  76. package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
  77. package/out/zql/src/ivm/memory-source.js +0 -16
  78. package/out/zql/src/ivm/memory-source.js.map +1 -1
  79. package/out/zql/src/ivm/source.d.ts +1 -5
  80. package/out/zql/src/ivm/source.d.ts.map +1 -1
  81. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  82. package/out/zql/src/query/query-impl.js +0 -6
  83. package/out/zql/src/query/query-impl.js.map +1 -1
  84. package/out/zqlite/src/table-source.d.ts +3 -3
  85. package/out/zqlite/src/table-source.d.ts.map +1 -1
  86. package/out/zqlite/src/table-source.js +0 -16
  87. package/out/zqlite/src/table-source.js.map +1 -1
  88. package/package.json +2 -2
  89. package/out/chunk-JS2ABYXG.js.map +0 -7
  90. package/out/chunk-PIXC6O7W.js.map +0 -7
  91. package/out/zero-client/src/client/connection-state-enum.d.ts +0 -7
  92. package/out/zero-client/src/client/connection-state-enum.d.ts.map +0 -1
  93. package/out/zero-client/src/client/server-error.d.ts +0 -15
  94. package/out/zero-client/src/client/server-error.d.ts.map +0 -1
  95. package/out/zql/src/query/assert-no-not-exists.d.ts +0 -17
  96. package/out/zql/src/query/assert-no-not-exists.d.ts.map +0 -1
  97. package/out/zql/src/query/assert-no-not-exists.js +0 -40
  98. package/out/zql/src/query/assert-no-not-exists.js.map +0 -1
  99. /package/out/{lazy-inspector-NCBESZMS.js.map → lazy-inspector-2SW772W4.js.map} +0 -0
@@ -8,7 +8,8 @@ import { MeasurePushOperator } from "../../../../zql/src/query/measure-push-oper
8
8
  import { TableSource } from "../../../../zqlite/src/table-source.js";
9
9
  import { reloadPermissionsIfChanged, } from "../../auth/load-permissions.js";
10
10
  import { computeZqlSpecs, mustGetTableSpec } from "../../db/lite-tables.js";
11
- import { getOrCreateHistogram } from "../../observability/metrics.js";
11
+ import { getOrCreateCounter, getOrCreateHistogram, } from "../../observability/metrics.js";
12
+ import {} from "../../types/row-key.js";
12
13
  import { getSubscriptionState } from "../replicator/schema/replication-state.js";
13
14
  import { checkClientSchema } from "./client-schema.js";
14
15
  import { ResetPipelinesSignal, Snapshotter, } from "./snapshotter.js";
@@ -34,6 +35,7 @@ export class PipelineDriver {
34
35
  description: 'Time to advance all queries for a given client group for in response to a single change.',
35
36
  unit: 's',
36
37
  });
38
+ #conflictRowsDeleted = getOrCreateCounter('sync', 'ivm.conflict-rows-deleted', 'Number of rows deleted because they conflicted with added row');
37
39
  #inspectorDelegate;
38
40
  constructor(lc, logConfig, snapshotter, shardID, storage, clientGroupID, inspectorDelegate) {
39
41
  this.#lc = lc.withContext('clientGroupID', clientGroupID);
@@ -184,6 +186,7 @@ export class PipelineDriver {
184
186
  : undefined;
185
187
  const input = buildPipeline(query, {
186
188
  debug: debugDelegate,
189
+ enableNotExists: true, // Server-side can handle NOT EXISTS
187
190
  getSource: name => this.#getSource(name),
188
191
  createStorage: () => this.#createStorage(),
189
192
  decorateSourceInput: (input, _queryID) => new MeasurePushOperator(input, transformationHash, this.#inspectorDelegate, 'query-update-server'),
@@ -295,35 +298,49 @@ export class PipelineDriver {
295
298
  }
296
299
  *#advance(diff, onChange) {
297
300
  let pos = 0;
298
- for (const { table, prevValue, nextValue, rowKey } of diff) {
301
+ for (const { table, prevValues, nextValue } of diff) {
299
302
  const start = performance.now();
300
303
  let type;
301
304
  try {
302
- if (prevValue && nextValue) {
305
+ const tableSpec = mustGetTableSpec(this.#tableSpecs, table).tableSpec;
306
+ const tableSource = this.#tables.get(table);
307
+ if (!tableSource) {
308
+ // no pipelines read from this table, so no need to process the change
309
+ continue;
310
+ }
311
+ let editOldRow = undefined;
312
+ for (const prevValue of prevValues) {
303
313
  // Rows are ultimately referred to by the union key (in #streamNodes())
304
314
  // so an update is represented as an `edit` if and only if the
305
315
  // unionKey-based row keys are the same in prevValue and nextValue.
306
- const { unionKey } = must(this.#tableSpecs.get(table)).tableSpec;
307
- if (Object.keys(rowKey).length === unionKey.length ||
308
- deepEqual(getRowKey(unionKey, prevValue), getRowKey(unionKey, nextValue))) {
309
- type = 'edit';
310
- yield* this.#push(table, {
311
- type: 'edit',
312
- row: nextValue,
313
- oldRow: prevValue,
316
+ if (nextValue &&
317
+ deepEqual(getRowKey(tableSpec.unionKey, prevValue), getRowKey(tableSpec.unionKey, nextValue))) {
318
+ editOldRow = prevValue;
319
+ }
320
+ else {
321
+ if (nextValue) {
322
+ this.#conflictRowsDeleted.add(1);
323
+ }
324
+ yield* this.#push(tableSource, {
325
+ type: 'remove',
326
+ row: prevValue,
314
327
  });
315
- continue;
316
328
  }
317
- // If the unionKey-based row keys differed, they will be
318
- // represented as a remove of the old key and an add of the new key.
319
- }
320
- if (prevValue) {
321
- type = 'remove';
322
- yield* this.#push(table, { type: 'remove', row: prevValue });
323
329
  }
324
330
  if (nextValue) {
325
- type = 'add';
326
- yield* this.#push(table, { type: 'add', row: nextValue });
331
+ if (editOldRow) {
332
+ yield* this.#push(tableSource, {
333
+ type: 'edit',
334
+ row: nextValue,
335
+ oldRow: editOldRow,
336
+ });
337
+ }
338
+ else {
339
+ yield* this.#push(tableSource, {
340
+ type: 'add',
341
+ row: nextValue,
342
+ });
343
+ }
327
344
  }
328
345
  }
329
346
  finally {
@@ -360,11 +377,7 @@ export class PipelineDriver {
360
377
  #createStorage() {
361
378
  return this.#storage.createStorage();
362
379
  }
363
- *#push(table, change) {
364
- const source = this.#tables.get(table);
365
- if (!source) {
366
- return;
367
- }
380
+ *#push(source, change) {
368
381
  this.#startAccumulating();
369
382
  for (const _ of source.genPush(change)) {
370
383
  yield* this.#stopAccumulating().stream();
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-driver.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-driver.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { StatementRunner } from '../../db/statements.ts';
5
5
  import { type RowKey, type RowValue } from '../../types/row-key.ts';
6
6
  import { type SchemaVersions } from '../../types/schema-versions.ts';
7
7
  import type { AppID } from '../../types/shards.ts';
8
+ import type { PrimaryKey } from '../../../../zero-types/src/schema.ts';
9
+ import type { Row } from '../../../../zero-protocol/src/data.ts';
8
10
  /**
9
11
  * A `Snapshotter` manages the progression of database snapshots for a
10
12
  * ViewSyncer.
@@ -126,8 +128,14 @@ export declare class Snapshotter {
126
128
  }
127
129
  export type Change = {
128
130
  readonly table: string;
129
- readonly prevValue: Readonly<RowValue> | null;
130
- readonly nextValue: Readonly<RowValue> | null;
131
+ /**
132
+ * If this change represents a remove the row to remove,
133
+ * if nextValue is not null then all rows that have a unique constraint
134
+ * violation with nextValue.
135
+ * In both cases these rows should be removed.
136
+ */
137
+ readonly prevValues: Readonly<Row>[];
138
+ readonly nextValue: Readonly<Row> | null;
131
139
  readonly rowKey: RowKey;
132
140
  };
133
141
  /**
@@ -181,10 +189,7 @@ declare class Snapshot {
181
189
  cleanup: () => void;
182
190
  };
183
191
  getRow(table: LiteTableSpecWithKeys, rowKey: JSONValue): any;
184
- getRows(table: LiteTableSpecWithKeys): {
185
- rows: IterableIterator<unknown>;
186
- cleanup: () => void;
187
- };
192
+ getRows(table: LiteTableSpecWithKeys, keys: PrimaryKey[], row: RowValue): any[];
188
193
  resetToHead(): Snapshot;
189
194
  }
190
195
  export declare class InvalidDiffError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAY,KAAK,SAAS,EAAC,MAAM,uCAAuC,CAAC;AAKhF,OAAO,KAAK,EAAC,cAAc,EAAE,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAC,eAAe,EAAC,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAEL,KAAK,MAAM,EACX,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAC,KAAK,EAAC,MAAM,uBAAuB,CAAC;AAajD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,WAAW;;gBAOV,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,EAAC,KAAK,EAAC,EAAE,KAAK;IAM1D;;;;OAIG;IACH,IAAI,IAAI,IAAI;IAOZ,WAAW,IAAI,OAAO;IAItB,+EAA+E;IAC/E,OAAO,IAAI,QAAQ;IAKnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACH,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,YAAY;IAK1D,kBAAkB;;;;IAUlB;;;OAGG;IACH,OAAO;CAKR;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ,CAAC,MAAM,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,IAAI,EAAE;QACb,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;QAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IAEF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,0BAA0B;gBAE3B,GAAG,EAAE,MAAM;CAGxB;AAQD,cAAM,QAAQ;;IACZ,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAkB3D,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAC;IAE7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;gBAE5B,EAAE,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM;IAa9C,eAAe,CAAC,WAAW,EAAE,MAAM;IAQnC,YAAY,CAAC,WAAW,EAAE,MAAM;;;;IAUhC,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE,MAAM,EAAE,SAAS;IAkBtD,OAAO,CAAC,KAAK,EAAE,qBAAqB;;;;IAYpC,WAAW,IAAI,QAAQ;CAIxB;AA6ID,qBAAa,gBAAiB,SAAQ,KAAK;gBAC7B,GAAG,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"snapshotter.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
@@ -226,14 +226,18 @@ class Snapshot {
226
226
  this.db.statementCache.return(cached);
227
227
  }
228
228
  }
229
- getRows(table) {
229
+ getRows(table, keys, row) {
230
+ const conds = keys.map(key => key.map(c => `${id(c)}=?`));
230
231
  const cols = Object.keys(table.columns);
231
- const cached = this.db.statementCache.get(`SELECT ${cols.map(c => id(c)).join(',')} FROM ${id(table.name)}`);
232
+ const cached = this.db.statementCache.get(`SELECT ${cols.map(c => id(c)).join(',')} FROM ${id(table.name)} WHERE ${conds.map(cond => cond.join(' AND ')).join(' OR ')}`);
232
233
  cached.statement.safeIntegers(true);
233
- return {
234
- rows: cached.statement.iterate(),
235
- cleanup: () => this.db.statementCache.return(cached),
236
- };
234
+ try {
235
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any
236
+ return cached.statement.all(keys.flatMap(key => key.map(column => row[column])));
237
+ }
238
+ finally {
239
+ this.db.statementCache.return(cached);
240
+ }
237
241
  }
238
242
  resetToHead() {
239
243
  this.db.rollback();
@@ -284,32 +288,41 @@ class Diff {
284
288
  }
285
289
  const { tableSpec, zqlSpec } = must(this.tables.get(table));
286
290
  assert(rowKey !== null);
287
- let prevValue = this.prev.getRow(tableSpec, rowKey) ?? null;
288
- let nextValue = op === SET_OP ? this.curr.getRow(tableSpec, rowKey) : null;
291
+ const nextValue = op === SET_OP ? this.curr.getRow(tableSpec, rowKey) : null;
292
+ let prevValues;
293
+ if (nextValue) {
294
+ prevValues = this.prev.getRows(tableSpec, tableSpec.uniqueKeys, nextValue);
295
+ }
296
+ else {
297
+ const prevValue = this.prev.getRow(tableSpec, rowKey);
298
+ prevValues = prevValue ? [prevValue] : [];
299
+ }
289
300
  if (nextValue === undefined) {
290
301
  throw new Error(`Missing value for ${table} ${stringify(rowKey)}`);
291
302
  }
292
303
  // Sanity check detects if the diff is being accessed after the Snapshots have advanced.
293
- this.checkThatDiffIsValid(stateVersion, op, prevValue, nextValue);
294
- if (prevValue === null && nextValue === null) {
304
+ this.checkThatDiffIsValid(stateVersion, op, prevValues, nextValue);
305
+ if (prevValues.length === 0 && nextValue === null) {
295
306
  // Filter out no-op changes (e.g. a delete of a row that does not exist in prev).
296
307
  // TODO: Consider doing this for deep-equal values.
297
308
  continue;
298
309
  }
299
310
  if (table === this.#permissionsTable &&
300
- prevValue.permissions !== nextValue.permissions) {
301
- throw new ResetPipelinesSignal(`Permissions have changed ${prevValue.hash} => ${nextValue.hash}`);
311
+ prevValues.find(prevValue => prevValue.permissions !== nextValue.permissions)) {
312
+ throw new ResetPipelinesSignal(`Permissions have changed ${prevValues.find(prevValue => prevValue.permissions !== nextValue.permissions).hash} => ${nextValue.hash}`);
302
313
  }
303
314
  // Modify the values in place when converting to ZQL rows
304
315
  // This is safe since we're the first node in the iterator chain.
305
- if (prevValue) {
306
- prevValue = fromSQLiteTypes(zqlSpec, prevValue, table);
307
- }
308
- if (nextValue) {
309
- nextValue = fromSQLiteTypes(zqlSpec, nextValue, table);
310
- }
316
+ // TODO Can we get rid of these RowValue casts?
311
317
  return {
312
- value: { table, prevValue, nextValue, rowKey },
318
+ value: {
319
+ table,
320
+ prevValues: prevValues.map(prevValue => fromSQLiteTypes(zqlSpec, prevValue, table)),
321
+ nextValue: nextValue
322
+ ? fromSQLiteTypes(zqlSpec, nextValue, table)
323
+ : null,
324
+ rowKey,
325
+ },
313
326
  };
314
327
  }
315
328
  }
@@ -325,14 +338,13 @@ class Diff {
325
338
  },
326
339
  };
327
340
  }
328
- checkThatDiffIsValid(stateVersion, op, prevValue, nextValue) {
341
+ checkThatDiffIsValid(stateVersion, op, prevValues, nextValue) {
329
342
  // Sanity checks to detect that the diff is not being accessed after
330
343
  // the Snapshots have advanced.
331
344
  if (stateVersion > this.curr.version) {
332
345
  throw new InvalidDiffError(`Diff is no longer valid. curr db has advanced past ${this.curr.version}`);
333
346
  }
334
- if (prevValue !== null &&
335
- (prevValue[ROW_VERSION] ?? '~') > this.prev.version) {
347
+ if (prevValues.findIndex(prevValue => (prevValue[ROW_VERSION] ?? '~') > this.prev.version) !== -1) {
336
348
  throw new InvalidDiffError(`Diff is no longer valid. prev db has advanced past ${this.prev.version}.`);
337
349
  }
338
350
  if (op === SET_OP && nextValue[ROW_VERSION] !== stateVersion) {
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshotter.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/snapshotter.ts"],"names":[],"mappings":"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"}
@@ -72,12 +72,12 @@ export declare class ViewSyncerService implements ViewSyncer, ActivityBasedServi
72
72
  stop(): Promise<void>;
73
73
  }
74
74
  export declare function pickToken(lc: LogContext, previousToken: TokenData | undefined, newToken: TokenData | undefined): TokenData | undefined;
75
- export declare class Timer {
75
+ export declare class TimeSliceTimer {
76
76
  #private;
77
- start(): this;
78
- startLap(): void;
77
+ start(): Promise<this>;
78
+ startWithoutYielding(): this;
79
+ yieldProcess(): Promise<void>;
79
80
  elapsedLap(): number;
80
- stopLap(): void;
81
81
  /** @returns the total elapsed time */
82
82
  stop(): number;
83
83
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"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"}
@@ -675,18 +675,16 @@ export class ViewSyncerService {
675
675
  }
676
676
  }
677
677
  for (const { id: queryID, transformationHash, transformedAst, } of transformedQueries) {
678
- const timer = new Timer();
678
+ const timer = new TimeSliceTimer();
679
679
  let count = 0;
680
680
  await startAsyncSpan(tracer, 'vs.#hydrateUnchangedQueries.addQuery', async (span) => {
681
681
  span.setAttribute('queryHash', queryID);
682
682
  span.setAttribute('transformationHash', transformationHash);
683
683
  span.setAttribute('table', transformedAst.table);
684
- for (const _ of this.#pipelines.addQuery(transformationHash, queryID, transformedAst, timer.start())) {
684
+ for (const _ of this.#pipelines.addQuery(transformationHash, queryID, transformedAst, await timer.start())) {
685
685
  if (++count % TIME_SLICE_CHECK_SIZE === 0) {
686
686
  if (timer.elapsedLap() > TIME_SLICE_MS) {
687
- timer.stopLap();
688
- await yieldProcess(this.#setTimeout);
689
- timer.startLap();
687
+ await timer.yieldProcess();
690
688
  }
691
689
  }
692
690
  }
@@ -905,19 +903,22 @@ export class ViewSyncerService {
905
903
  }
906
904
  }
907
905
  let totalProcessTime = 0;
908
- const timer = new Timer();
906
+ const timer = new TimeSliceTimer();
909
907
  const pipelines = this.#pipelines;
910
908
  const hydrations = this.#hydrations;
911
909
  const hydrationTime = this.#hydrationTime;
912
910
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
913
911
  const self = this;
912
+ // yield at the very beginning so that the first time slice
913
+ // is properly processed by the time-slice queue.
914
+ await yieldProcess();
914
915
  function* generateRowChanges(slowHydrateThreshold) {
915
916
  for (const q of addQueries) {
916
917
  lc = lc
917
918
  .withContext('hash', q.id)
918
919
  .withContext('transformationHash', q.transformationHash);
919
920
  lc.debug?.(`adding pipeline for query`, q.ast);
920
- yield* pipelines.addQuery(q.transformationHash, q.id, q.ast, timer.start());
921
+ yield* pipelines.addQuery(q.transformationHash, q.id, q.ast, timer.startWithoutYielding());
921
922
  const elapsed = timer.stop();
922
923
  totalProcessTime += elapsed;
923
924
  self.#addQueryMaterializationServerMetric(q.transformationHash, elapsed);
@@ -1071,9 +1072,7 @@ export class ViewSyncerService {
1071
1072
  }
1072
1073
  if (rows.size % TIME_SLICE_CHECK_SIZE === 0) {
1073
1074
  if (timer.elapsedLap() > TIME_SLICE_MS) {
1074
- timer.stopLap();
1075
- await yieldProcess(this.#setTimeout);
1076
- timer.startLap();
1075
+ await timer.yieldProcess();
1077
1076
  }
1078
1077
  }
1079
1078
  }
@@ -1096,7 +1095,7 @@ export class ViewSyncerService {
1096
1095
  return startAsyncSpan(tracer, 'vs.#advancePipelines', async () => {
1097
1096
  assert(this.#pipelines.initialized(), 'pipelines must be initialized (advancePipelines');
1098
1097
  const start = performance.now();
1099
- const timer = new Timer();
1098
+ const timer = new TimeSliceTimer();
1100
1099
  const { version, numChanges, changes } = this.#pipelines.advance(timer);
1101
1100
  lc = lc.withContext('newVersion', version);
1102
1101
  // Probably need a new updater type. CVRAdvancementUpdater?
@@ -1108,7 +1107,7 @@ export class ViewSyncerService {
1108
1107
  lc.debug?.(`applying ${numChanges} to advance to ${version}`);
1109
1108
  const hashToIDs = createHashToIDs(cvr);
1110
1109
  try {
1111
- await this.#processChanges(lc, timer.start(), changes, updater, pokers, hashToIDs);
1110
+ await this.#processChanges(lc, await timer.start(), changes, updater, pokers, hashToIDs);
1112
1111
  }
1113
1112
  catch (e) {
1114
1113
  if (e instanceof ResetPipelinesSignal) {
@@ -1176,8 +1175,22 @@ function createHashToIDs(cvr) {
1176
1175
  }
1177
1176
  return hashToIDs;
1178
1177
  }
1179
- function yieldProcess(setTimeoutFn) {
1180
- return new Promise(resolve => setTimeoutFn(resolve, 0));
1178
+ // A global Lock acts as a queue to run a single IVM time slice per iteration
1179
+ // of the node event loop, thus bounding I/O delay to the duration of a single
1180
+ // time slice.
1181
+ //
1182
+ // Refresher:
1183
+ // https://nodejs.org/en/learn/asynchronous-work/event-loop-timers-and-nexttick#phases-overview
1184
+ //
1185
+ // Note that recursive use of setImmediate() (i.e. calling setImmediate() from
1186
+ // within a setImmediate() callback), results in enqueuing the latter
1187
+ // callback in the *next* event loop iteration, as documented in:
1188
+ // https://nodejs.org/api/timers.html#setimmediatecallback-args
1189
+ //
1190
+ // This effectively achieves the desired one-per-event-loop-iteration behavior.
1191
+ const timeSliceQueue = new Lock();
1192
+ function yieldProcess() {
1193
+ return timeSliceQueue.withLock(() => new Promise(setImmediate));
1181
1194
  }
1182
1195
  function contentsAndVersion(row) {
1183
1196
  const { [ZERO_VERSION_COLUMN_NAME]: version, ...contents } = row;
@@ -1272,15 +1285,26 @@ function hasExpiredQueries(cvr) {
1272
1285
  }
1273
1286
  return false;
1274
1287
  }
1275
- export class Timer {
1288
+ export class TimeSliceTimer {
1276
1289
  #total = 0;
1277
1290
  #start = 0;
1278
- start() {
1291
+ async start() {
1292
+ // yield at the very beginning so that the first time slice
1293
+ // is properly processed by the time-slice queue.
1294
+ await yieldProcess();
1295
+ return this.startWithoutYielding();
1296
+ }
1297
+ startWithoutYielding() {
1279
1298
  this.#total = 0;
1280
- this.startLap();
1299
+ this.#startLap();
1281
1300
  return this;
1282
1301
  }
1283
- startLap() {
1302
+ async yieldProcess() {
1303
+ this.#stopLap();
1304
+ await yieldProcess();
1305
+ this.#startLap();
1306
+ }
1307
+ #startLap() {
1284
1308
  assert(this.#start === 0, 'already running');
1285
1309
  this.#start = performance.now();
1286
1310
  }
@@ -1288,14 +1312,14 @@ export class Timer {
1288
1312
  assert(this.#start !== 0, 'not running');
1289
1313
  return performance.now() - this.#start;
1290
1314
  }
1291
- stopLap() {
1315
+ #stopLap() {
1292
1316
  assert(this.#start !== 0, 'not running');
1293
1317
  this.#total += performance.now() - this.#start;
1294
1318
  this.#start = 0;
1295
1319
  }
1296
1320
  /** @returns the total elapsed time */
1297
1321
  stop() {
1298
- this.stopLap();
1322
+ this.#stopLap();
1299
1323
  return this.#total;
1300
1324
  }
1301
1325
  /**