@rocicorp/zero 0.21.2025070201 → 0.22.2025070200
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-CESYRWV4.js → chunk-43L7S6AU.js} +46 -34
- package/out/{chunk-CESYRWV4.js.map → chunk-43L7S6AU.js.map} +4 -4
- package/out/{chunk-UOYRI2SS.js → chunk-HTNKB2W7.js} +253 -55
- package/out/chunk-HTNKB2W7.js.map +7 -0
- package/out/{chunk-UYT6AWSA.js → chunk-ODTJYJ37.js} +3 -3
- package/out/{inspector-LF6RTN44.js → inspector-WSEHHWA3.js} +7 -3
- package/out/{inspector-LF6RTN44.js.map → inspector-WSEHHWA3.js.map} +2 -2
- package/out/react.js +2 -2
- package/out/shared/src/broadcast-channel.d.ts.map +1 -0
- package/out/solid.js +111 -99
- package/out/solid.js.map +4 -4
- package/out/zero-cache/src/config/zero-config.d.ts +8 -0
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +9 -0
- package/out/zero-cache/src/config/zero-config.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 +2 -2
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/copy-runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/copy-runner.js +4 -3
- package/out/zero-cache/src/services/change-source/pg/copy-runner.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js +4 -4
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +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 +10 -3
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +6 -2
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +12 -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 +41 -10
- 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 +4 -6
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +16 -29
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +2 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +8 -7
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.js +7 -0
- package/out/zero-cache/src/services/view-syncer/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.js +3 -0
- package/out/zero-cache/src/services/view-syncer/schema/types.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +2 -4
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +144 -48
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +1 -25
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js +1 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.js.map +1 -1
- package/out/zero-client/src/client/active-clients-manager.d.ts +49 -0
- package/out/zero-client/src/client/active-clients-manager.d.ts.map +1 -0
- package/out/zero-client/src/client/inspector/types.d.ts +4 -2
- package/out/zero-client/src/client/inspector/types.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +2 -1
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-protocol/src/close-connection.d.ts +4 -0
- package/out/zero-protocol/src/close-connection.d.ts.map +1 -1
- package/out/zero-protocol/src/close-connection.js +2 -0
- package/out/zero-protocol/src/close-connection.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts +14 -0
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js +7 -0
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +3 -1
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +12 -4
- package/out/zero-protocol/src/inspect-down.d.ts.map +1 -1
- package/out/zero-protocol/src/inspect-down.js +7 -1
- package/out/zero-protocol/src/inspect-down.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js +3 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +1 -0
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +6 -1
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-solid/src/mod.d.ts +2 -2
- package/out/zero-solid/src/mod.d.ts.map +1 -1
- package/out/zero-solid/src/solid-view.d.ts +8 -6
- package/out/zero-solid/src/solid-view.d.ts.map +1 -1
- package/out/zero-solid/src/{create-query.d.ts → use-query.d.ts} +7 -7
- package/out/zero-solid/src/use-query.d.ts.map +1 -0
- package/out/zero-solid/src/use-zero.d.ts +11 -0
- package/out/zero-solid/src/use-zero.d.ts.map +1 -0
- package/out/zero.js +3 -3
- package/out/zql/src/ivm/take.d.ts.map +1 -1
- package/out/zql/src/ivm/take.js +6 -0
- package/out/zql/src/ivm/take.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +3 -3
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js +4 -4
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +1 -1
- package/out/zql/src/query/ttl.d.ts +4 -0
- package/out/zql/src/query/ttl.d.ts.map +1 -1
- package/out/zql/src/query/ttl.js +12 -1
- package/out/zql/src/query/ttl.js.map +1 -1
- package/package.json +3 -3
- package/out/chunk-UOYRI2SS.js.map +0 -7
- package/out/replicache/src/broadcast-channel.d.ts.map +0 -1
- package/out/shared/src/ref-count.d.ts +0 -16
- package/out/shared/src/ref-count.d.ts.map +0 -1
- package/out/zero-solid/src/create-query.d.ts.map +0 -1
- package/out/zero-solid/src/create-zero.d.ts +0 -3
- package/out/zero-solid/src/create-zero.d.ts.map +0 -1
- /package/out/{chunk-UYT6AWSA.js.map → chunk-ODTJYJ37.js.map} +0 -0
- /package/out/{replicache → shared}/src/broadcast-channel.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AAIzD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,gBAAgB;IAC3B;;OAEG;;IAGH;;;;;;;;;;;;;;;OAeG;;aAEH,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D,eAAO,MAAM,iBAAiB,EAAE,UAEtB,CAAC;AAEX,wBAAgB,QAAQ,CAAC,CAAC,EAAE,kBAAkB,GAAG,UAAU,CAO1D;AAED,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,IAAI,CAAC;AAEnD,wBAAgB,WAAW,CACzB,CAAC,EAAE,kBAAkB,EACrB,CAAC,EAAE,kBAAkB,GACpB,MAAM,CAYR;AAED,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,UAAU,CAEpE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAErD;AAED,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,kBAAkB,CAKzE;AAID,eAAO,MAAM,WAAW;;aAA6B,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAiBhD,eAAO,MAAM,kBAAkB;IAC7B,6EAA6E;;IAG7E,sFAAsF;;aAEtF,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE9D,eAAO,MAAM,qBAAqB;IAChC,6EAA6E;;IAG7E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;OAMG;;;;;aAEH,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB;IA7CpC,6EAA6E;;IAG7E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;;IAGH;;;;;;OAMG;;;;;;;;aAaH,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -146,6 +146,9 @@ const clientStateSchema = v.object({
|
|
|
146
146
|
* TTL, time to live in milliseconds. If the query is not updated within this
|
|
147
147
|
* time. The time to live is the time after it has become inactive. Negative
|
|
148
148
|
* values are treated as `'forever'`.
|
|
149
|
+
*
|
|
150
|
+
* We do clamp this to a maximum of 10 minutes, so that queries do not
|
|
151
|
+
* live for a very long time in the CVR.
|
|
149
152
|
*/
|
|
150
153
|
ttl: v.number(),
|
|
151
154
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../../zero-cache/src/services/view-syncer/schema/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,0CAA0C,CAAC;AACpE,OAAO,KAAK,CAAC,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAClE,OAAO,EAAC,eAAe,EAAC,MAAM,0CAA0C,CAAC;AACzE,OAAO,EAAC,eAAe,EAAE,aAAa,EAAC,MAAM,gCAAgC,CAAC;AAG9E,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;OAEG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,cAAc;IAExC;;;;;;;;;;;;;;;OAeG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACpC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAe;IAC3C,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC;CACtB,CAAC;AAEX,MAAM,UAAU,QAAQ,CAAC,CAAqB;IAC5C,OAAO,CAAC,KAAK,IAAI;QACf,CAAC,CAAC,EAAC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,EAAC;QAClC,CAAC,CAAC;YACE,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,YAAY,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;SACxC,CAAC;AACR,CAAC;AAID,MAAM,UAAU,WAAW,CACzB,CAAqB,EACrB,CAAqB;IAErB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI;QAC7B,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,CAAC,KAAK,IAAI;YACV,CAAC,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC,KAAK,IAAI;gBACV,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;oBAC/B,CAAC,CAAC,CAAC,CAAC;oBACJ,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,CAAC,CAAC,YAAY;wBAC/B,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAa,EAAE,CAAc;IACtD,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAa;IAC3C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,CAAqB;IAC3D,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,wBAAwB;AAExB,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,EAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC;AAGtD,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IAC/B;;;;;;;;;;OAUG;IACH,YAAY,EAAE,gBAAgB;CAC/B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,6EAA6E;IAC7E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAEd,sFAAsF;IACtF,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACrC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,6EAA6E;IAC7E,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IAEd;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEzC;;;;;;OAMG;IACH,qBAAqB,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CACnD,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IACpE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAIH,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEpC;;;;;;;OAOG;IACH,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IAEf;;OAEG;IACH,OAAO,EAAE,gBAAgB;CAC1B,CAAC,CAAC;AAEH,MAAM,yBAAyB,GAAG,qBAAqB,CAAC,MAAM,CAAC;IAC7D;;;;OAIG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAExC,iFAAiF;IACjF,mCAAmC;IACnC,YAAY,EAAE,gBAAgB,CAAC,QAAQ,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IAEzB,kDAAkD;IAClD,GAAG,EAAE,SAAS;CACf,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,MAAM,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;CACtC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CACtC,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,CAC1B,CAAC;AAIF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;CAClC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,WAAW;IACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,0BAA0B;IAClD,0EAA0E;IAC1E,yBAAyB;IACzB,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC;IACpC,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,CAAC;CACjC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACpB,EAAE,EAAE,WAAW;IACf,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,0BAA0B;CACnD,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;IAClD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACpB,EAAE,EAAE,WAAW;CAChB,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAI5E,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,6CAA6C;CAC/E,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAIpD,MAAM,UAAU,aAAa,CAAC,CAAa;IACzC,0EAA0E;IAC1E,6FAA6F;IAC7F,mFAAmF;IACnF,wBAAwB;IACxB,OAAO,CAAC,CAAC,YAAY;QACnB,CAAC,CAAC,GAAG,CAAC,CAAC,YAAY,IAAI,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE;QACtD,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,QAAQ,KAAK,CAAC,MAAM,EAAE,CAAC;QACrB,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,yBAAyB;YACxD,OAAO,EAAC,YAAY,EAAC,CAAC;QACxB,CAAC;QACD,KAAK,CAAC,CAAC,CAAC,CAAC;YACP,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACnD,MAAM,IAAI,KAAK,CAAC,gBAAgB,KAAK,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,EAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,EAAC,CAAC;QAC5D,CAAC;QACD;YACE,MAAM,IAAI,SAAS,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,aAAqB,EACrB,KAAkB;IAElB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,UAAU;YACb,OAAO;gBACL,aAAa;gBACb,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,IAAI;gBAClB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,qBAAqB,EAAE,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK,EAAE,yBAAyB;aAC1C,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,aAAa;gBACb,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,SAAS,EAAE,KAAK,CAAC,GAAG;gBACpB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,IAAI;gBACf,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC;gBACpD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,qBAAqB,EAAE,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK,EAAE,yBAAyB;aAC1C,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO;gBACL,aAAa;gBACb,SAAS,EAAE,KAAK,CAAC,EAAE;gBACnB,SAAS,EAAE,IAAI;gBACf,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,SAAS,EAAE,KAAK,CAAC,IAAI;gBACrB,YAAY,EAAE,kBAAkB,CAAC,KAAK,CAAC,YAAY,CAAC;gBACpD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAAI,IAAI;gBACpD,qBAAqB,EAAE,kBAAkB,CAAC,KAAK,CAAC,qBAAqB,CAAC;gBACtE,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK,EAAE,yBAAyB;aAC1C,CAAC;IACN,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAyB,EAAE,EAAE,CAC9D,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { LogContext } from '@rocicorp/logger';
|
|
2
2
|
import type { JWTPayload } from 'jose';
|
|
3
3
|
import type { ChangeDesiredQueriesMessage } from '../../../../zero-protocol/src/change-desired-queries.ts';
|
|
4
|
-
import type { CloseConnectionMessage } from '../../../../zero-protocol/src/close-connection.ts';
|
|
5
4
|
import type { InitConnectionMessage } from '../../../../zero-protocol/src/connect.ts';
|
|
6
5
|
import type { DeleteClientsMessage } from '../../../../zero-protocol/src/delete-clients.ts';
|
|
7
6
|
import type { Downstream } from '../../../../zero-protocol/src/down.ts';
|
|
8
7
|
import type { InspectUpMessage } from '../../../../zero-protocol/src/inspect-up.ts';
|
|
8
|
+
import { type ZeroConfig } from '../../config/zero-config.ts';
|
|
9
9
|
import type { PostgresDB } from '../../types/pg.ts';
|
|
10
10
|
import type { ShardID } from '../../types/shards.ts';
|
|
11
11
|
import type { Source } from '../../types/streams.ts';
|
|
@@ -14,7 +14,6 @@ import type { ReplicaState } from '../replicator/replicator.ts';
|
|
|
14
14
|
import type { ActivityBasedService } from '../service.ts';
|
|
15
15
|
import type { DrainCoordinator } from './drain-coordinator.ts';
|
|
16
16
|
import { PipelineDriver } from './pipeline-driver.ts';
|
|
17
|
-
import { type ZeroConfig } from '../../config/zero-config.ts';
|
|
18
17
|
export type TokenData = {
|
|
19
18
|
readonly raw: string;
|
|
20
19
|
readonly decoded: JWTPayload;
|
|
@@ -32,13 +31,13 @@ export interface ViewSyncer {
|
|
|
32
31
|
initConnection(ctx: SyncContext, msg: InitConnectionMessage): Source<Downstream>;
|
|
33
32
|
changeDesiredQueries(ctx: SyncContext, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
34
33
|
deleteClients(ctx: SyncContext, msg: DeleteClientsMessage): Promise<void>;
|
|
35
|
-
closeConnection(ctx: SyncContext, msg: CloseConnectionMessage): Promise<void>;
|
|
36
34
|
inspect(context: SyncContext, msg: InspectUpMessage): Promise<void>;
|
|
37
35
|
}
|
|
38
36
|
type SetTimeout = (fn: (...args: unknown[]) => void, delay?: number) => ReturnType<typeof setTimeout>;
|
|
39
37
|
export declare class ViewSyncerService implements ViewSyncer, ActivityBasedService {
|
|
40
38
|
#private;
|
|
41
39
|
readonly id: string;
|
|
40
|
+
get ttlClockBase(): number;
|
|
42
41
|
/**
|
|
43
42
|
* The {@linkcode maxRowCount} is used for the eviction of inactive queries.
|
|
44
43
|
* An inactive query is a query that is no longer desired but is kept alive
|
|
@@ -65,7 +64,6 @@ export declare class ViewSyncerService implements ViewSyncer, ActivityBasedServi
|
|
|
65
64
|
initConnection(ctx: SyncContext, initConnectionMessage: InitConnectionMessage): Source<Downstream>;
|
|
66
65
|
changeDesiredQueries(ctx: SyncContext, msg: ChangeDesiredQueriesMessage): Promise<void>;
|
|
67
66
|
deleteClients(ctx: SyncContext, msg: DeleteClientsMessage): Promise<void>;
|
|
68
|
-
closeConnection(ctx: SyncContext, msg: CloseConnectionMessage): Promise<void>;
|
|
69
67
|
inspect(context: SyncContext, msg: InspectUpMessage): Promise<void>;
|
|
70
68
|
stop(): Promise<void>;
|
|
71
69
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-syncer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/view-syncer/view-syncer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,MAAM,CAAC;
|
|
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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"}
|
|
@@ -4,27 +4,27 @@ import { resolver } from '@rocicorp/resolver';
|
|
|
4
4
|
import { manualSpan, startAsyncSpan, startSpan, } from "../../../../otel/src/span.js";
|
|
5
5
|
import { version } from "../../../../otel/src/version.js";
|
|
6
6
|
import { assert, unreachable } from "../../../../shared/src/asserts.js";
|
|
7
|
+
import { stringify } from "../../../../shared/src/bigint-json.js";
|
|
7
8
|
import { CustomKeyMap } from "../../../../shared/src/custom-key-map.js";
|
|
8
9
|
import { hasOwn } from "../../../../shared/src/has-own.js";
|
|
9
10
|
import { must } from "../../../../shared/src/must.js";
|
|
10
11
|
import { randInt } from "../../../../shared/src/rand.js";
|
|
11
12
|
import { ErrorKind } from "../../../../zero-protocol/src/error-kind.js";
|
|
12
13
|
import { transformAndHashQuery, } from "../../auth/read-authorizer.js";
|
|
14
|
+
import {} from "../../config/zero-config.js";
|
|
15
|
+
import { CustomQueryTransformer } from "../../custom-queries/transform-query.js";
|
|
13
16
|
import * as counters from "../../observability/counters.js";
|
|
14
17
|
import * as histograms from "../../observability/histograms.js";
|
|
15
|
-
import { stringify } from "../../../../shared/src/bigint-json.js";
|
|
16
18
|
import { ErrorForClient, getLogLevel } from "../../types/error-for-client.js";
|
|
17
19
|
import { rowIDString } from "../../types/row-key.js";
|
|
18
20
|
import { Subscription } from "../../types/subscription.js";
|
|
19
21
|
import { ZERO_VERSION_COLUMN_NAME } from "../replicator/schema/replication-state.js";
|
|
20
22
|
import { ClientHandler, startPoke, } from "./client-handler.js";
|
|
21
23
|
import { CVRStore } from "./cvr-store.js";
|
|
22
|
-
import { CVRConfigDrivenUpdater, CVRQueryDrivenUpdater, getInactiveQueries, nextEvictionTime, } from "./cvr.js";
|
|
24
|
+
import { CVRConfigDrivenUpdater, CVRQueryDrivenUpdater, CVRUpdater, getInactiveQueries, nextEvictionTime, } from "./cvr.js";
|
|
23
25
|
import { PipelineDriver } from "./pipeline-driver.js";
|
|
24
26
|
import { cmpVersions, EMPTY_CVR_VERSION, versionFromString, versionString, versionToCookie, } from "./schema/types.js";
|
|
25
27
|
import { ResetPipelinesSignal } from "./snapshotter.js";
|
|
26
|
-
import { CustomQueryTransformer } from "../../custom-queries/transform-query.js";
|
|
27
|
-
import {} from "../../config/zero-config.js";
|
|
28
28
|
const tracer = trace.getTracer('view-syncer', version);
|
|
29
29
|
const DEFAULT_KEEPALIVE_MS = 5_000;
|
|
30
30
|
// We have previously said that the goal is to have 20MB on the client.
|
|
@@ -33,6 +33,12 @@ const DEFAULT_MAX_ROW_COUNT = 20_000;
|
|
|
33
33
|
function randomID() {
|
|
34
34
|
return randInt(1, Number.MAX_SAFE_INTEGER).toString(36);
|
|
35
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* We update the ttlClock in flush that writes to the CVR but
|
|
38
|
+
* some flushes do not write to the CVR and in those cases we
|
|
39
|
+
* use a timer to update the ttlClock every minute.
|
|
40
|
+
*/
|
|
41
|
+
const TTL_CLOCK_INTERVAL = 60_000;
|
|
36
42
|
export class ViewSyncerService {
|
|
37
43
|
id;
|
|
38
44
|
#shard;
|
|
@@ -50,6 +56,31 @@ export class ViewSyncerService {
|
|
|
50
56
|
//
|
|
51
57
|
// Note: It is fine to update this variable outside of the lock.
|
|
52
58
|
#lastConnectTime = Date.now();
|
|
59
|
+
/**
|
|
60
|
+
* The TTL clock is used to determine the time at which queries are considered
|
|
61
|
+
* expired.
|
|
62
|
+
*/
|
|
63
|
+
#ttlClock = Date.now();
|
|
64
|
+
/**
|
|
65
|
+
* The base time for the TTL clock. This is used to compute the current TTL
|
|
66
|
+
* clock value. The first time a connection is made, this is set to the
|
|
67
|
+
* current time. On subsequent connections, the TTL clock is computed as the
|
|
68
|
+
* difference between the current time and this base time.
|
|
69
|
+
*
|
|
70
|
+
* Every time we write the ttlClock this is update to the current time. That
|
|
71
|
+
* way we can compute how much time has passed since the last time we set the
|
|
72
|
+
* ttlClock. When we set the ttlClock we just increment it by the amount of
|
|
73
|
+
* time that has passed since the last time we set it.
|
|
74
|
+
*/
|
|
75
|
+
#ttlClockBase = Date.now();
|
|
76
|
+
get ttlClockBase() {
|
|
77
|
+
return this.#ttlClockBase;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* We update the ttlClock every minute to ensure that it is not too much
|
|
81
|
+
* out of sync with the current time.
|
|
82
|
+
*/
|
|
83
|
+
#ttlClockInterval = 0;
|
|
53
84
|
// Note: It is okay to add/remove clients without acquiring the lock.
|
|
54
85
|
#clients = new Map();
|
|
55
86
|
// Serialize on this lock for:
|
|
@@ -200,7 +231,9 @@ export class ViewSyncerService {
|
|
|
200
231
|
}
|
|
201
232
|
// must be called from within #lock
|
|
202
233
|
#removeExpiredQueries = async (lc, cvr) => {
|
|
203
|
-
|
|
234
|
+
const now = Date.now();
|
|
235
|
+
const ttlClock = this.#getTTLClock(now);
|
|
236
|
+
if (hasExpiredQueries(cvr, ttlClock)) {
|
|
204
237
|
lc = lc.withContext('method', '#removeExpiredQueries');
|
|
205
238
|
lc.info?.('Queries have expired');
|
|
206
239
|
// #syncQueryPipelineSet() will remove the expired queries.
|
|
@@ -266,10 +299,18 @@ export class ViewSyncerService {
|
|
|
266
299
|
if (c === client) {
|
|
267
300
|
this.#clients.delete(clientID);
|
|
268
301
|
if (this.#clients.size === 0) {
|
|
302
|
+
this.#updateTTLClockInCVRWithoutLock(this.#lc);
|
|
303
|
+
this.#stopExpireTimer();
|
|
269
304
|
this.#scheduleShutdown();
|
|
270
305
|
}
|
|
271
306
|
}
|
|
272
307
|
}
|
|
308
|
+
#stopExpireTimer() {
|
|
309
|
+
this.#lc.debug?.('Stopping expired queries timer');
|
|
310
|
+
clearTimeout(this.#expiredQueriesTimer);
|
|
311
|
+
this.#expiredQueriesTimer = 0;
|
|
312
|
+
this.#nextExpiredQueryTime = 0;
|
|
313
|
+
}
|
|
273
314
|
initConnection(ctx, initConnectionMessage) {
|
|
274
315
|
this.#lc.debug?.('viewSyncer.initConnection');
|
|
275
316
|
return startSpan(tracer, 'vs.initConnection', () => {
|
|
@@ -289,6 +330,22 @@ export class ViewSyncerService {
|
|
|
289
330
|
this.#deleteClient(clientID, newClient);
|
|
290
331
|
},
|
|
291
332
|
});
|
|
333
|
+
if (this.#clients.size === 0) {
|
|
334
|
+
// First connection to this ViewSyncerService.
|
|
335
|
+
// initConnection must be synchronous so that the downstream
|
|
336
|
+
// subscription is returned immediately.
|
|
337
|
+
const now = Date.now();
|
|
338
|
+
this.#ttlClockBase = now;
|
|
339
|
+
// Get the TTL clock from the CVR store, or initialize it to now.
|
|
340
|
+
this.#cvrStore
|
|
341
|
+
.getTTLClock()
|
|
342
|
+
.then(ttlClock => {
|
|
343
|
+
this.#ttlClock = ttlClock ?? now;
|
|
344
|
+
})
|
|
345
|
+
.catch(e => {
|
|
346
|
+
this.#lc.error?.('failed to get TTL clock', e);
|
|
347
|
+
});
|
|
348
|
+
}
|
|
292
349
|
const newClient = new ClientHandler(lc, this.id, clientID, wsID, this.#shard, baseCookie, schemaVersion, downstream);
|
|
293
350
|
this.#clients.get(clientID)?.close(`replaced by wsID: ${wsID}`);
|
|
294
351
|
this.#clients.set(clientID, newClient);
|
|
@@ -312,19 +369,48 @@ export class ViewSyncerService {
|
|
|
312
369
|
this.#lc.error?.('deleteClients failed', e);
|
|
313
370
|
}
|
|
314
371
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
372
|
+
#getTTLClock(now) {
|
|
373
|
+
// We will update ttlClock with delta from the ttlClockBase to the current time.
|
|
374
|
+
const delta = now - this.#ttlClockBase;
|
|
375
|
+
const ttlClock = this.#ttlClock + delta;
|
|
376
|
+
this.#ttlClock = ttlClock;
|
|
377
|
+
this.#ttlClockBase = now;
|
|
378
|
+
return ttlClock;
|
|
379
|
+
}
|
|
380
|
+
async #flushUpdater(lc, updater) {
|
|
381
|
+
const now = Date.now();
|
|
382
|
+
const ttlClock = this.#getTTLClock(now);
|
|
383
|
+
const { cvr, flushed } = await updater.flush(lc, this.#lastConnectTime, now, ttlClock);
|
|
384
|
+
if (flushed) {
|
|
385
|
+
// If the CVR was flushed, we restart the ttlClock interval.
|
|
386
|
+
this.#startTTLClockInterval(lc);
|
|
321
387
|
}
|
|
388
|
+
return cvr;
|
|
389
|
+
}
|
|
390
|
+
#startTTLClockInterval(lc) {
|
|
391
|
+
this.#stopTTLClockInterval();
|
|
392
|
+
this.#ttlClockInterval = this.#setTimeout(() => {
|
|
393
|
+
this.#updateTTLClockInCVRWithoutLock(lc);
|
|
394
|
+
this.#startTTLClockInterval(lc);
|
|
395
|
+
}, TTL_CLOCK_INTERVAL);
|
|
396
|
+
}
|
|
397
|
+
#stopTTLClockInterval() {
|
|
398
|
+
clearTimeout(this.#ttlClockInterval);
|
|
399
|
+
this.#ttlClockInterval = 0;
|
|
400
|
+
}
|
|
401
|
+
#updateTTLClockInCVRWithoutLock(lc) {
|
|
402
|
+
lc.debug?.('Syncing ttlClock');
|
|
403
|
+
const now = Date.now();
|
|
404
|
+
const ttlClock = this.#getTTLClock(now);
|
|
405
|
+
this.#cvrStore.updateTTLClock(ttlClock, now).catch(e => {
|
|
406
|
+
lc.error?.('failed to update TTL clock', e);
|
|
407
|
+
});
|
|
322
408
|
}
|
|
323
409
|
async #updateCVRConfig(lc, cvr, clientID, fn) {
|
|
324
410
|
const updater = new CVRConfigDrivenUpdater(this.#cvrStore, cvr, this.#shard);
|
|
325
411
|
updater.ensureClient(clientID);
|
|
326
412
|
const patches = fn(updater);
|
|
327
|
-
this.#cvr =
|
|
413
|
+
this.#cvr = await this.#flushUpdater(lc, updater);
|
|
328
414
|
if (cmpVersions(cvr.version, this.#cvr.version) < 0) {
|
|
329
415
|
// Send pokes to catch up clients that are up to date.
|
|
330
416
|
// (Clients that are behind the cvr.version need to be caught up in
|
|
@@ -376,7 +462,7 @@ export class ViewSyncerService {
|
|
|
376
462
|
lc.warn?.(`Processing ${cmd} before initConnection was received`);
|
|
377
463
|
}
|
|
378
464
|
lc.debug?.(cmd, body);
|
|
379
|
-
return fn(lc, clientID,
|
|
465
|
+
return fn(lc, clientID, body, cvr);
|
|
380
466
|
});
|
|
381
467
|
}
|
|
382
468
|
catch (e) {
|
|
@@ -403,7 +489,7 @@ export class ViewSyncerService {
|
|
|
403
489
|
: clients;
|
|
404
490
|
}
|
|
405
491
|
// Must be called from within #lock.
|
|
406
|
-
#handleConfigUpdate = (lc, clientID,
|
|
492
|
+
#handleConfigUpdate = (lc, clientID, { clientSchema, deleted, desiredQueriesPatch, activeClients, }, cvr) => startAsyncSpan(tracer, 'vs.#patchQueries', async () => {
|
|
407
493
|
const deletedClientIDs = [];
|
|
408
494
|
const deletedClientGroupIDs = [];
|
|
409
495
|
cvr = await this.#updateCVRConfig(lc, cvr, clientID, updater => {
|
|
@@ -429,20 +515,29 @@ export class ViewSyncerService {
|
|
|
429
515
|
}
|
|
430
516
|
}
|
|
431
517
|
}
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
}
|
|
441
|
-
const patchesDueToClient = updater.deleteClient(cid);
|
|
442
|
-
patches.push(...patchesDueToClient);
|
|
443
|
-
deletedClientIDs.push(cid);
|
|
518
|
+
const clientIDsToDelete = new Set();
|
|
519
|
+
if (activeClients) {
|
|
520
|
+
// We find all the clients in this client group that are not active.
|
|
521
|
+
const allClientIDs = Object.keys(cvr.clients);
|
|
522
|
+
const activeClientsSet = new Set(activeClients);
|
|
523
|
+
for (const id of allClientIDs) {
|
|
524
|
+
if (!activeClientsSet.has(id)) {
|
|
525
|
+
clientIDsToDelete.add(id);
|
|
444
526
|
}
|
|
445
527
|
}
|
|
528
|
+
}
|
|
529
|
+
if (deleted?.clientIDs?.length) {
|
|
530
|
+
for (const cid of deleted.clientIDs) {
|
|
531
|
+
assert(cid !== clientID, 'cannot delete self');
|
|
532
|
+
clientIDsToDelete.add(cid);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
for (const cid of clientIDsToDelete) {
|
|
536
|
+
const patchesDueToClient = updater.deleteClient(cid);
|
|
537
|
+
patches.push(...patchesDueToClient);
|
|
538
|
+
deletedClientIDs.push(cid);
|
|
539
|
+
}
|
|
540
|
+
if (deleted?.clientGroupIDs?.length) {
|
|
446
541
|
if (deleted?.clientGroupIDs) {
|
|
447
542
|
for (const clientGroupID of deleted.clientGroupIDs) {
|
|
448
543
|
assert(clientGroupID !== this.id, 'cannot delete self');
|
|
@@ -452,8 +547,9 @@ export class ViewSyncerService {
|
|
|
452
547
|
}
|
|
453
548
|
return patches;
|
|
454
549
|
});
|
|
455
|
-
// Send 'deleteClients' to the clients.
|
|
456
|
-
if (deletedClientIDs.length
|
|
550
|
+
// Send 'deleteClients' ack to the clients.
|
|
551
|
+
if ((deletedClientIDs.length && deleted?.clientIDs?.length) ||
|
|
552
|
+
deletedClientGroupIDs.length) {
|
|
457
553
|
const clients = this.#getClients();
|
|
458
554
|
await Promise.allSettled(clients.map(client => client.sendDeleteClients(lc, deletedClientIDs, deletedClientGroupIDs)));
|
|
459
555
|
}
|
|
@@ -466,11 +562,7 @@ export class ViewSyncerService {
|
|
|
466
562
|
if (next === undefined) {
|
|
467
563
|
lc.debug?.('no inactive queries with ttl');
|
|
468
564
|
// no inactive queries with a ttl. Cancel existing timeout if any.
|
|
469
|
-
|
|
470
|
-
clearTimeout(this.#expiredQueriesTimer);
|
|
471
|
-
this.#expiredQueriesTimer = 0;
|
|
472
|
-
this.#nextExpiredQueryTime = 0;
|
|
473
|
-
}
|
|
565
|
+
this.#stopExpireTimer();
|
|
474
566
|
return;
|
|
475
567
|
}
|
|
476
568
|
if (this.#nextExpiredQueryTime === next) {
|
|
@@ -480,16 +572,17 @@ export class ViewSyncerService {
|
|
|
480
572
|
if (this.#expiredQueriesTimer) {
|
|
481
573
|
clearTimeout(this.#expiredQueriesTimer);
|
|
482
574
|
}
|
|
483
|
-
this.#nextExpiredQueryTime = next;
|
|
484
575
|
const now = Date.now();
|
|
485
|
-
|
|
576
|
+
this.#nextExpiredQueryTime = next;
|
|
577
|
+
const ttlClock = this.#getTTLClock(now);
|
|
578
|
+
lc.debug?.('Scheduling eviction timer to run in ', next - ttlClock, 'ms');
|
|
486
579
|
this.#expiredQueriesTimer = this.#setTimeout(() => this.#runInLockWithCVR(this.#removeExpiredQueries).catch(e =>
|
|
487
580
|
// If an error occurs (e.g. ownership change), propagate the error
|
|
488
581
|
// to the main run() loop via the #stateChanges Subscription.
|
|
489
582
|
this.#stateChanges.fail(e)),
|
|
490
583
|
// If the expire time is too far in the future we will run it in an hour.
|
|
491
584
|
// At that point in time it will be rescheduled as needed again.
|
|
492
|
-
Math.min(next -
|
|
585
|
+
Math.min(next - ttlClock, 60 * 60 * 1000));
|
|
493
586
|
}
|
|
494
587
|
/**
|
|
495
588
|
* Adds and hydrates pipelines for queries whose results are already
|
|
@@ -566,13 +659,12 @@ export class ViewSyncerService {
|
|
|
566
659
|
}
|
|
567
660
|
}
|
|
568
661
|
for (const { id: hash, transformationHash, transformedAst, } of transformedQueries) {
|
|
569
|
-
const
|
|
662
|
+
const timer = new Timer();
|
|
570
663
|
let count = 0;
|
|
571
664
|
await startAsyncSpan(tracer, 'vs.#hydrateUnchangedQueries.addQuery', async (span) => {
|
|
572
665
|
span.setAttribute('queryHash', hash);
|
|
573
666
|
span.setAttribute('transformationHash', transformationHash);
|
|
574
667
|
span.setAttribute('table', transformedAst.table);
|
|
575
|
-
const timer = new Timer();
|
|
576
668
|
for (const _ of this.#pipelines.addQuery(transformationHash, transformedAst, timer.start())) {
|
|
577
669
|
if (++count % TIME_SLICE_CHECK_SIZE === 0) {
|
|
578
670
|
if (timer.elapsedLap() > TIME_SLICE_MS) {
|
|
@@ -583,7 +675,7 @@ export class ViewSyncerService {
|
|
|
583
675
|
}
|
|
584
676
|
}
|
|
585
677
|
});
|
|
586
|
-
const elapsed =
|
|
678
|
+
const elapsed = timer.totalElapsed();
|
|
587
679
|
counters.queryHydrations().add(1, {
|
|
588
680
|
clientGroupID: this.id,
|
|
589
681
|
hash,
|
|
@@ -612,6 +704,7 @@ export class ViewSyncerService {
|
|
|
612
704
|
// Convert queries to their transformed ast's and hashes
|
|
613
705
|
const hashToIDs = new Map();
|
|
614
706
|
const now = Date.now();
|
|
707
|
+
const ttlClock = this.#getTTLClock(now);
|
|
615
708
|
// group cvr queries into:
|
|
616
709
|
// 1. custom queries
|
|
617
710
|
// 2. everything else
|
|
@@ -683,7 +776,7 @@ export class ViewSyncerService {
|
|
|
683
776
|
id,
|
|
684
777
|
ast: transformed.transformedAst,
|
|
685
778
|
transformationHash: transformed.transformationHash,
|
|
686
|
-
remove: expired(
|
|
779
|
+
remove: expired(ttlClock, origQuery),
|
|
687
780
|
};
|
|
688
781
|
});
|
|
689
782
|
const addQueries = serverQueries.filter(q => !q.remove && !hydratedQueries.has(q.transformationHash));
|
|
@@ -759,7 +852,7 @@ export class ViewSyncerService {
|
|
|
759
852
|
await pokers.addPatch(patch);
|
|
760
853
|
}
|
|
761
854
|
// Commit the changes and update the CVR snapshot.
|
|
762
|
-
this.#cvr =
|
|
855
|
+
this.#cvr = await this.#flushUpdater(lc, updater);
|
|
763
856
|
const finalVersion = this.#cvr.version;
|
|
764
857
|
// Before ending the poke, catch up clients that were behind the old CVR.
|
|
765
858
|
await this.#catchupClients(lc, cvr, finalVersion, addQueries.map(q => q.id), pokers);
|
|
@@ -938,7 +1031,7 @@ export class ViewSyncerService {
|
|
|
938
1031
|
throw e;
|
|
939
1032
|
}
|
|
940
1033
|
// Commit the changes and update the CVR snapshot.
|
|
941
|
-
this.#cvr =
|
|
1034
|
+
this.#cvr = await this.#flushUpdater(lc, updater);
|
|
942
1035
|
const finalVersion = this.#cvr.version;
|
|
943
1036
|
// Signal clients to commit.
|
|
944
1037
|
await pokers.end(finalVersion);
|
|
@@ -996,7 +1089,7 @@ export class ViewSyncerService {
|
|
|
996
1089
|
return this.#runInLockForClient(context, msg, this.#handleInspect);
|
|
997
1090
|
}
|
|
998
1091
|
// eslint-disable-next-line require-await
|
|
999
|
-
#handleInspect = async (lc, clientID,
|
|
1092
|
+
#handleInspect = async (lc, clientID, body, _cvr) => {
|
|
1000
1093
|
const client = must(this.#clients.get(clientID));
|
|
1001
1094
|
body.op;
|
|
1002
1095
|
client.sendInspectResponse(lc, {
|
|
@@ -1011,6 +1104,10 @@ export class ViewSyncerService {
|
|
|
1011
1104
|
return this.#stopped.promise;
|
|
1012
1105
|
}
|
|
1013
1106
|
#cleanup(err) {
|
|
1107
|
+
this.#stopTTLClockInterval();
|
|
1108
|
+
clearTimeout(this.#expiredQueriesTimer);
|
|
1109
|
+
this.#expiredQueriesTimer = 0;
|
|
1110
|
+
this.#nextExpiredQueryTime = 0;
|
|
1014
1111
|
this.#pipelines.destroy();
|
|
1015
1112
|
for (const client of this.#clients.values()) {
|
|
1016
1113
|
if (err) {
|
|
@@ -1109,7 +1206,7 @@ export function pickToken(lc, previousToken, newToken) {
|
|
|
1109
1206
|
message: 'No token provided. An unauthenticated client cannot connect to an authenticated client group.',
|
|
1110
1207
|
});
|
|
1111
1208
|
}
|
|
1112
|
-
function expired(
|
|
1209
|
+
function expired(ttlClock, q) {
|
|
1113
1210
|
if (q.type === 'internal') {
|
|
1114
1211
|
return false;
|
|
1115
1212
|
}
|
|
@@ -1120,17 +1217,16 @@ function expired(now, q) {
|
|
|
1120
1217
|
if (ttl < 0 || inactivatedAt === undefined) {
|
|
1121
1218
|
return false;
|
|
1122
1219
|
}
|
|
1123
|
-
if (inactivatedAt + ttl >
|
|
1220
|
+
if (inactivatedAt + ttl > ttlClock) {
|
|
1124
1221
|
return false;
|
|
1125
1222
|
}
|
|
1126
1223
|
}
|
|
1127
1224
|
}
|
|
1128
1225
|
return true;
|
|
1129
1226
|
}
|
|
1130
|
-
function hasExpiredQueries(cvr) {
|
|
1131
|
-
const now = Date.now();
|
|
1227
|
+
function hasExpiredQueries(cvr, ttlClock) {
|
|
1132
1228
|
for (const q of Object.values(cvr.queries)) {
|
|
1133
|
-
if (expired(
|
|
1229
|
+
if (expired(ttlClock, q)) {
|
|
1134
1230
|
return true;
|
|
1135
1231
|
}
|
|
1136
1232
|
}
|