@rocicorp/zero 0.0.202410041744 → 0.2.2024101100
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/btree/src/mod.d.ts +2 -0
- package/out/btree/src/mod.d.ts.map +1 -0
- package/out/btree/src/mod.js +2 -0
- package/out/btree/src/mod.js.map +1 -0
- package/out/datadog/src/mod.js +2 -0
- package/out/datadog/src/mod.js.map +1 -0
- package/out/react.js +9 -3
- package/out/react.js.map +3 -3
- package/out/replicache/src/btree/node.d.ts.map +1 -1
- package/out/replicache/src/config.d.ts.map +1 -1
- package/out/replicache/src/connection-loop.d.ts.map +1 -1
- package/out/replicache/src/cookies.d.ts.map +1 -1
- package/out/replicache/src/dag/gc.d.ts.map +1 -1
- package/out/replicache/src/dag/lazy-store.d.ts.map +1 -1
- package/out/replicache/src/db/scan.d.ts.map +1 -1
- package/out/replicache/src/frozen-json.d.ts.map +1 -1
- package/out/replicache/src/get-default-puller.d.ts.map +1 -1
- package/out/replicache/src/hash.d.ts.map +1 -1
- package/out/replicache/src/http-request-info.d.ts.map +1 -1
- package/out/replicache/src/index-defs.d.ts.map +1 -1
- package/out/replicache/src/kv/idb-store.d.ts.map +1 -1
- package/out/replicache/src/kv/store.d.ts.map +1 -1
- package/out/replicache/src/kv/write-impl-base.d.ts.map +1 -1
- package/out/replicache/src/mod.d.ts.map +1 -1
- package/out/replicache/src/mutation-recovery.d.ts.map +1 -1
- package/out/replicache/src/patch-operation.d.ts.map +1 -1
- package/out/replicache/src/pending-mutations.d.ts.map +1 -1
- package/out/replicache/src/persist/client-groups.d.ts.map +1 -1
- package/out/replicache/src/persist/clients.d.ts.map +1 -1
- package/out/replicache/src/puller.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.d.ts +0 -1
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache.d.ts.map +1 -1
- package/out/replicache/src/scan-iterator.d.ts.map +1 -1
- package/out/replicache/src/subscriptions.d.ts +1 -1
- package/out/replicache/src/subscriptions.d.ts.map +1 -1
- package/out/replicache/src/sync/ids.d.ts.map +1 -1
- package/out/replicache/src/sync/patch.d.ts.map +1 -1
- package/out/replicache/src/sync/pull.d.ts.map +1 -1
- package/out/replicache/src/sync/push.d.ts.map +1 -1
- package/out/replicache/src/sync/request-id.d.ts.map +1 -1
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/replicache/src/types.d.ts.map +1 -1
- package/out/shared/src/browser-env.d.ts +4 -2
- package/out/shared/src/browser-env.d.ts.map +1 -1
- package/out/shared/src/h64-with-reverse.d.ts +6 -0
- package/out/shared/src/h64-with-reverse.d.ts.map +1 -0
- package/out/shared/src/h64-with-reverse.js +13 -0
- package/out/shared/src/h64-with-reverse.js.map +1 -0
- package/out/shared/src/reverse-string.d.ts +2 -0
- package/out/shared/src/reverse-string.d.ts.map +1 -0
- package/out/shared/src/reverse-string.js +8 -0
- package/out/shared/src/reverse-string.js.map +1 -0
- package/out/zero/src/cli.js +0 -0
- package/out/zero/src/react.d.ts +1 -1
- package/out/zero/src/react.d.ts.map +1 -1
- package/out/zero/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero/src/server/change-streamer.js.map +1 -1
- package/out/zero/src/server/main.d.ts.map +1 -1
- package/out/zero/src/server/main.js.map +1 -1
- package/out/zero/src/server/replicator.d.ts.map +1 -1
- package/out/zero/src/server/replicator.js.map +1 -1
- package/out/zero/src/server/syncer.d.ts.map +1 -1
- package/out/zero/src/server/syncer.js.map +1 -1
- package/out/zero/src/zero.d.ts +1 -1
- package/out/zero/src/zero.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +46 -21
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +38 -20
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/db/lite-tables.d.ts.map +1 -1
- package/out/zero-cache/src/db/lite-tables.js.map +1 -1
- package/out/zero-cache/src/db/migration-lite.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration-lite.js.map +1 -1
- package/out/zero-cache/src/db/migration.d.ts.map +1 -1
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/statements.d.ts +2 -0
- package/out/zero-cache/src/db/statements.d.ts.map +1 -1
- package/out/zero-cache/src/db/statements.js +6 -0
- package/out/zero-cache/src/db/statements.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.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 +5 -5
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/life-cycle.d.ts +38 -0
- package/out/zero-cache/src/server/life-cycle.d.ts.map +1 -0
- package/out/zero-cache/src/server/life-cycle.js +125 -0
- package/out/zero-cache/src/server/life-cycle.js.map +1 -0
- package/out/zero-cache/src/server/logging.d.ts.map +1 -1
- package/out/zero-cache/src/server/logging.js +43 -4
- package/out/zero-cache/src/server/logging.js.map +1 -1
- package/out/zero-cache/src/server/main.js +18 -16
- package/out/zero-cache/src/server/main.js.map +1 -1
- package/out/zero-cache/src/server/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/server/replicator.js +12 -11
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +9 -8
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +3 -3
- 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 +11 -10
- 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 +2 -2
- 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/change-streamer.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js +10 -5
- package/out/zero-cache/src/services/change-streamer/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js +6 -6
- package/out/zero-cache/src/services/change-streamer/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/lsn.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/create.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/ddl.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts +3 -2
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js +20 -68
- package/out/zero-cache/src/services/change-streamer/pg/schema/lite.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/published.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/schema/zero.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js +1 -1
- package/out/zero-cache/src/services/change-streamer/pg/sync-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts +2 -2
- package/out/zero-cache/src/services/change-streamer/schema/change.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.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 +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts +1 -0
- package/out/zero-cache/src/services/dispatcher/connect-params.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js +3 -1
- package/out/zero-cache/src/services/dispatcher/connect-params.js.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.d.ts.map +1 -1
- package/out/zero-cache/src/services/dispatcher/dispatcher.js +2 -6
- package/out/zero-cache/src/services/dispatcher/dispatcher.js.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +1 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js +15 -8
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +8 -4
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +25 -16
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js +1 -1
- package/out/zero-cache/src/services/mutagen/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +8 -7
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +88 -57
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +4 -13
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js +2 -2
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +7 -7
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/change-log.js +3 -3
- package/out/zero-cache/src/services/replicator/schema/change-log.js.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js +1 -1
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/runner.d.ts +2 -5
- package/out/zero-cache/src/services/runner.d.ts.map +1 -1
- package/out/zero-cache/src/services/runner.js +4 -22
- package/out/zero-cache/src/services/runner.js.map +1 -1
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/running-state.js +3 -3
- package/out/zero-cache/src/services/running-state.js.map +1 -1
- package/out/zero-cache/src/services/service.d.ts +8 -0
- package/out/zero-cache/src/services/service.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +3 -2
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.js +14 -3
- package/out/zero-cache/src/services/view-syncer/client-handler.js.map +1 -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 +1 -1
- 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 +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js +1 -1
- package/out/zero-cache/src/services/view-syncer/cvr.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/database-storage.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +12 -9
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js +33 -23
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.js +1 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.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.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +30 -14
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.js +38 -37
- package/out/zero-cache/src/services/view-syncer/snapshotter.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +3 -0
- 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 +28 -44
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/bigint-json.d.ts.map +1 -1
- package/out/zero-cache/src/types/bigint-json.js.map +1 -1
- package/out/zero-cache/src/types/error-for-client.d.ts.map +1 -1
- package/out/zero-cache/src/types/lexi-version.js.map +1 -1
- package/out/zero-cache/src/types/lite.d.ts +30 -8
- package/out/zero-cache/src/types/lite.d.ts.map +1 -1
- package/out/zero-cache/src/types/lite.js +114 -15
- package/out/zero-cache/src/types/lite.js.map +1 -1
- package/out/zero-cache/src/types/pg.d.ts +21 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +49 -6
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/processes.d.ts +1 -1
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +8 -14
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/row-key.d.ts +4 -1
- package/out/zero-cache/src/types/row-key.d.ts.map +1 -1
- package/out/zero-cache/src/types/row-key.js +5 -14
- package/out/zero-cache/src/types/row-key.js.map +1 -1
- package/out/zero-cache/src/types/schema-versions.d.ts +8 -0
- package/out/zero-cache/src/types/schema-versions.d.ts.map +1 -0
- package/out/zero-cache/src/types/schema-versions.js +21 -0
- package/out/zero-cache/src/types/schema-versions.js.map +1 -0
- package/out/zero-cache/src/types/streams.d.ts +2 -2
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +36 -26
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/timeout.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +6 -6
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +4 -4
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +3 -31
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +12 -4
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +34 -2
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/context.d.ts +4 -4
- package/out/zero-client/src/client/context.d.ts.map +1 -1
- package/out/zero-client/src/client/crud.d.ts +20 -18
- package/out/zero-client/src/client/crud.d.ts.map +1 -1
- package/out/zero-client/src/client/keys.d.ts +2 -2
- package/out/zero-client/src/client/keys.d.ts.map +1 -1
- package/out/zero-client/src/client/log-options.d.ts +1 -1
- package/out/zero-client/src/client/log-options.d.ts.map +1 -1
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts +5 -0
- package/out/zero-client/src/client/make-id-from-primary-key.d.ts.map +1 -0
- package/out/zero-client/src/client/metrics.d.ts.map +1 -1
- package/out/zero-client/src/client/options.d.ts +1 -1
- package/out/zero-client/src/client/options.d.ts.map +1 -1
- package/out/zero-client/src/client/query-manager.d.ts +5 -3
- package/out/zero-client/src/client/query-manager.d.ts.map +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts +1 -1
- package/out/zero-client/src/client/replicache-types.d.ts.map +1 -1
- package/out/zero-client/src/client/server-error.d.ts.map +1 -1
- package/out/zero-client/src/client/server-option.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +5 -4
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +3 -3
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/mod.d.ts +2 -2
- package/out/zero-client/src/mod.d.ts.map +1 -1
- package/out/zero-client/src/util/socket.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.d.ts.map +1 -1
- package/out/zero-protocol/src/ast.js +5 -8
- package/out/zero-protocol/src/ast.js.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.d.ts.map +1 -1
- package/out/zero-protocol/src/change-desired-queries.js.map +1 -1
- package/out/zero-protocol/src/clients-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/clients-patch.js.map +1 -1
- package/out/zero-protocol/src/connect.d.ts.map +1 -1
- package/out/zero-protocol/src/connect.js.map +1 -1
- package/out/zero-protocol/src/delete-clients.d.ts.map +1 -1
- package/out/zero-protocol/src/delete-clients.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +9 -5
- package/out/zero-protocol/src/down.d.ts.map +1 -1
- package/out/zero-protocol/src/down.js.map +1 -1
- package/out/zero-protocol/src/entities-patch.d.ts +15 -15
- package/out/zero-protocol/src/entities-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/entities-patch.js +5 -4
- package/out/zero-protocol/src/entities-patch.js.map +1 -1
- package/out/zero-protocol/src/error.d.ts +2 -1
- package/out/zero-protocol/src/error.d.ts.map +1 -1
- package/out/zero-protocol/src/error.js +2 -1
- package/out/zero-protocol/src/error.js.map +1 -1
- package/out/zero-protocol/src/ping.d.ts.map +1 -1
- package/out/zero-protocol/src/ping.js.map +1 -1
- package/out/zero-protocol/src/poke.d.ts +18 -10
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +4 -0
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/pong.d.ts.map +1 -1
- package/out/zero-protocol/src/pong.js.map +1 -1
- package/out/zero-protocol/src/primary-key.d.ts +9 -0
- package/out/zero-protocol/src/primary-key.d.ts.map +1 -0
- package/out/zero-protocol/src/primary-key.js +7 -0
- package/out/zero-protocol/src/primary-key.js.map +1 -0
- package/out/zero-protocol/src/pull.d.ts.map +1 -1
- package/out/zero-protocol/src/pull.js.map +1 -1
- package/out/zero-protocol/src/push.d.ts +53 -53
- package/out/zero-protocol/src/push.d.ts.map +1 -1
- package/out/zero-protocol/src/push.js +5 -5
- package/out/zero-protocol/src/push.js.map +1 -1
- package/out/zero-protocol/src/queries-patch.d.ts.map +1 -1
- package/out/zero-protocol/src/queries-patch.js.map +1 -1
- package/out/zero-protocol/src/up.d.ts +8 -8
- package/out/zero-protocol/src/up.d.ts.map +1 -1
- package/out/zero-protocol/src/up.js.map +1 -1
- package/out/zero-protocol/src/version.d.ts.map +1 -1
- package/out/zero-protocol/src/version.js.map +1 -1
- package/out/zero-react/src/use-query.d.ts +1 -1
- package/out/zero-react/src/use-query.d.ts.map +1 -1
- package/out/zero-react/src/use-zero.d.ts +1 -1
- package/out/zero-react/src/use-zero.d.ts.map +1 -1
- package/out/zero.js +294 -124
- package/out/zero.js.map +4 -4
- package/out/zql/src/zql/ast/ast.js.map +1 -1
- package/out/zql/src/zql/builder/builder.d.ts.map +1 -1
- package/out/zql/src/zql/builder/builder.js.map +1 -1
- package/out/zql/src/zql/builder/filter.js.map +1 -1
- package/out/zql/src/zql/builder/like.js.map +1 -1
- package/out/zql/src/zql/ivm/array-view.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/data.js +1 -1
- package/out/zql/src/zql/ivm/data.js.map +1 -1
- package/out/zql/src/zql/ivm/filter.js.map +1 -1
- package/out/zql/src/zql/ivm/join.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/memory-source.js +1 -1
- package/out/zql/src/zql/ivm/memory-source.js.map +1 -1
- package/out/zql/src/zql/ivm/memory-storage.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/operator.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts +1 -1
- package/out/zql/src/zql/ivm/schema.d.ts.map +1 -1
- package/out/zql/src/zql/ivm/schema.js.map +1 -1
- package/out/zql/src/zql/ivm/skip.js.map +1 -1
- package/out/zql/src/zql/ivm/take.js.map +1 -1
- package/out/zql/src/zql/query/query-impl.d.ts +4 -1
- package/out/zql/src/zql/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/zql/query/query.d.ts +2 -1
- package/out/zql/src/zql/query/query.d.ts.map +1 -1
- package/out/zql/src/zql/query/typed-view.d.ts.map +1 -1
- package/out/zqlite/src/db.js +1 -1
- package/out/zqlite/src/db.js.map +1 -1
- package/out/zqlite/src/internal/statement-cache.js.map +1 -1
- package/out/zqlite/src/table-source.d.ts +1 -1
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +36 -33
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +10 -6
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts +0 -79
- package/out/zero-cache/src/services/replicator/checkpointer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/checkpointer.js +0 -124
- package/out/zero-cache/src/services/replicator/checkpointer.js.map +0 -1
- package/out/zero-protocol/src/entity.d.ts +0 -9
- package/out/zero-protocol/src/entity.d.ts.map +0 -1
- package/out/zero-protocol/src/entity.js +0 -8
- package/out/zero-protocol/src/entity.js.map +0 -1
|
@@ -3,7 +3,7 @@ import { must } from '../../shared/src/must.js';
|
|
|
3
3
|
import { assertOrderingIncludesPK } from '../../zql/src/zql/builder/builder.js';
|
|
4
4
|
import { makeComparator, } from '../../zql/src/zql/ivm/data.js';
|
|
5
5
|
import { generateWithOverlay, generateWithStart, } from '../../zql/src/zql/ivm/memory-source.js';
|
|
6
|
-
import { Database, Statement } from '
|
|
6
|
+
import { Database, Statement } from './db.js';
|
|
7
7
|
import { compile, format, sql } from './internal/sql.js';
|
|
8
8
|
import { StatementCache } from './internal/statement-cache.js';
|
|
9
9
|
/**
|
|
@@ -59,12 +59,15 @@ export class TableSource {
|
|
|
59
59
|
: undefined,
|
|
60
60
|
checkExists: db.prepare(compile(sql `SELECT 1 AS "exists" FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map(k => sql `${sql.ident(k)}=?`), sql ` AND `)} LIMIT 1`)),
|
|
61
61
|
getRow: db
|
|
62
|
-
.prepare(compile(sql `SELECT
|
|
62
|
+
.prepare(compile(sql `SELECT ${this.#allColumns} FROM ${sql.ident(this.#table)} WHERE ${sql.join(this.#primaryKey.map(k => sql `${sql.ident(k)}=?`), sql ` AND`)}`))
|
|
63
63
|
.safeIntegers(true),
|
|
64
64
|
};
|
|
65
65
|
this.#dbCache.set(db, stmts);
|
|
66
66
|
return stmts;
|
|
67
67
|
}
|
|
68
|
+
get #allColumns() {
|
|
69
|
+
return sql.join(Object.keys(this.#columns).map(c => sql.ident(c)), sql `,`);
|
|
70
|
+
}
|
|
68
71
|
#getSchema(connection) {
|
|
69
72
|
return {
|
|
70
73
|
tableName: this.#table,
|
|
@@ -121,7 +124,7 @@ export class TableSource {
|
|
|
121
124
|
*/
|
|
122
125
|
if (start?.basis === 'before') {
|
|
123
126
|
assert(beforeRequest === undefined, 'Before should only be converted once.');
|
|
124
|
-
const preSql = requestToSQL(
|
|
127
|
+
const preSql = this.#requestToSQL(req.constraint, req.start !== undefined
|
|
125
128
|
? {
|
|
126
129
|
from: req.start.row,
|
|
127
130
|
direction: req.start.basis === 'before' ? 'before' : 'after',
|
|
@@ -139,7 +142,7 @@ export class TableSource {
|
|
|
139
142
|
yield* this.#fetch(newReq, connection, req);
|
|
140
143
|
}
|
|
141
144
|
else {
|
|
142
|
-
const query = requestToSQL(
|
|
145
|
+
const query = this.#requestToSQL(req.constraint, req.start !== undefined
|
|
143
146
|
? {
|
|
144
147
|
from: req.start.row,
|
|
145
148
|
direction: req.start.basis === 'before' ? 'before' : 'after',
|
|
@@ -238,39 +241,39 @@ export class TableSource {
|
|
|
238
241
|
}
|
|
239
242
|
return row;
|
|
240
243
|
}
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
244
|
+
#requestToSQL(constraint, cursor, filters, order) {
|
|
245
|
+
let query = sql `SELECT ${this.#allColumns} FROM ${sql.ident(this.#table)}`;
|
|
246
|
+
const constraints = [];
|
|
247
|
+
if (constraint) {
|
|
248
|
+
constraints.push(sql `${sql.ident(constraint.key)} = ${constraint.value}`);
|
|
249
|
+
}
|
|
250
|
+
if (cursor) {
|
|
251
|
+
constraints.push(gatherStartConstraints(cursor, order));
|
|
252
|
+
}
|
|
253
|
+
for (const filter of filters) {
|
|
254
|
+
const { op } = filter;
|
|
255
|
+
if (op === 'IN' || op === 'NOT IN') {
|
|
256
|
+
constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op)} (SELECT value FROM json_each(${JSON.stringify(filter.value)}))`);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
constraints.push(sql `${sql.ident(filter.field)} ${sql.__dangerous__rawValue(filter.op === 'ILIKE'
|
|
260
|
+
? 'LIKE'
|
|
261
|
+
: filter.op === 'NOT ILIKE'
|
|
262
|
+
? 'NOT LIKE'
|
|
263
|
+
: filter.op)} ${filter.value}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
if (constraints.length > 0) {
|
|
267
|
+
query = sql `${query} WHERE ${sql.join(constraints, sql ` AND `)}`;
|
|
268
|
+
}
|
|
269
|
+
if (cursor?.direction === 'before') {
|
|
270
|
+
query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1] === 'asc' ? 'desc' : 'asc')}`), sql `, `)}`;
|
|
255
271
|
}
|
|
256
272
|
else {
|
|
257
|
-
|
|
258
|
-
? 'LIKE'
|
|
259
|
-
: filter.op === 'NOT ILIKE'
|
|
260
|
-
? 'NOT LIKE'
|
|
261
|
-
: filter.op)} ${filter.value}`);
|
|
273
|
+
query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1])}`), sql `, `)}`;
|
|
262
274
|
}
|
|
275
|
+
return query;
|
|
263
276
|
}
|
|
264
|
-
if (constraints.length > 0) {
|
|
265
|
-
query = sql `${query} WHERE ${sql.join(constraints, sql ` AND `)}`;
|
|
266
|
-
}
|
|
267
|
-
if (cursor?.direction === 'before') {
|
|
268
|
-
query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1] === 'asc' ? 'desc' : 'asc')}`), sql `, `)}`;
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
query = sql `${query} ORDER BY ${sql.join(order.map(s => sql `${sql.ident(s[0])} ${sql.__dangerous__rawValue(s[1])}`), sql `, `)}`;
|
|
272
|
-
}
|
|
273
|
-
return query;
|
|
274
277
|
}
|
|
275
278
|
/**
|
|
276
279
|
* The ordering could be complex such as:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-source.js","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"table-source.js","sourceRoot":"","sources":["../../../../zqlite/src/table-source.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rocicorp/zero",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.2024101100+12f1bf",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prepack": "rm -rf deps && mkdir -p deps/sqlite3 && cp -r ../../deps/sqlite3/* deps/sqlite3/",
|
|
6
6
|
"preinstall": "node tool/install-sqlite3.js",
|
|
7
7
|
"build": "rm -rf out && npm run build-server && npm run build-client",
|
|
8
8
|
"build-client": "tsc -p tsconfig.client.json && tsc-alias -p tsconfig.client.json && node tool/build.js",
|
|
9
|
-
"build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json",
|
|
10
|
-
"check-types": "tsc
|
|
11
|
-
"check-types:watch": "tsc --
|
|
9
|
+
"build-server": "tsc -p tsconfig.server.json && tsc-alias -p tsconfig.server.json && chmod +x out/zero/src/cli.js",
|
|
10
|
+
"check-types": "tsc",
|
|
11
|
+
"check-types:watch": "tsc --watch",
|
|
12
12
|
"format": "prettier --write .",
|
|
13
13
|
"check-format": "prettier --check .",
|
|
14
14
|
"lint": "eslint --ext .ts,.tsx,.js,.jsx src/"
|
|
@@ -20,9 +20,10 @@
|
|
|
20
20
|
"@drdgvhbh/postgres-error-codes": "^0.0.6",
|
|
21
21
|
"@fastify/cors": "^10.0.0",
|
|
22
22
|
"@fastify/websocket": "^11.0.0",
|
|
23
|
+
"@google-cloud/precise-date": "^4.0.0",
|
|
23
24
|
"@postgresql-typed/oids": "^0.2.0",
|
|
24
25
|
"@rocicorp/lock": "^1.0.4",
|
|
25
|
-
"@rocicorp/logger": "^5.
|
|
26
|
+
"@rocicorp/logger": "^5.3.0",
|
|
26
27
|
"@rocicorp/resolver": "^1.0.2",
|
|
27
28
|
"compare-utf8": "^0.1.1",
|
|
28
29
|
"dotenv": "^16.4.5",
|
|
@@ -68,6 +69,9 @@
|
|
|
68
69
|
"bin": {
|
|
69
70
|
"zero-cache": "./out/zero/src/cli.js"
|
|
70
71
|
},
|
|
72
|
+
"engines": {
|
|
73
|
+
"node": ">=20"
|
|
74
|
+
},
|
|
71
75
|
"files": [
|
|
72
76
|
"out",
|
|
73
77
|
"!*.tsbuildinfo",
|
|
@@ -75,7 +79,7 @@
|
|
|
75
79
|
"tool/install-sqlite3.js"
|
|
76
80
|
],
|
|
77
81
|
"eslintConfig": {
|
|
78
|
-
"extends": "
|
|
82
|
+
"extends": "../../eslint-config.json"
|
|
79
83
|
},
|
|
80
84
|
"prettier": "@rocicorp/prettier-config"
|
|
81
85
|
}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import { Notifier } from './notifier.js';
|
|
3
|
-
/**
|
|
4
|
-
* A `Checkpointer` is consulted by the Replicator after each commit and given
|
|
5
|
-
* the opportunity to perform a blocking WAL checkpoint before the Replicator
|
|
6
|
-
* continues processing the replication stream.
|
|
7
|
-
*/
|
|
8
|
-
export interface Checkpointer {
|
|
9
|
-
maybeCheckpoint(numCommittedChanges: number, notifier: Notifier): Promise<void>;
|
|
10
|
-
stop(): void;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* The `NULL_CHECKPOINTER` is suitable for an environment in which checkpoints are
|
|
14
|
-
* handled by an external entity, such as a `litestream replicate` process.
|
|
15
|
-
*/
|
|
16
|
-
export declare const NULL_CHECKPOINTER: Checkpointer;
|
|
17
|
-
export type CheckpointerConfig = {
|
|
18
|
-
/**
|
|
19
|
-
* The number of outstanding frames or changes at which a blocking
|
|
20
|
-
* checkpoint is triggered.
|
|
21
|
-
*
|
|
22
|
-
* Defaults to 200.
|
|
23
|
-
*/
|
|
24
|
-
threshold?: number;
|
|
25
|
-
/**
|
|
26
|
-
* The base timeout to block on an active checkpoint. This timeout is increased
|
|
27
|
-
* in proportion to the size of WAL divided by the `threshold`. For example, if
|
|
28
|
-
* the size of the WAL is twice the `threshold`, the timeout will be doubled.
|
|
29
|
-
*
|
|
30
|
-
* This dynamic timeout algorithm reduces the amount of system-wide pausing in
|
|
31
|
-
* the common case, even in the presence of occasional, long-held locks due to
|
|
32
|
-
* events like a long hydration. If checkpoint is not able to start within the
|
|
33
|
-
* timeout, the checkpointer gives up and allows the system to progress. As the
|
|
34
|
-
* size of the WAL grows, the checkpointer will wait for longer timeouts to ensure
|
|
35
|
-
* that the checkpointing eventually succeeds.
|
|
36
|
-
*
|
|
37
|
-
* Defaults to 200 milliseconds.
|
|
38
|
-
*/
|
|
39
|
-
baseCheckpointTimeoutMs?: number;
|
|
40
|
-
/**
|
|
41
|
-
* A regular interval at which passive checkpoints are attempted. This allows an
|
|
42
|
-
* idle task (i.e. no sync connections) to clean up outside of the
|
|
43
|
-
* replication path.
|
|
44
|
-
*
|
|
45
|
-
* Defaults to one minute.
|
|
46
|
-
*/
|
|
47
|
-
passiveCheckpointPeriodMs?: number;
|
|
48
|
-
};
|
|
49
|
-
/**
|
|
50
|
-
* The `WALCheckpointer` executes checkpoints when the number of WAL log entries
|
|
51
|
-
* exceeds a configurable threshold. It does this by:
|
|
52
|
-
*
|
|
53
|
-
* 1. Broadcasting a `maintenance` ReplicaState message to signal view-syncers to
|
|
54
|
-
* release their locks.
|
|
55
|
-
* 2. Executing `wal_checkpoint(TRUNCATE)` with a busy_timeout proportional to
|
|
56
|
-
* the outstanding log size.
|
|
57
|
-
* 3. Broadcasting a `version-ready` ReplicaState message to signal view-syncers to
|
|
58
|
-
* reestablish their locks.
|
|
59
|
-
*
|
|
60
|
-
* Points of interest:
|
|
61
|
-
*
|
|
62
|
-
* * The checkpointer waits for the `maintenance` broadcast to be sent to over
|
|
63
|
-
* IPC channels (in-process blocking), but does not request or wait for ACKs from
|
|
64
|
-
* the view syncers. This is because the `wal_checkpoint(TRUNCATE)` command itself
|
|
65
|
-
* will block until all read locks are released, up to the configured `busy_timeout`.
|
|
66
|
-
*
|
|
67
|
-
* * After performing the checkpoint, however, the checkpointer _does_ request ACKs
|
|
68
|
-
* from view-syncers to confirm that they have reestablished their snapshots. There
|
|
69
|
-
* is otherwise no way to know when it is safe to continue replication. This is
|
|
70
|
-
* expected to be very fast, but to avoid pathological cases the wait is capped at
|
|
71
|
-
* 100ms.
|
|
72
|
-
*/
|
|
73
|
-
export declare class WALCheckpointer implements Checkpointer {
|
|
74
|
-
#private;
|
|
75
|
-
constructor(lc: LogContext, replicaDbFile: string, cfg?: CheckpointerConfig);
|
|
76
|
-
stop(): void;
|
|
77
|
-
maybeCheckpoint(changes: number, notifier: Notifier): Promise<void>;
|
|
78
|
-
}
|
|
79
|
-
//# sourceMappingURL=checkpointer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkpointer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/checkpointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAM5C,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe,CACb,mBAAmB,EAAE,MAAM,EAC3B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,IAAI,IAAI,IAAI,CAAC;CACd;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,YAGtB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;;;OAMG;IACH,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,eAAgB,YAAW,YAAY;;gBAWhD,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,GAAG,GAAE,kBAAuB;IA4B9B,IAAI;IAKE,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;CAwE1D"}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import { assert } from '../../../../shared/src/asserts.js';
|
|
3
|
-
import { randInt } from '../../../../shared/src/rand.js';
|
|
4
|
-
import { promiseVoid } from '../../../../shared/src/resolved-promises.js';
|
|
5
|
-
import { orTimeout } from '../../../../zero-cache/src/types/timeout.js';
|
|
6
|
-
import { Database } from '../../../../zqlite/src/db.js';
|
|
7
|
-
import { Notifier } from './notifier.js';
|
|
8
|
-
/**
|
|
9
|
-
* The `NULL_CHECKPOINTER` is suitable for an environment in which checkpoints are
|
|
10
|
-
* handled by an external entity, such as a `litestream replicate` process.
|
|
11
|
-
*/
|
|
12
|
-
export const NULL_CHECKPOINTER = {
|
|
13
|
-
maybeCheckpoint: () => promiseVoid,
|
|
14
|
-
stop: () => { },
|
|
15
|
-
};
|
|
16
|
-
/**
|
|
17
|
-
* The `WALCheckpointer` executes checkpoints when the number of WAL log entries
|
|
18
|
-
* exceeds a configurable threshold. It does this by:
|
|
19
|
-
*
|
|
20
|
-
* 1. Broadcasting a `maintenance` ReplicaState message to signal view-syncers to
|
|
21
|
-
* release their locks.
|
|
22
|
-
* 2. Executing `wal_checkpoint(TRUNCATE)` with a busy_timeout proportional to
|
|
23
|
-
* the outstanding log size.
|
|
24
|
-
* 3. Broadcasting a `version-ready` ReplicaState message to signal view-syncers to
|
|
25
|
-
* reestablish their locks.
|
|
26
|
-
*
|
|
27
|
-
* Points of interest:
|
|
28
|
-
*
|
|
29
|
-
* * The checkpointer waits for the `maintenance` broadcast to be sent to over
|
|
30
|
-
* IPC channels (in-process blocking), but does not request or wait for ACKs from
|
|
31
|
-
* the view syncers. This is because the `wal_checkpoint(TRUNCATE)` command itself
|
|
32
|
-
* will block until all read locks are released, up to the configured `busy_timeout`.
|
|
33
|
-
*
|
|
34
|
-
* * After performing the checkpoint, however, the checkpointer _does_ request ACKs
|
|
35
|
-
* from view-syncers to confirm that they have reestablished their snapshots. There
|
|
36
|
-
* is otherwise no way to know when it is safe to continue replication. This is
|
|
37
|
-
* expected to be very fast, but to avoid pathological cases the wait is capped at
|
|
38
|
-
* 100ms.
|
|
39
|
-
*/
|
|
40
|
-
export class WALCheckpointer {
|
|
41
|
-
#lc;
|
|
42
|
-
#db;
|
|
43
|
-
#threshold;
|
|
44
|
-
#baseCheckpointTimeoutMs;
|
|
45
|
-
#passiveCheckpointTimer;
|
|
46
|
-
#logSize = 0;
|
|
47
|
-
#outstandingChanges = 0;
|
|
48
|
-
constructor(lc, replicaDbFile, cfg = {}) {
|
|
49
|
-
const { threshold = 200, baseCheckpointTimeoutMs = 10, passiveCheckpointPeriodMs = 60_000, } = cfg;
|
|
50
|
-
assert(threshold > 0 &&
|
|
51
|
-
baseCheckpointTimeoutMs > 0 &&
|
|
52
|
-
passiveCheckpointPeriodMs > 0, `Invalid config ${JSON.stringify(cfg)}`);
|
|
53
|
-
const db = new Database(lc, replicaDbFile);
|
|
54
|
-
db.pragma('journal_mode = WAL');
|
|
55
|
-
this.#lc = lc.withContext('component', 'wal-checkpointer');
|
|
56
|
-
this.#db = db;
|
|
57
|
-
this.#threshold = threshold;
|
|
58
|
-
this.#baseCheckpointTimeoutMs = baseCheckpointTimeoutMs;
|
|
59
|
-
this.#passiveCheckpointTimer = setInterval(() => this.#checkpoint('PASSIVE'), passiveCheckpointPeriodMs);
|
|
60
|
-
}
|
|
61
|
-
stop() {
|
|
62
|
-
clearTimeout(this.#passiveCheckpointTimer);
|
|
63
|
-
this.#lc.info?.('stopped');
|
|
64
|
-
}
|
|
65
|
-
async maybeCheckpoint(changes, notifier) {
|
|
66
|
-
this.#outstandingChanges += changes;
|
|
67
|
-
// Simplification: changes and frames equivalently w.r.t. the threshold.
|
|
68
|
-
if (Math.max(this.#outstandingChanges, this.#logSize) >= this.#threshold) {
|
|
69
|
-
// If no read locks are held, a PASSIVE checkpoint may suffice.
|
|
70
|
-
// Regardless of success, #logSize gets updated to determine if a
|
|
71
|
-
// blocking checkpoint is warranted.
|
|
72
|
-
this.#checkpoint('PASSIVE');
|
|
73
|
-
}
|
|
74
|
-
if (this.#logSize >= this.#threshold) {
|
|
75
|
-
const logSize = this.#logSize;
|
|
76
|
-
const t0 = Date.now();
|
|
77
|
-
await this.#enterMaintenanceMode(notifier);
|
|
78
|
-
const t1 = Date.now();
|
|
79
|
-
// The timeout is proportional to the size of the log compared to the threshold.
|
|
80
|
-
const timeout = (this.#logSize / this.#threshold) * this.#baseCheckpointTimeoutMs;
|
|
81
|
-
const result = this.#checkpoint('TRUNCATE', timeout);
|
|
82
|
-
const t2 = Date.now();
|
|
83
|
-
await this.#exitMaintenanceMode(notifier);
|
|
84
|
-
const t3 = Date.now();
|
|
85
|
-
this.#lc.info?.(`WAL(busy=${timeout}ms): pre=${t1 - t0}ms checkpoint=${t2 - t1}ms post=${t3 - t2}ms logSize=${logSize} result`, result);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
async #enterMaintenanceMode(notifier) {
|
|
89
|
-
await Promise.all(notifier.notifySubscribers({ state: 'maintenance' }));
|
|
90
|
-
}
|
|
91
|
-
async #exitMaintenanceMode(notifier) {
|
|
92
|
-
// Request an ACK when exiting maintenance mode to maximize the chance of
|
|
93
|
-
// view syncers re-establishing snapshots at the same version. This is expected
|
|
94
|
-
// to be very fast (single-digit milliseconds).
|
|
95
|
-
//
|
|
96
|
-
// However, this is also the chance for view syncers to invoke an occasional
|
|
97
|
-
// `PRAGMA optimize` call, for which latency may be variable. To avoid holding
|
|
98
|
-
// up the replication stream indefinitely, we cap the wait at 100ms.
|
|
99
|
-
const result = await orTimeout(Promise.all(notifier.notifySubscribers({
|
|
100
|
-
state: 'version-ready',
|
|
101
|
-
ack: randomACK(),
|
|
102
|
-
})), 100);
|
|
103
|
-
if (result === 'timed-out') {
|
|
104
|
-
this.#lc.info?.('timed out waiting for view-syncer resumption');
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
#checkpoint(mode, timeoutMs) {
|
|
108
|
-
if (timeoutMs) {
|
|
109
|
-
this.#db.pragma(`busy_timeout = ${timeoutMs}`);
|
|
110
|
-
}
|
|
111
|
-
const result = checkpoint(this.#db, mode);
|
|
112
|
-
this.#logSize = result.log;
|
|
113
|
-
this.#outstandingChanges = 0;
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
function checkpoint(db, mode) {
|
|
118
|
-
const result = db.pragma(`wal_checkpoint(${mode})`);
|
|
119
|
-
return result[0];
|
|
120
|
-
}
|
|
121
|
-
function randomACK() {
|
|
122
|
-
return randInt(Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER);
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=checkpointer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"checkpointer.js","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/replicator/checkpointer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as v from '../../shared/src/valita.js';
|
|
2
|
-
/**
|
|
3
|
-
* attribute name => value
|
|
4
|
-
* Single entry models simple primary keys.
|
|
5
|
-
* Multiple entries models composite primary keys.
|
|
6
|
-
*/
|
|
7
|
-
export declare const entityIDSchema: v.Type<Record<string, string>>;
|
|
8
|
-
export type EntityID = v.Infer<typeof entityIDSchema>;
|
|
9
|
-
//# sourceMappingURL=entity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../../../zero-protocol/src/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,cAAc,gCAAuB,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import * as v from '../../shared/src/valita.js';
|
|
2
|
-
/**
|
|
3
|
-
* attribute name => value
|
|
4
|
-
* Single entry models simple primary keys.
|
|
5
|
-
* Multiple entries models composite primary keys.
|
|
6
|
-
*/
|
|
7
|
-
export const entityIDSchema = v.record(v.string());
|
|
8
|
-
//# sourceMappingURL=entity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entity.js","sourceRoot":"","sources":["../../../../zero-protocol/src/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC"}
|