@rocicorp/zero 0.19.2025040901 → 0.19.2025041100

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 (124) hide show
  1. package/out/advanced.js +1 -2
  2. package/out/analyze-query/src/bin-analyze.js +73 -13
  3. package/out/analyze-query/src/bin-analyze.js.map +1 -1
  4. package/out/ast-to-zql/src/ast-to-zql.d.ts +1 -1
  5. package/out/ast-to-zql/src/ast-to-zql.js +2 -2
  6. package/out/ast-to-zql/src/ast-to-zql.js.map +1 -1
  7. package/out/{chunk-JW7AJ755.js → chunk-GTRWLUIW.js} +281 -3022
  8. package/out/chunk-GTRWLUIW.js.map +7 -0
  9. package/out/chunk-J3DNXL5V.js +2843 -0
  10. package/out/chunk-J3DNXL5V.js.map +7 -0
  11. package/out/{chunk-56G3QAI6.js → chunk-N7NOL5CH.js} +38 -41
  12. package/out/{chunk-56G3QAI6.js.map → chunk-N7NOL5CH.js.map} +2 -2
  13. package/out/{chunk-2NCGIK6G.js → chunk-SKR5JO2A.js} +21 -1
  14. package/out/{chunk-2NCGIK6G.js.map → chunk-SKR5JO2A.js.map} +1 -1
  15. package/out/{inspector-R2AXP2NY.js → inspector-YQC2D2E3.js} +9 -10
  16. package/out/inspector-YQC2D2E3.js.map +7 -0
  17. package/out/react.js +20 -9
  18. package/out/react.js.map +2 -2
  19. package/out/shared/src/options.d.ts +1 -0
  20. package/out/shared/src/options.d.ts.map +1 -1
  21. package/out/shared/src/options.js +12 -10
  22. package/out/shared/src/options.js.map +1 -1
  23. package/out/solid.js +31 -22
  24. package/out/solid.js.map +3 -3
  25. package/out/zero/src/cli.d.ts +1 -1
  26. package/out/zero/src/cli.d.ts.map +1 -1
  27. package/out/zero/src/cli.js +1 -1
  28. package/out/zero/src/cli.js.map +1 -1
  29. package/out/zero/src/server/runner/main.d.ts +2 -0
  30. package/out/zero/src/server/runner/main.d.ts.map +1 -0
  31. package/out/zero/src/server/runner/main.js +2 -0
  32. package/out/zero/src/server/runner/main.js.map +1 -0
  33. package/out/zero/src/zero-cache-dev.d.ts.map +1 -1
  34. package/out/zero/src/zero-cache-dev.js +1 -1
  35. package/out/zero/src/zero-cache-dev.js.map +1 -1
  36. package/out/zero-cache/src/config/zero-config.d.ts +7 -2
  37. package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
  38. package/out/zero-cache/src/config/zero-config.js +20 -4
  39. package/out/zero-cache/src/config/zero-config.js.map +1 -1
  40. package/out/zero-cache/src/server/{multi → runner}/config.d.ts +7 -2
  41. package/out/zero-cache/src/server/runner/config.d.ts.map +1 -0
  42. package/out/zero-cache/src/server/{multi → runner}/config.js +2 -1
  43. package/out/zero-cache/src/server/runner/config.js.map +1 -0
  44. package/out/zero-cache/src/server/runner/main.d.ts.map +1 -0
  45. package/out/zero-cache/src/server/runner/main.js.map +1 -0
  46. package/out/zero-cache/src/server/runner/run-worker.d.ts.map +1 -0
  47. package/out/zero-cache/src/server/{multi → runner}/run-worker.js +27 -17
  48. package/out/zero-cache/src/server/runner/run-worker.js.map +1 -0
  49. package/out/zero-cache/src/server/runner/runtime.d.ts.map +1 -0
  50. package/out/zero-cache/src/server/runner/runtime.js.map +1 -0
  51. package/out/zero-cache/src/server/{multi/tenant-dispatcher.d.ts → runner/zero-dispatcher.d.ts} +4 -4
  52. package/out/zero-cache/src/server/runner/zero-dispatcher.d.ts.map +1 -0
  53. package/out/zero-cache/src/server/{multi/tenant-dispatcher.js → runner/zero-dispatcher.js} +25 -12
  54. package/out/zero-cache/src/server/runner/zero-dispatcher.js.map +1 -0
  55. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts +10 -1
  56. package/out/zero-cache/src/services/dispatcher/websocket-handoff.d.ts.map +1 -1
  57. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js +15 -3
  58. package/out/zero-cache/src/services/dispatcher/websocket-handoff.js.map +1 -1
  59. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +1 -0
  60. package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
  61. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +9 -0
  62. package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
  63. package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
  64. package/out/zero-cache/src/services/view-syncer/view-syncer.js +66 -25
  65. package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
  66. package/out/zero-pg/src/query.d.ts +0 -2
  67. package/out/zero-pg/src/query.d.ts.map +1 -1
  68. package/out/zero-pg/src/query.js +0 -3
  69. package/out/zero-pg/src/query.js.map +1 -1
  70. package/out/zero-react/src/use-query.d.ts +3 -1
  71. package/out/zero-react/src/use-query.d.ts.map +1 -1
  72. package/out/zero-solid/src/create-query.d.ts +22 -0
  73. package/out/zero-solid/src/create-query.d.ts.map +1 -0
  74. package/out/zero-solid/src/mod.d.ts +1 -1
  75. package/out/zero-solid/src/mod.d.ts.map +1 -1
  76. package/out/zero-solid/src/solid-view.d.ts +4 -3
  77. package/out/zero-solid/src/solid-view.d.ts.map +1 -1
  78. package/out/zero.js +4 -5
  79. package/out/zql/src/ivm/array-view.d.ts +5 -1
  80. package/out/zql/src/ivm/array-view.d.ts.map +1 -1
  81. package/out/zql/src/ivm/array-view.js +8 -1
  82. package/out/zql/src/ivm/array-view.js.map +1 -1
  83. package/out/zql/src/ivm/view.d.ts +2 -1
  84. package/out/zql/src/ivm/view.d.ts.map +1 -1
  85. package/out/zql/src/query/query-impl.d.ts +5 -5
  86. package/out/zql/src/query/query-impl.d.ts.map +1 -1
  87. package/out/zql/src/query/query-impl.js +15 -10
  88. package/out/zql/src/query/query-impl.js.map +1 -1
  89. package/out/zql/src/query/query.d.ts +8 -5
  90. package/out/zql/src/query/query.d.ts.map +1 -1
  91. package/out/zql/src/query/static-query.d.ts +0 -2
  92. package/out/zql/src/query/static-query.d.ts.map +1 -1
  93. package/out/zql/src/query/static-query.js +0 -3
  94. package/out/zql/src/query/static-query.js.map +1 -1
  95. package/out/zql/src/query/typed-view.d.ts +2 -0
  96. package/out/zql/src/query/typed-view.d.ts.map +1 -1
  97. package/package.json +6 -2
  98. package/out/chunk-424PT5DM.js +0 -23
  99. package/out/chunk-424PT5DM.js.map +0 -7
  100. package/out/chunk-JW7AJ755.js.map +0 -7
  101. package/out/chunk-MB3DEFRC.js +0 -67
  102. package/out/chunk-MB3DEFRC.js.map +0 -7
  103. package/out/inspector-R2AXP2NY.js.map +0 -7
  104. package/out/zero/src/server/multi/main.d.ts +0 -2
  105. package/out/zero/src/server/multi/main.d.ts.map +0 -1
  106. package/out/zero/src/server/multi/main.js +0 -2
  107. package/out/zero/src/server/multi/main.js.map +0 -1
  108. package/out/zero-cache/src/server/multi/config.d.ts.map +0 -1
  109. package/out/zero-cache/src/server/multi/config.js.map +0 -1
  110. package/out/zero-cache/src/server/multi/main.d.ts.map +0 -1
  111. package/out/zero-cache/src/server/multi/main.js.map +0 -1
  112. package/out/zero-cache/src/server/multi/run-worker.d.ts.map +0 -1
  113. package/out/zero-cache/src/server/multi/run-worker.js.map +0 -1
  114. package/out/zero-cache/src/server/multi/runtime.d.ts.map +0 -1
  115. package/out/zero-cache/src/server/multi/runtime.js.map +0 -1
  116. package/out/zero-cache/src/server/multi/tenant-dispatcher.d.ts.map +0 -1
  117. package/out/zero-cache/src/server/multi/tenant-dispatcher.js.map +0 -1
  118. package/out/zero-solid/src/use-query.d.ts +0 -12
  119. package/out/zero-solid/src/use-query.d.ts.map +0 -1
  120. /package/out/zero-cache/src/server/{multi → runner}/main.d.ts +0 -0
  121. /package/out/zero-cache/src/server/{multi → runner}/main.js +0 -0
  122. /package/out/zero-cache/src/server/{multi → runner}/run-worker.d.ts +0 -0
  123. /package/out/zero-cache/src/server/{multi → runner}/runtime.d.ts +0 -0
  124. /package/out/zero-cache/src/server/{multi → runner}/runtime.js +0 -0
@@ -1,42 +1,55 @@
1
- import { installWebSocketHandoff } from "../../services/dispatcher/websocket-handoff.js";
1
+ import { assert } from "../../../../shared/src/asserts.js";
2
+ import { installWebSocketHandoff, } from "../../services/dispatcher/websocket-handoff.js";
2
3
  import { HttpService } from "../../services/http-service.js";
3
- export class TenantDispatcher extends HttpService {
4
- id = 'tenant-dispatcher';
4
+ export class ZeroDispatcher extends HttpService {
5
+ id = 'zero-dispatcher';
5
6
  #tenants;
6
7
  #runAsReplicationManager;
7
8
  constructor(lc, runAsReplicationManager, tenants, opts) {
8
- super('tenant-dispatcher', lc, opts, fastify => {
9
- installWebSocketHandoff(lc, req => this.#handoff(req), fastify.server);
9
+ super('zero-dispatcher', lc, opts, fastify => {
10
+ installWebSocketHandoff(lc, this.#handoff, fastify.server);
10
11
  });
11
12
  this.#runAsReplicationManager = runAsReplicationManager;
12
13
  this.#tenants = tenants.filter(
13
14
  // Only tenants with a host or path can be dispatched to
14
- // in the view-syncer.
15
- t => runAsReplicationManager || t.host || t.path);
15
+ // in the view-syncer (with the exception of the single tenant
16
+ // case, signified by the empty id).
17
+ t => runAsReplicationManager || t.host || t.path || t.id.length === 0);
16
18
  }
17
- #handoff(req) {
19
+ #handoff = (req, dispatch, onError) => {
20
+ const t = this.#getTenant(req);
21
+ void t
22
+ .getWorker()
23
+ .then(receiver => dispatch({ payload: t.id, receiver }), onError);
24
+ };
25
+ #getTenant(req) {
18
26
  const { headers, url: u } = req;
19
27
  const host = headers.host?.toLowerCase();
20
28
  const { pathname } = new URL(u ?? '', `http://${host}/`);
21
29
  for (const t of this.#tenants) {
30
+ if (t.id.length === 0) {
31
+ // sole tenant
32
+ assert(this.#tenants.length === 1);
33
+ return t;
34
+ }
22
35
  if (this.#runAsReplicationManager) {
23
36
  // The replication-manager dispatches internally using the
24
37
  // tenant ID as the first path component
25
38
  if (pathname.startsWith('/' + t.id + '/')) {
26
- return { payload: t.id, receiver: t.worker };
39
+ return t;
27
40
  }
28
41
  continue;
29
42
  }
30
43
  if (t.host && t.host !== host) {
31
44
  continue;
32
45
  }
33
- if (t.path && pathname !== t.path && !pathname.startsWith(t.path + '/')) {
46
+ if (t.path && !pathname.startsWith(t.path)) {
34
47
  continue;
35
48
  }
36
49
  this._lc.debug?.(`connecting ${host}${pathname} to ${t.id}`);
37
- return { payload: t.id, receiver: t.worker };
50
+ return t;
38
51
  }
39
52
  throw new Error(`no matching tenant for: ${host}${pathname}`);
40
53
  }
41
54
  }
42
- //# sourceMappingURL=tenant-dispatcher.js.map
55
+ //# sourceMappingURL=zero-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zero-dispatcher.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/server/runner/zero-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,19 @@ import { Server } from 'node:http';
3
3
  import { WebSocketServer, type WebSocket } from 'ws';
4
4
  import { type IncomingMessageSubset } from '../../types/http.ts';
5
5
  import { type Receiver, type Sender, type Worker } from '../../types/processes.ts';
6
- export type WebSocketHandoff<P> = (message: IncomingMessageSubset) => {
6
+ export type HandoffSpec<P> = {
7
7
  payload: P;
8
8
  receiver: Receiver;
9
9
  };
10
+ /**
11
+ * The WebSocketHandoff is a function that either returns the payload and
12
+ * receiver, or invokes the specified `callback` with the payload and
13
+ * receiver. It must not do both.
14
+ *
15
+ * Similarly, an error can be handled by throwing synchronously from the
16
+ * function, or invoking the `onerror` callback.
17
+ */
18
+ export type WebSocketHandoff<P> = (message: IncomingMessageSubset, callback: (h: HandoffSpec<P>) => void, onerror: (reason: unknown) => void) => HandoffSpec<P> | void;
10
19
  export type WebSocketReceiver<P> = (ws: WebSocket, payload: P) => void;
11
20
  /**
12
21
  * Installs websocket handoff logic from either an http.Server
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-handoff.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/websocket-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAkB,MAAM,EAAC,MAAM,WAAW,CAAC;AAElD,OAAO,EAAC,eAAe,EAAE,KAAK,SAAS,EAAC,MAAM,IAAI,CAAC;AACnD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACZ,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,KAAK;IACpE,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,QA0CxB;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,QAWf"}
1
+ {"version":3,"file":"websocket-handoff.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/websocket-handoff.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAkB,MAAM,EAAC,MAAM,WAAW,CAAC;AAElD,OAAO,EAAC,eAAe,EAAE,KAAK,SAAS,EAAC,MAAM,IAAI,CAAC;AAEnD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEL,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,MAAM,EACZ,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAChC,OAAO,EAAE,qBAAqB,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,EACrC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,KAC/B,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AAE3B,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,CAAC;AAEvE;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EACvC,EAAE,EAAE,UAAU,EACd,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC5B,MAAM,EAAE,MAAM,GAAG,MAAM,QAyDxB;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EACxC,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,QAWf"}
@@ -1,6 +1,7 @@
1
1
  import { IncomingMessage, Server } from 'node:http';
2
2
  import { Socket } from 'node:net';
3
3
  import { WebSocketServer } from 'ws';
4
+ import { assert } from "../../../../shared/src/asserts.js";
4
5
  import { serializableSubset, } from "../../types/http.js";
5
6
  import { MESSAGE_TYPES, } from "../../types/processes.js";
6
7
  import { closeWithError, PROTOCOL_ERROR } from "../../types/ws.js";
@@ -12,8 +13,10 @@ import { closeWithError, PROTOCOL_ERROR } from "../../types/ws.js";
12
13
  export function installWebSocketHandoff(lc, handoff, source) {
13
14
  const wss = new WebSocketServer({ noServer: true });
14
15
  const handle = (message, socket, head) => {
15
- try {
16
- const { payload, receiver } = handoff(message);
16
+ let sent = false;
17
+ function send({ payload, receiver }) {
18
+ assert(!sent, 'Handoff callback already invoked');
19
+ sent = true;
17
20
  const data = [
18
21
  'handoff',
19
22
  {
@@ -26,12 +29,21 @@ export function installWebSocketHandoff(lc, handoff, source) {
26
29
  // https://nodejs.org/api/http.html#event-upgrade
27
30
  receiver.send(data, socket);
28
31
  }
29
- catch (error) {
32
+ function onError(error) {
30
33
  // Returning an error on the HTTP handshake looks like a hanging connection
31
34
  // (at least from Chrome) and doesn't report any meaningful error in the browser.
32
35
  // Instead, finish the upgrade to a websocket and then close it with an error.
33
36
  wss.handleUpgrade(message, socket, head, ws => closeWithError(lc, ws, error, PROTOCOL_ERROR));
34
37
  }
38
+ try {
39
+ const spec = handoff(message, send, onError);
40
+ if (spec) {
41
+ send(spec);
42
+ }
43
+ }
44
+ catch (error) {
45
+ onError(error);
46
+ }
35
47
  };
36
48
  if (source instanceof Server) {
37
49
  // handoff messages from an HTTP server
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-handoff.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/websocket-handoff.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAE,MAAM,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAChC,OAAO,EAAC,eAAe,EAAiB,MAAM,IAAI,CAAC;AACnD,OAAO,EACL,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,aAAa,GAId,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAC,cAAc,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AASjE;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,EAAc,EACd,OAA4B,EAC5B,MAAuB;IAEvB,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,CACb,OAA8B,EAC9B,MAAc,EACd,IAAY,EACZ,EAAE;QACF,IAAI,CAAC;YACH,MAAM,EAAC,OAAO,EAAE,QAAQ,EAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG;gBACX,SAAS;gBACT;oBACE,OAAO,EAAE,kBAAkB,CAAC,OAAO,CAAC;oBACpC,IAAI;oBACJ,OAAO;iBACR;aACmB,CAAC;YAEvB,gFAAgF;YAChF,iDAAiD;YACjD,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,MAAgB,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2EAA2E;YAC3E,iFAAiF;YACjF,8EAA8E;YAC9E,GAAG,CAAC,aAAa,CAAC,OAA0B,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAC/D,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,CAC9C,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,MAAM,YAAY,MAAM,EAAE,CAAC;QAC7B,uCAAuC;QACvC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,8CAA8C;QAC9C,MAAM,CAAC,aAAa,CAAa,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,EAAC,OAAO,EAAE,IAAI,EAAC,GAAG,GAAG,CAAC;YAC5B,MAAM,CAAC,OAAO,EAAE,MAAgB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAuB,EACvB,OAA6B,EAC7B,MAAc;IAEd,MAAM,CAAC,aAAa,CAAa,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;QAC1D,MAAM,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,GAAG,GAAG,CAAC;QACrC,MAAM,CAAC,aAAa,CAClB,OAA0B,EAC1B,MAAgB,EAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EACjB,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"websocket-handoff.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/dispatcher/websocket-handoff.ts"],"names":[],"mappings":"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"}
@@ -94,6 +94,7 @@ export declare class PipelineDriver {
94
94
  * @return The rows from the initial hydration of the query.
95
95
  */
96
96
  addQuery(hash: string, query: AST): Iterable<RowChange>;
97
+ setHydrationTime(hash: string, hydrationTimeMs: number): void;
97
98
  /**
98
99
  * Removes the pipeline for the query. This is a no-op if the query
99
100
  * was not added.
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline-driver.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pipeline-driver.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/pipeline-driver.ts"],"names":[],"mappings":"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"}
@@ -197,8 +197,17 @@ export class PipelineDriver {
197
197
  }
198
198
  runtimeDebugStats.resetRowsVended(this.#clientGroupID);
199
199
  }
200
+ // Note: This hydrationTime is a wall-clock overestimate, as it does
201
+ // not take time slicing into account. The view-syncer resets this
202
+ // to a more precise processing-time measurement with setHydrationTime().
200
203
  this.#pipelines.set(hash, { input, hydrationTimeMs });
201
204
  }
205
+ setHydrationTime(hash, hydrationTimeMs) {
206
+ const p = this.#pipelines.get(hash);
207
+ if (p) {
208
+ this.#pipelines.set(hash, { ...p, hydrationTimeMs });
209
+ }
210
+ }
202
211
  /**
203
212
  * Removes the pipeline for the query. This is a no-op if the query
204
213
  * was not added.
@@ -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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"}
@@ -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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"}
@@ -151,7 +151,7 @@ export class ViewSyncerService {
151
151
  }
152
152
  // stateVersion is at or beyond CVR version for the first time.
153
153
  lc.info?.(`init pipelines@${version} (cvr@${cvrVer})`);
154
- this.#hydrateUnchangedQueries(lc, cvr);
154
+ await this.#hydrateUnchangedQueries(lc, cvr);
155
155
  await this.#syncQueryPipelineSet(lc, cvr);
156
156
  this.#pipelinesSynced = true;
157
157
  });
@@ -476,7 +476,7 @@ export class ViewSyncerService {
476
476
  *
477
477
  * This must be called from within the #lock.
478
478
  */
479
- #hydrateUnchangedQueries(lc, cvr) {
479
+ async #hydrateUnchangedQueries(lc, cvr) {
480
480
  assert(this.#pipelines.initialized());
481
481
  const dbVersion = this.#pipelines.currentVersion();
482
482
  const cvrVersion = cvr.version;
@@ -499,13 +499,21 @@ export class ViewSyncerService {
499
499
  }
500
500
  const start = Date.now();
501
501
  let count = 0;
502
- startSpan(tracer, 'vs.#hydrateUnchangedQueries.addQuery', span => {
502
+ await startAsyncSpan(tracer, 'vs.#hydrateUnchangedQueries.addQuery', async (span) => {
503
503
  span.setAttribute('queryHash', hash);
504
504
  span.setAttribute('transformationHash', transformationHash);
505
505
  span.setAttribute('table', ast.table);
506
+ const timer = new Timer().start();
506
507
  for (const _ of this.#pipelines.addQuery(transformationHash, transformedAst)) {
507
- count++;
508
+ if (++count % TIME_SLICE_CHECK_SIZE === 0) {
509
+ if (timer.elapsedLap() > TIME_SLICE_MS) {
510
+ timer.stopLap();
511
+ await yieldProcess(this.#setTimeout);
512
+ timer.startLap();
513
+ }
514
+ }
508
515
  }
516
+ this.#pipelines.setHydrationTime(transformationHash, timer.stop());
509
517
  });
510
518
  const elapsed = Date.now() - start;
511
519
  lc.debug?.(`hydrated ${count} rows for ${hash} (${elapsed} ms)`);
@@ -590,6 +598,8 @@ export class ViewSyncerService {
590
598
  for (const hash of unhydrateQueries) {
591
599
  this.#pipelines.removeQuery(hash);
592
600
  }
601
+ let totalProcessTime = 0;
602
+ const timer = new Timer();
593
603
  const pipelines = this.#pipelines;
594
604
  function* generateRowChanges(slowHydrateThreshold) {
595
605
  for (const q of addQueries) {
@@ -597,13 +607,15 @@ export class ViewSyncerService {
597
607
  .withContext('hash', q.id)
598
608
  .withContext('transformationHash', q.transformationHash);
599
609
  lc.debug?.(`adding pipeline for query`, q.ast);
600
- const start = performance.now();
610
+ timer.start();
601
611
  yield* pipelines.addQuery(q.transformationHash, q.ast);
602
- const end = performance.now();
603
- if (end - start > slowHydrateThreshold) {
604
- lc.warn?.('Slow query materialization', end - start, q.ast);
612
+ const elapsed = timer.stop();
613
+ pipelines.setHydrationTime(q.transformationHash, elapsed);
614
+ totalProcessTime += elapsed;
615
+ if (elapsed > slowHydrateThreshold) {
616
+ lc.warn?.('Slow query materialization', elapsed, q.ast);
605
617
  }
606
- manualSpan(tracer, 'vs.addAndConsumeQuery', end - start, {
618
+ manualSpan(tracer, 'vs.addAndConsumeQuery', elapsed, {
607
619
  hash: q.id,
608
620
  transformationHash: q.transformationHash,
609
621
  });
@@ -611,7 +623,7 @@ export class ViewSyncerService {
611
623
  }
612
624
  // #processChanges does batched de-duping of rows. Wrap all pipelines in
613
625
  // a single generator in order to maximize de-duping.
614
- const processTime = await this.#processChanges(lc, generateRowChanges(this.#slowHydrateThreshold), updater, pokers, hashToIDs);
626
+ await this.#processChanges(lc, timer, generateRowChanges(this.#slowHydrateThreshold), updater, pokers, hashToIDs);
615
627
  for (const patch of await updater.deleteUnreferencedRows(lc)) {
616
628
  await pokers.addPatch(patch);
617
629
  }
@@ -623,7 +635,7 @@ export class ViewSyncerService {
623
635
  // Signal clients to commit.
624
636
  await pokers.end(finalVersion);
625
637
  const wallTime = Date.now() - start;
626
- lc.info?.(`finished processing queries (process: ${processTime} ms, wall: ${wallTime} ms)`);
638
+ lc.info?.(`finished processing queries (process: ${totalProcessTime} ms, wall: ${wallTime} ms)`);
627
639
  });
628
640
  }
629
641
  /**
@@ -694,18 +706,15 @@ export class ViewSyncerService {
694
706
  }
695
707
  });
696
708
  }
697
- /** Returns the time spent processing rows (i.e. excludes yielded time) */
698
- #processChanges(lc, changes, updater, pokers, hashToIDs) {
709
+ #processChanges(lc, timer, changes, updater, pokers, hashToIDs) {
699
710
  return startAsyncSpan(tracer, 'vs.#processChanges', async () => {
700
711
  const start = Date.now();
701
- let lapStart = start;
702
- let totalProcessingTime = 0;
703
712
  const rows = new CustomKeyMap(rowIDString);
704
713
  let total = 0;
705
714
  const processBatch = () => startAsyncSpan(tracer, 'processBatch', async () => {
706
- const elapsed = Date.now() - start;
715
+ const wallElapsed = Date.now() - start;
707
716
  total += rows.size;
708
- lc.debug?.(`processing ${rows.size} (of ${total}) rows (${elapsed} ms)`);
717
+ lc.debug?.(`processing ${rows.size} (of ${total}) rows (${wallElapsed} ms)`);
709
718
  const patches = await updater.received(lc, rows);
710
719
  for (const patch of patches) {
711
720
  await pokers.addPatch(patch);
@@ -749,11 +758,10 @@ export class ViewSyncerService {
749
758
  await processBatch();
750
759
  }
751
760
  if (rows.size % TIME_SLICE_CHECK_SIZE === 0) {
752
- const elapsed = Date.now() - lapStart;
753
- if (elapsed > TIME_SLICE_MS) {
754
- totalProcessingTime += elapsed;
761
+ if (timer.elapsedLap() > TIME_SLICE_MS) {
762
+ timer.stopLap();
755
763
  await yieldProcess(this.#setTimeout);
756
- lapStart = Date.now();
764
+ timer.startLap();
757
765
  }
758
766
  }
759
767
  }
@@ -762,9 +770,6 @@ export class ViewSyncerService {
762
770
  }
763
771
  span.setAttribute('totalRows', total);
764
772
  });
765
- // Add the time for the last lap.
766
- totalProcessingTime += Date.now() - lapStart;
767
- return totalProcessingTime;
768
773
  });
769
774
  }
770
775
  /**
@@ -790,7 +795,7 @@ export class ViewSyncerService {
790
795
  lc.debug?.(`applying ${numChanges} to advance to ${version}`);
791
796
  const hashToIDs = createHashToIDs(cvr);
792
797
  try {
793
- await this.#processChanges(lc, changes, updater, pokers, hashToIDs);
798
+ await this.#processChanges(lc, new Timer().start(), changes, updater, pokers, hashToIDs);
794
799
  }
795
800
  catch (e) {
796
801
  if (e instanceof ResetPipelinesSignal) {
@@ -991,4 +996,40 @@ function hasExpiredQueries(cvr) {
991
996
  }
992
997
  return false;
993
998
  }
999
+ class Timer {
1000
+ #total = 0;
1001
+ #start = 0;
1002
+ start() {
1003
+ this.#total = 0;
1004
+ this.startLap();
1005
+ return this;
1006
+ }
1007
+ startLap() {
1008
+ assert(this.#start === 0, 'already running');
1009
+ this.#start = performance.now();
1010
+ }
1011
+ elapsedLap() {
1012
+ assert(this.#start !== 0, 'not running');
1013
+ return performance.now() - this.#start;
1014
+ }
1015
+ stopLap() {
1016
+ assert(this.#start !== 0, 'not running');
1017
+ this.#total += performance.now() - this.#start;
1018
+ this.#start = 0;
1019
+ }
1020
+ /** @returns the total elapsed time */
1021
+ stop() {
1022
+ this.stopLap();
1023
+ return this.#total;
1024
+ }
1025
+ /**
1026
+ * @returns the elapsed time. This can be called while the Timer is running
1027
+ * or after it has been stopped.
1028
+ */
1029
+ totalElapsed() {
1030
+ return this.#start === 0
1031
+ ? this.#total
1032
+ : this.#total + performance.now() - this.#start;
1033
+ }
1034
+ }
994
1035
  //# sourceMappingURL=view-syncer.js.map