@rocicorp/zero 1.10.0-canary.0 → 1.10.0-canary.10
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/replicache/src/db/commit.js +1 -4
- package/out/replicache/src/db/commit.js.map +1 -1
- package/out/replicache/src/db/read.d.ts +1 -0
- package/out/replicache/src/db/read.d.ts.map +1 -1
- package/out/replicache/src/db/read.js +1 -4
- package/out/replicache/src/db/read.js.map +1 -1
- package/out/replicache/src/db/write.d.ts +2 -1
- package/out/replicache/src/db/write.d.ts.map +1 -1
- package/out/replicache/src/db/write.js +4 -51
- package/out/replicache/src/db/write.js.map +1 -1
- package/out/replicache/src/persist/clients.d.ts +1 -0
- package/out/replicache/src/persist/clients.d.ts.map +1 -1
- package/out/replicache/src/persist/clients.js +4 -31
- package/out/replicache/src/persist/clients.js.map +1 -1
- package/out/replicache/src/process-env.d.ts +28 -0
- package/out/replicache/src/process-env.d.ts.map +1 -0
- package/out/replicache/src/replicache-impl.d.ts.map +1 -1
- package/out/replicache/src/replicache-impl.js.map +1 -1
- package/out/replicache/src/scan-iterator.js +2 -14
- package/out/replicache/src/scan-iterator.js.map +1 -1
- package/out/replicache/src/subscriptions.d.ts +1 -0
- package/out/replicache/src/subscriptions.d.ts.map +1 -1
- package/out/replicache/src/subscriptions.js +2 -10
- package/out/replicache/src/subscriptions.js.map +1 -1
- package/out/replicache/src/transactions.d.ts +1 -0
- package/out/replicache/src/transactions.d.ts.map +1 -1
- package/out/replicache/src/transactions.js +2 -4
- package/out/replicache/src/transactions.js.map +1 -1
- package/out/shared/src/promise-race.d.ts +14 -0
- package/out/shared/src/promise-race.d.ts.map +1 -1
- package/out/shared/src/promise-race.js +32 -1
- package/out/shared/src/promise-race.js.map +1 -1
- package/out/z2s/src/compiler.d.ts.map +1 -1
- package/out/z2s/src/compiler.js +1 -22
- package/out/z2s/src/compiler.js.map +1 -1
- package/out/zero/package.js +3 -3
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +8 -1
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/config/normalize.d.ts +6 -0
- package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
- package/out/zero-cache/src/config/normalize.js +24 -2
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +65 -4
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +202 -35
- package/out/zero-cache/src/config/zero-config.js.map +1 -1
- package/out/zero-cache/src/custom/fetch.js +1 -1
- package/out/zero-cache/src/custom/fetch.js.map +1 -1
- package/out/zero-cache/src/db/delete-lite-db.js +2 -1
- package/out/zero-cache/src/db/delete-lite-db.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 +10 -5
- 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 +4 -2
- package/out/zero-cache/src/db/migration.js.map +1 -1
- package/out/zero-cache/src/db/sqlite-corruption.d.ts +3 -2
- package/out/zero-cache/src/db/sqlite-corruption.d.ts.map +1 -1
- package/out/zero-cache/src/db/sqlite-corruption.js +13 -8
- package/out/zero-cache/src/db/sqlite-corruption.js.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +5 -15
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +1 -1
- package/out/zero-cache/src/db/transaction-pool.js +8 -72
- package/out/zero-cache/src/db/transaction-pool.js.map +1 -1
- package/out/zero-cache/src/observability/metrics.d.ts +6 -1
- package/out/zero-cache/src/observability/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/observability/metrics.js +20 -2
- package/out/zero-cache/src/observability/metrics.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 +105 -34
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/server/main.d.ts.map +1 -1
- package/out/zero-cache/src/server/main.js +8 -18
- 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 +48 -5
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +3 -2
- package/out/zero-cache/src/server/runner/run-worker.js.map +1 -1
- package/out/zero-cache/src/server/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/server/syncer.js +1 -1
- package/out/zero-cache/src/server/syncer.js.map +1 -1
- package/out/zero-cache/src/server/worker-urls.d.ts +0 -1
- package/out/zero-cache/src/server/worker-urls.d.ts.map +1 -1
- package/out/zero-cache/src/server/worker-urls.js +1 -2
- package/out/zero-cache/src/server/worker-urls.js.map +1 -1
- package/out/zero-cache/src/services/change-source/change-source.d.ts +4 -2
- package/out/zero-cache/src/services/change-source/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +35 -0
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/common/replica-restore.js +34 -0
- package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -0
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +2 -0
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.js +81 -3
- package/out/zero-cache/src/services/change-source/common/replica-schema.js.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +2 -6
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.js +14 -5
- package/out/zero-cache/src/services/change-source/custom/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js +22 -11
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +7 -7
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.js +90 -31
- package/out/zero-cache/src/services/change-source/pg/change-source.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/decommission.js +20 -11
- package/out/zero-cache/src/services/change-source/pg/decommission.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +9 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js +61 -76
- package/out/zero-cache/src/services/change-source/pg/initial-sync.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +65 -2
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js +101 -10
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +27 -2
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js +41 -8
- package/out/zero-cache/src/services/change-source/pg/replication-slots.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -5
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.js +29 -41
- package/out/zero-cache/src/services/change-source/pg/schema/init.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts +35 -16
- package/out/zero-cache/src/services/change-source/pg/schema/shard.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js +77 -7
- package/out/zero-cache/src/services/change-source/pg/schema/shard.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts +2 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/data.js +5 -13
- package/out/zero-cache/src/services/change-source/protocol/current/data.js.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts +6 -3
- package/out/zero-cache/src/services/change-source/protocol/current/downstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/schema-change-tags.d.ts +6 -0
- package/out/zero-cache/src/services/change-source/protocol/current/schema-change-tags.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/schema-change-tags.js +21 -0
- package/out/zero-cache/src/services/change-source/protocol/current/schema-change-tags.js.map +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/status.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts +1 -0
- package/out/zero-cache/src/services/change-source/protocol/current/upstream.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +3 -7
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js +26 -10
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +15 -5
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js +71 -0
- package/out/zero-cache/src/services/change-streamer/backup-monitor.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +68 -78
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.js +84 -92
- package/out/zero-cache/src/services/change-streamer/broadcast.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js +50 -0
- package/out/zero-cache/src/services/change-streamer/change-log-codec.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +34 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js +67 -0
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +141 -0
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js +270 -0
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +19 -0
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.js +39 -0
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +5 -8
- 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 +20 -19
- 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 +90 -24
- 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 +456 -66
- 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 +50 -13
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +8 -0
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +14 -3
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.js +42 -12
- package/out/zero-cache/src/services/change-streamer/forwarder.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/{litestream3-backup-monitor.d.ts → litestream3-prometheus-poller.d.ts} +19 -45
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/{litestream3-backup-monitor.js → litestream3-prometheus-poller.js} +68 -176
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +15 -0
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/replica-poller.js +55 -0
- package/out/zero-cache/src/services/change-streamer/replica-poller.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +5 -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 +2 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +11 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.js +19 -0
- package/out/zero-cache/src/services/change-streamer/shard-sampling.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +24 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js +119 -0
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +4 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.js +39 -14
- package/out/zero-cache/src/services/change-streamer/snapshot.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +99 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js +344 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +83 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js +417 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +121 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.js +391 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +73 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js +157 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +62 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js +164 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +109 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js +258 -0
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +85 -12
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/storer.js +286 -141
- package/out/zero-cache/src/services/change-streamer/storer.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +61 -10
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +1 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.js +101 -8
- package/out/zero-cache/src/services/change-streamer/subscriber.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +34 -0
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js +86 -0
- package/out/zero-cache/src/services/change-streamer/upstream-acker.js.map +1 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts +29 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.d.ts.map +1 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js +154 -0
- package/out/zero-cache/src/services/change-streamer/vfs-watermark-poller.js.map +1 -0
- package/out/zero-cache/src/services/http-service.d.ts +1 -0
- package/out/zero-cache/src/services/http-service.d.ts.map +1 -1
- package/out/zero-cache/src/services/http-service.js +7 -3
- package/out/zero-cache/src/services/http-service.js.map +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts +1 -1
- package/out/zero-cache/src/services/life-cycle.d.ts.map +1 -1
- package/out/zero-cache/src/services/life-cycle.js +4 -3
- package/out/zero-cache/src/services/life-cycle.js.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +12 -11
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/commands.js +115 -152
- package/out/zero-cache/src/services/litestream/commands.js.map +1 -1
- package/out/zero-cache/src/services/litestream/config-v5.yml +42 -0
- package/out/zero-cache/src/services/litestream/config.yml +3 -2
- package/out/zero-cache/src/services/litestream/metrics.d.ts +5 -4
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/metrics.js +10 -10
- package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +5 -2
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/replicator/change-log-cookies.d.ts +169 -0
- package/out/zero-cache/src/services/replicator/change-log-cookies.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-cookies.js +434 -0
- package/out/zero-cache/src/services/replicator/change-log-cookies.js.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +368 -0
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-db.js +491 -0
- package/out/zero-cache/src/services/replicator/change-log-db.js.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +55 -0
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.js +150 -0
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.js.map +1 -0
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +6 -0
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/change-processor.js +70 -25
- package/out/zero-cache/src/services/replicator/change-processor.js.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.js +19 -6
- package/out/zero-cache/src/services/replicator/incremental-sync.js.map +1 -1
- package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -22
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/notifier.js +7 -1
- package/out/zero-cache/src/services/replicator/notifier.js.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +17 -2
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/replicator.js +9 -3
- package/out/zero-cache/src/services/replicator/replicator.js.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +27 -0
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.js +32 -0
- package/out/zero-cache/src/services/replicator/reporter/recorder.js.map +1 -1
- package/out/zero-cache/src/services/replicator/reporter/report-schema.d.ts +1 -1
- package/out/zero-cache/src/services/replicator/schema/backfilling.d.ts +119 -0
- package/out/zero-cache/src/services/replicator/schema/backfilling.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/backfilling.js +214 -0
- package/out/zero-cache/src/services/replicator/schema/backfilling.js.map +1 -0
- package/out/zero-cache/src/services/replicator/schema/change-log.d.ts +3 -3
- package/out/zero-cache/src/services/replicator/schema/column-metadata.js +1 -1
- package/out/zero-cache/src/services/replicator/schema/column-metadata.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 +9 -5
- package/out/zero-cache/src/services/replicator/schema/replication-state.js.map +1 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +132 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js +415 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.js.map +1 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +120 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +1 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js +283 -0
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.js.map +1 -0
- package/out/zero-cache/src/services/replicator/write-worker.js +23 -12
- package/out/zero-cache/src/services/replicator/write-worker.js.map +1 -1
- package/out/zero-cache/src/services/run-ast.d.ts.map +1 -1
- package/out/zero-cache/src/services/run-ast.js +2 -1
- package/out/zero-cache/src/services/run-ast.js.map +1 -1
- package/out/zero-cache/src/services/running-state.d.ts +1 -1
- package/out/zero-cache/src/services/running-state.d.ts.map +1 -1
- package/out/zero-cache/src/services/running-state.js +1 -0
- package/out/zero-cache/src/services/running-state.js.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 +25 -17
- 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 +14 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +53 -0
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +1 -0
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.js +68 -0
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.js.map +1 -0
- 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 +18 -3
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +1 -1
- 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 +14 -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 +70 -8
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/types/downstream.d.ts +11 -0
- package/out/zero-cache/src/types/downstream.d.ts.map +1 -0
- package/out/zero-cache/src/types/pg.d.ts.map +1 -1
- package/out/zero-cache/src/types/pg.js +14 -4
- package/out/zero-cache/src/types/pg.js.map +1 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +18 -0
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +1 -0
- package/out/zero-cache/src/types/poke-chunk.js +57 -0
- package/out/zero-cache/src/types/poke-chunk.js.map +1 -0
- package/out/zero-cache/src/types/processes.d.ts +1 -2
- package/out/zero-cache/src/types/processes.d.ts.map +1 -1
- package/out/zero-cache/src/types/processes.js +1 -28
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts +16 -0
- package/out/zero-cache/src/types/streams.d.ts.map +1 -1
- package/out/zero-cache/src/types/streams.js +25 -4
- package/out/zero-cache/src/types/streams.js.map +1 -1
- package/out/zero-cache/src/types/subscription.d.ts +2 -0
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
- package/out/zero-cache/src/types/subscription.js +6 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +23 -4
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +130 -10
- package/out/zero-cache/src/workers/connection.js.map +1 -1
- package/out/zero-cache/src/workers/replicator.d.ts +25 -0
- package/out/zero-cache/src/workers/replicator.d.ts.map +1 -1
- package/out/zero-cache/src/workers/replicator.js +33 -1
- package/out/zero-cache/src/workers/replicator.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.d.ts +12 -0
- package/out/zero-cache/src/workers/syncer.d.ts.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +75 -0
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-client/src/client/zero-poke-handler.d.ts +7 -2
- package/out/zero-client/src/client/zero-poke-handler.d.ts.map +1 -1
- package/out/zero-client/src/client/zero-poke-handler.js +52 -2
- package/out/zero-client/src/client/zero-poke-handler.js.map +1 -1
- package/out/zero-client/src/client/zero.d.ts +6 -7
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +194 -107
- package/out/zero-client/src/client/zero.js.map +1 -1
- package/out/zero-protocol/src/down.d.ts +1 -1
- package/out/zero-protocol/src/poke.d.ts +89 -7
- package/out/zero-protocol/src/poke.d.ts.map +1 -1
- package/out/zero-protocol/src/poke.js +16 -8
- package/out/zero-protocol/src/poke.js.map +1 -1
- package/out/zero-protocol/src/protocol-version.d.ts +12 -7
- package/out/zero-protocol/src/protocol-version.d.ts.map +1 -1
- package/out/zero-protocol/src/protocol-version.js.map +1 -1
- package/out/zero-schema/src/builder/table-builder.d.ts +23 -0
- package/out/zero-schema/src/builder/table-builder.d.ts.map +1 -1
- package/out/zero-schema/src/builder/table-builder.js +18 -0
- package/out/zero-schema/src/builder/table-builder.js.map +1 -1
- package/out/zero-server/src/custom.js +10 -3
- package/out/zero-server/src/custom.js.map +1 -1
- package/out/zero-server/src/schema.d.ts +8 -0
- package/out/zero-server/src/schema.d.ts.map +1 -1
- package/out/zero-server/src/schema.js +63 -24
- package/out/zero-server/src/schema.js.map +1 -1
- package/out/zero-types/src/schema.d.ts +11 -0
- package/out/zero-types/src/schema.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.d.ts +10 -2
- package/out/zql/src/ivm/memory-source.d.ts.map +1 -1
- package/out/zql/src/ivm/memory-source.js +14 -6
- package/out/zql/src/ivm/memory-source.js.map +1 -1
- package/out/zql/src/ivm/stream.d.ts +0 -1
- package/out/zql/src/ivm/stream.d.ts.map +1 -1
- package/out/zql/src/ivm/stream.js +1 -7
- package/out/zql/src/ivm/stream.js.map +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts +1 -1
- package/out/zql/src/ivm/union-fan-in.d.ts.map +1 -1
- package/out/zql/src/ivm/union-fan-in.js +11 -2
- package/out/zql/src/ivm/union-fan-in.js.map +1 -1
- package/out/zql/src/mutate/crud.d.ts +10 -8
- package/out/zql/src/mutate/crud.d.ts.map +1 -1
- package/out/zql/src/mutate/crud.js.map +1 -1
- package/out/zql/src/query/query-delegate-base.d.ts.map +1 -1
- package/out/zql/src/query/query-delegate-base.js +5 -1
- package/out/zql/src/query/query-delegate-base.js.map +1 -1
- package/out/zql/src/query/query-impl.d.ts +2 -2
- package/out/zql/src/query/query-impl.d.ts.map +1 -1
- package/out/zql/src/query/query-impl.js.map +1 -1
- package/out/zql/src/query/query.d.ts +83 -14
- package/out/zql/src/query/query.d.ts.map +1 -1
- package/out/zql/src/query/static-query.d.ts +1 -1
- package/out/zql/src/query/static-query.d.ts.map +1 -1
- package/out/zqlite/src/db.js +2 -2
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts +15 -0
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +1 -1
- package/out/zqlite/src/resolve-scalar-subqueries.js +33 -14
- package/out/zqlite/src/resolve-scalar-subqueries.js.map +1 -1
- package/out/zqlite/src/sqlite-cost-model.js +5 -5
- package/out/zqlite/src/table-source.d.ts.map +1 -1
- package/out/zqlite/src/table-source.js +4 -4
- package/out/zqlite/src/table-source.js.map +1 -1
- package/package.json +3 -3
- package/out/replicache/src/db/index.js +0 -91
- package/out/replicache/src/db/index.js.map +0 -1
- package/out/replicache/src/lazy.d.ts +0 -2
- package/out/replicache/src/lazy.d.ts.map +0 -1
- package/out/replicache/src/lazy.js +0 -12
- package/out/replicache/src/lazy.js.map +0 -1
- package/out/zero-cache/src/server/backup-watermark-reader.js +0 -35
- package/out/zero-cache/src/server/backup-watermark-reader.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-backup-monitor.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts +0 -16
- package/out/zero-cache/src/services/change-streamer/replica-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js +0 -54
- package/out/zero-cache/src/services/change-streamer/replica-monitor.js.map +0 -1
- package/out/zero-cache/src/services/change-streamer/vfs-backup-monitor.d.ts +0 -25
- package/out/zero-cache/src/services/change-streamer/vfs-backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/vfs-backup-monitor.js +0 -159
- package/out/zero-cache/src/services/change-streamer/vfs-backup-monitor.js.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-reader.d.ts +0 -44
- package/out/zero-cache/src/services/litestream/vfs-watermark-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-reader.js +0 -65
- package/out/zero-cache/src/services/litestream/vfs-watermark-reader.js.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker-source.d.ts +0 -11
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker-source.js +0 -74
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker-source.js.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker.d.ts +0 -42
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker.js +0 -117
- package/out/zero-cache/src/services/litestream/vfs-watermark-worker.js.map +0 -1
|
@@ -273,6 +273,27 @@ var zeroOptions = {
|
|
|
273
273
|
``,
|
|
274
274
|
`(Note that this option has no effect for Postgres versions before 17.)`
|
|
275
275
|
]
|
|
276
|
+
},
|
|
277
|
+
pgStreamInboundTimeoutMs: {
|
|
278
|
+
type: valita_exports.number().optional(),
|
|
279
|
+
desc: [
|
|
280
|
+
`The time (in milliseconds) without any inbound message from the upstream`,
|
|
281
|
+
`wal sender after which the replication stream is considered unresponsive`,
|
|
282
|
+
`and torn down to force a reconnect.`,
|
|
283
|
+
``,
|
|
284
|
+
`Defaults to 2x the server's {bold wal_sender_timeout}. That suits idle`,
|
|
285
|
+
`streams, but a busy wal sender can be legitimately silent for longer —`,
|
|
286
|
+
`e.g. while decoding through WAL from unpublished tables, or assembling a`,
|
|
287
|
+
`large transaction that is only sent at commit. If the server's`,
|
|
288
|
+
`{bold wal_sender_timeout} is aggressive (some managed environments`,
|
|
289
|
+
`default it as low as 5 seconds), the resulting teardown aborts and`,
|
|
290
|
+
`replays the in-flight transaction, which can prevent replication from`,
|
|
291
|
+
`ever catching up on a large backlog. Set this option to widen the`,
|
|
292
|
+
`client-side threshold without changing the server setting.`,
|
|
293
|
+
``,
|
|
294
|
+
`(This option has no effect when {bold wal_sender_timeout} is 0, which`,
|
|
295
|
+
`disables inbound liveness detection entirely.)`
|
|
296
|
+
]
|
|
276
297
|
}
|
|
277
298
|
},
|
|
278
299
|
/** @deprecated */
|
|
@@ -347,6 +368,11 @@ var zeroOptions = {
|
|
|
347
368
|
`This is useful for debugging and performance tuning.`
|
|
348
369
|
]
|
|
349
370
|
},
|
|
371
|
+
sqliteCorruptionChecks: {
|
|
372
|
+
type: valita_exports.boolean().default(false),
|
|
373
|
+
desc: [`Run SQLite quick_check and integrity_check when corruption is detected.`, `These checks scan the replica and can take a long time on large databases.`],
|
|
374
|
+
hidden: true
|
|
375
|
+
},
|
|
350
376
|
enableQueryPlanner: {
|
|
351
377
|
type: valita_exports.boolean().default(true),
|
|
352
378
|
desc: [
|
|
@@ -396,12 +422,12 @@ var zeroOptions = {
|
|
|
396
422
|
]
|
|
397
423
|
},
|
|
398
424
|
statementTimeoutMs: {
|
|
399
|
-
type: valita_exports.number().default(
|
|
425
|
+
type: valita_exports.number().default(3e4),
|
|
400
426
|
desc: [
|
|
401
|
-
`Fail change-log
|
|
402
|
-
`
|
|
403
|
-
`
|
|
404
|
-
`
|
|
427
|
+
`Fail change-log db operations that make no progress within the specified timeout. This`,
|
|
428
|
+
`differs from a postgres {bold statement_timeout} in that it is implemented to handle a`,
|
|
429
|
+
`pathological case in which Postgres does not return a response but otherwise believes the`,
|
|
430
|
+
`connection to be idle (e.g. a half-open connection).`
|
|
405
431
|
],
|
|
406
432
|
hidden: true
|
|
407
433
|
},
|
|
@@ -513,6 +539,60 @@ var zeroOptions = {
|
|
|
513
539
|
`immediately, since the incoming request indicates that the task is registered as a target.`
|
|
514
540
|
]
|
|
515
541
|
},
|
|
542
|
+
sqliteChangeLogMode: {
|
|
543
|
+
type: literalUnion("off", "write", "compare", "serve").default("off"),
|
|
544
|
+
desc: [`Controls the staged SQLite change-log rollout. Modes are cumulative:`, `{bold off}, {bold write}, {bold compare}, and {bold serve}.`],
|
|
545
|
+
hidden: true
|
|
546
|
+
},
|
|
547
|
+
sqliteChangeLogReadPercent: {
|
|
548
|
+
type: valita_exports.number().default(0),
|
|
549
|
+
desc: [`The stable percentage of eligible catchup subscriptions served from SQLite.`],
|
|
550
|
+
hidden: true
|
|
551
|
+
},
|
|
552
|
+
sqliteChangeLogColdReadPercent: {
|
|
553
|
+
type: valita_exports.number().default(0),
|
|
554
|
+
desc: [
|
|
555
|
+
`The stable percentage of eligible catchup subscriptions served from a`,
|
|
556
|
+
`SQLite change log that is younger than its retention window, i.e. one`,
|
|
557
|
+
`seeded less than {bold --change-streamer-sqlite-change-log-retention-ms}`,
|
|
558
|
+
`ago. Selection uses the same hash as`,
|
|
559
|
+
`{bold --change-streamer-sqlite-change-log-read-percent}, so a task that`,
|
|
560
|
+
`serves cold is always one that would serve warm.`
|
|
561
|
+
],
|
|
562
|
+
hidden: true
|
|
563
|
+
},
|
|
564
|
+
sqliteChangeLogComparePercent: {
|
|
565
|
+
type: valita_exports.number().default(1),
|
|
566
|
+
desc: [`The stable percentage of committed transactions whose catchup output is`, `compared between the Postgres and SQLite change logs in {bold compare} mode.`],
|
|
567
|
+
hidden: true
|
|
568
|
+
},
|
|
569
|
+
sqliteChangeLogRetentionMs: {
|
|
570
|
+
type: valita_exports.number().default(6e4),
|
|
571
|
+
desc: [`The minimum time window retained in the SQLite change log.`],
|
|
572
|
+
hidden: true
|
|
573
|
+
},
|
|
574
|
+
sqliteChangeLogReadBatchRows: {
|
|
575
|
+
type: valita_exports.number().default(1e3),
|
|
576
|
+
desc: [`The target number of rows in each SQLite catchup read batch.`],
|
|
577
|
+
hidden: true
|
|
578
|
+
},
|
|
579
|
+
sqliteChangeLogPurgeBatchRows: {
|
|
580
|
+
type: valita_exports.number().default(1e3),
|
|
581
|
+
desc: [`The target number of rows in each SQLite purge batch.`],
|
|
582
|
+
hidden: true
|
|
583
|
+
},
|
|
584
|
+
sqliteChangeLogBarrierTimeoutMs: {
|
|
585
|
+
type: valita_exports.number().default(3e5),
|
|
586
|
+
desc: [
|
|
587
|
+
`The maximum wait for the SQLite required-head barrier. This is a`,
|
|
588
|
+
`backstop for a wedged replica on an idle shard, where waiting costs`,
|
|
589
|
+
`nothing and would otherwise go unnoticed. A shard with traffic is`,
|
|
590
|
+
`bounded well before this by the subscriber's backlog reaching its`,
|
|
591
|
+
`high water mark, which is the point at which waiting starts holding`,
|
|
592
|
+
`up replication.`
|
|
593
|
+
],
|
|
594
|
+
hidden: true
|
|
595
|
+
},
|
|
516
596
|
backPressureLimitHeapProportion: {
|
|
517
597
|
type: valita_exports.number().default(.04),
|
|
518
598
|
desc: [
|
|
@@ -536,22 +616,58 @@ var zeroOptions = {
|
|
|
536
616
|
`throughput.`
|
|
537
617
|
]
|
|
538
618
|
},
|
|
539
|
-
|
|
540
|
-
type: valita_exports.number().default(
|
|
619
|
+
flowControlConsensusTimeoutProportion: {
|
|
620
|
+
type: valita_exports.number().default(2),
|
|
541
621
|
desc: [
|
|
542
|
-
`During periodic flow control checks (every 64kb), the amount of time to wait after the`,
|
|
543
|
-
`
|
|
544
|
-
`some subscribers have yet to ack
|
|
545
|
-
`but a timeout that starts {italic after} the majority of receivers have acked.)`,
|
|
622
|
+
`During periodic flow control checks (every 64kb), the amount of time to wait after the majority`,
|
|
623
|
+
`of subscribers have acked, proportional to that interval, after which replication will continue`,
|
|
624
|
+
`even if some subscribers have yet to ack.`,
|
|
546
625
|
``,
|
|
547
626
|
`This allows a bounded amount of time for backlogged subscribers to catch up on each flush`,
|
|
548
627
|
`without forcing all subscribers to wait for the entire backlog to be processed. It is also`,
|
|
549
628
|
`useful for mitigating the effect of unresponsive subscribers due to severed websocket`,
|
|
550
|
-
`connections (until liveness checks
|
|
629
|
+
`connections or pathological zombie situations (until liveness checks or laggard detection`,
|
|
630
|
+
`disconnects them).`,
|
|
631
|
+
``,
|
|
632
|
+
`For example, if the majority of subscribers ack a message in 2.5ms, a padding proportion of`,
|
|
633
|
+
`1.0 instructs replication to continue after an additional 2.5ms; for a proportion of 2.0, an`,
|
|
634
|
+
`additional 5.0ms, etc. The default value of 2.0 allows for a subscriber to be 3x slower than the`,
|
|
635
|
+
`majority in the steady state, while similarly bounding the extent to which a temporarily lagging`,
|
|
636
|
+
`subscriber (e.g. due to catchup) slows down the fleet.`,
|
|
637
|
+
``,
|
|
638
|
+
`Note that subscribers that continually exceed the timeout will eventually be disconnected and`,
|
|
639
|
+
`instructed to shutdown in order to protect the healthy subscribers. It is thus important that`,
|
|
640
|
+
`the proportion account for expected variance in processing speed across subscribers.`,
|
|
551
641
|
``,
|
|
552
642
|
`Set this to a negative number to disable early flow control releases. (Not recommended, but`,
|
|
553
643
|
`available as an emergency measure.)`
|
|
554
644
|
]
|
|
645
|
+
},
|
|
646
|
+
flowControlSlowSubscriberGracePeriodSeconds: {
|
|
647
|
+
type: valita_exports.number().default(30),
|
|
648
|
+
desc: [
|
|
649
|
+
`The period of time after which a lagging subscriber is disconnected and instructed to`,
|
|
650
|
+
`restart. A subscriber is considered lagging if it {italic continuously} (1) exceeds the`,
|
|
651
|
+
`consensus timeout and (2) fails to exceed the change rate of healthy subscribers. These`,
|
|
652
|
+
`conditions distinguish expected, temporary periods of slowness from pathological`,
|
|
653
|
+
`scenarios, such as zombie tasks, in which the subscriber is unlikely to recover.`,
|
|
654
|
+
``,
|
|
655
|
+
`In particular, the second condition excludes subscribers that are performing initial`,
|
|
656
|
+
`catchup, as the rate of change for catchup must eventually exceed the rate of upstream`,
|
|
657
|
+
`changes. Note, however, that catchup rate can be legitimately slow during (rare) expensive`,
|
|
658
|
+
`operations such as index creation.`,
|
|
659
|
+
``,
|
|
660
|
+
`Thus, this grace period caps the amount of time that a lagging subscriber degrades overall`,
|
|
661
|
+
`throughput, but should be long enough to allow for legitimate intervals of slowness.`,
|
|
662
|
+
``,
|
|
663
|
+
`Note that in the pathological case where a catchup operation exceeds this grace period,`,
|
|
664
|
+
`the system will eventually recover after the next backup/restore cycle, as the expensive`,
|
|
665
|
+
`operation (e.g. index creation) will have been applied to the restored replica and no longer`,
|
|
666
|
+
`executed during catchup.`,
|
|
667
|
+
``,
|
|
668
|
+
`Set this to 0 or a negative number to disable laggard detection. (Not recommended, but`,
|
|
669
|
+
`available as an emergency measure.)`
|
|
670
|
+
]
|
|
555
671
|
}
|
|
556
672
|
},
|
|
557
673
|
taskID: {
|
|
@@ -663,15 +779,20 @@ var zeroOptions = {
|
|
|
663
779
|
]
|
|
664
780
|
},
|
|
665
781
|
restoreUsingV5: {
|
|
666
|
-
type: valita_exports.boolean().default(
|
|
667
|
-
desc: [
|
|
782
|
+
type: valita_exports.boolean().default(true),
|
|
783
|
+
desc: [
|
|
784
|
+
`Restores the backup using the {bold ZERO_LITESTREAM_EXECUTABLE_V5} if specified.`,
|
|
785
|
+
`This provides a recovery path if rolling back from {bold ZERO_LITESTREAM_BACKUP_USING_V5}`,
|
|
786
|
+
`as v5 restores from both v3 and v5 backups (whichever is more recent).`
|
|
787
|
+
]
|
|
668
788
|
},
|
|
669
789
|
backupUsingV5: {
|
|
670
790
|
type: valita_exports.boolean().default(false),
|
|
671
791
|
desc: [
|
|
672
792
|
`Backs up the replica using Litestream v0.5.x and monitors cleanup`,
|
|
673
793
|
`watermarks by reading the backup through the Litestream SQLite VFS.`,
|
|
674
|
-
`This requires {bold ZERO_LITESTREAM_RESTORE_USING_V5}
|
|
794
|
+
`This requires {bold ZERO_LITESTREAM_RESTORE_USING_V5} and`,
|
|
795
|
+
`{bold ZERO_LITESTREAM_VFS_QUERY_EXECUTABLE}`
|
|
675
796
|
]
|
|
676
797
|
},
|
|
677
798
|
configPath: {
|
|
@@ -686,21 +807,35 @@ var zeroOptions = {
|
|
|
686
807
|
`* {bold ZERO_LOG_FORMAT} for the log type`
|
|
687
808
|
]
|
|
688
809
|
},
|
|
689
|
-
|
|
690
|
-
type: valita_exports.string().default("/
|
|
691
|
-
desc: [
|
|
810
|
+
configPathV5: {
|
|
811
|
+
type: valita_exports.string().default("./src/services/litestream/config-v5.yml"),
|
|
812
|
+
desc: [
|
|
813
|
+
`Path to the litestream v5 yaml config file. zero-cache will run this with its`,
|
|
814
|
+
`environment variables, which can be referenced in the file via $\\{ENV\\}`,
|
|
815
|
+
`substitution, for example:`,
|
|
816
|
+
`* {bold ZERO_REPLICA_FILE} for the db path`,
|
|
817
|
+
`* {bold ZERO_LITESTREAM_BACKUP_LOCATION} for the db replica url`,
|
|
818
|
+
`* {bold ZERO_LITESTREAM_LOG_LEVEL} for the log level`,
|
|
819
|
+
`* {bold ZERO_LOG_FORMAT} for the log type`
|
|
820
|
+
]
|
|
821
|
+
},
|
|
822
|
+
vfsQueryExecutable: {
|
|
823
|
+
type: valita_exports.string().optional(),
|
|
824
|
+
desc: [`Path to the rocicorp vfs-query executable that runs the VFS-based`, `polling of backup watermark. This is required when backing up with V5.`]
|
|
692
825
|
},
|
|
693
|
-
|
|
694
|
-
type: valita_exports.number().default(
|
|
826
|
+
vfsPollIntervalMs: {
|
|
827
|
+
type: valita_exports.number().default(15 * 1e3),
|
|
695
828
|
desc: [
|
|
696
|
-
`Interval in milliseconds
|
|
697
|
-
`
|
|
698
|
-
|
|
829
|
+
`Interval in milliseconds litestream vfs extension polls the backup store (e.g. s3)`,
|
|
830
|
+
`to determine the most recent backup.`,
|
|
831
|
+
``,
|
|
832
|
+
`This, in turn, influences how quickly new backups are confirmed, allowing the`,
|
|
833
|
+
`change-streamer to ack the upstream change-source (e.g. replication slot).`
|
|
699
834
|
]
|
|
700
835
|
},
|
|
701
|
-
|
|
702
|
-
type: valita_exports.number().default(
|
|
703
|
-
desc: [`Timeout in milliseconds for requests to the Litestream VFS
|
|
836
|
+
vfsPollTimeoutMs: {
|
|
837
|
+
type: valita_exports.number().default(10 * 1e3),
|
|
838
|
+
desc: [`Timeout in milliseconds for requests to the Litestream VFS poller.`]
|
|
704
839
|
},
|
|
705
840
|
vfsLogFile: {
|
|
706
841
|
type: valita_exports.string().optional(),
|
|
@@ -741,9 +876,12 @@ var zeroOptions = {
|
|
|
741
876
|
desc: [
|
|
742
877
|
`The size of the WAL file at which to perform an SQlite checkpoint to apply`,
|
|
743
878
|
`the writes in the WAL to the main database file. Each checkpoint creates`,
|
|
744
|
-
`a new WAL segment file that will be backed up by litestream. Smaller thresholds`,
|
|
879
|
+
`a new WAL segment file that will be backed up by litestream (v3). Smaller thresholds`,
|
|
745
880
|
`may improve read performance, at the expense of creating more files to download`,
|
|
746
|
-
`when restoring the replica from the backup
|
|
881
|
+
`when restoring the replica from the backup.`,
|
|
882
|
+
``,
|
|
883
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
884
|
+
`when replicating with litestream v5.`
|
|
747
885
|
]
|
|
748
886
|
},
|
|
749
887
|
minCheckpointPageCount: {
|
|
@@ -751,7 +889,10 @@ var zeroOptions = {
|
|
|
751
889
|
desc: [
|
|
752
890
|
`The WAL page count at which SQLite attempts a PASSIVE checkpoint, which`,
|
|
753
891
|
`transfers pages to the main database file without blocking writers.`,
|
|
754
|
-
`Defaults to {bold checkpointThresholdMB * 250} (since SQLite page size is 4KB)
|
|
892
|
+
`Defaults to {bold checkpointThresholdMB * 250} (since SQLite page size is 4KB).`,
|
|
893
|
+
``,
|
|
894
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
895
|
+
`when replicating with litestream v5.`
|
|
755
896
|
]
|
|
756
897
|
},
|
|
757
898
|
maxCheckpointPageCount: {
|
|
@@ -759,26 +900,52 @@ var zeroOptions = {
|
|
|
759
900
|
desc: [
|
|
760
901
|
`The WAL page count at which SQLite performs a RESTART checkpoint, which`,
|
|
761
902
|
`blocks writers until complete. Defaults to {bold minCheckpointPageCount * 10}.`,
|
|
762
|
-
`Set to {bold 0} to disable RESTART checkpoints entirely
|
|
903
|
+
`Set to {bold 0} to disable RESTART checkpoints entirely.`,
|
|
904
|
+
``,
|
|
905
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
906
|
+
`when replicating with litestream v5.`
|
|
763
907
|
]
|
|
764
908
|
},
|
|
765
909
|
incrementalBackupIntervalMinutes: {
|
|
766
|
-
type: valita_exports.number().default(
|
|
910
|
+
type: valita_exports.number().default(5),
|
|
767
911
|
desc: [
|
|
768
|
-
`The interval between incremental backups of the replica. Shorter intervals`,
|
|
912
|
+
`The interval between incremental v3 backups of the replica. Shorter intervals`,
|
|
769
913
|
`reduce the amount of change history that needs to be replayed when catching`,
|
|
770
914
|
`up a new view-syncer, at the expense of increasing the number of files needed`,
|
|
771
|
-
`to download for the initial litestream restore
|
|
915
|
+
`to download for the initial litestream restore.`,
|
|
916
|
+
``,
|
|
917
|
+
`This option only applies to litestream v3 backups and will be deprecated/removed`,
|
|
918
|
+
`once the zero-cache is transitioned to litestream v5. For configuring v5 backup`,
|
|
919
|
+
`frequency, use {bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_SECONDS}.`
|
|
920
|
+
]
|
|
921
|
+
},
|
|
922
|
+
incrementalBackupIntervalSeconds: {
|
|
923
|
+
type: valita_exports.number().default(15),
|
|
924
|
+
desc: [
|
|
925
|
+
`The interval between incremental v5 backups of the replica. With litestream v5`,
|
|
926
|
+
`the upstream change source is not ACKed until the corresponding changes have been`,
|
|
927
|
+
`applied to the replica and backed up by litestream. As such, shorter intervals`,
|
|
928
|
+
`incur a higher number of backup storage writes and files managed (e.g. in s3),`,
|
|
929
|
+
`while longer intervals result requiring a larger buffer for changes upstream `,
|
|
930
|
+
`(e.g. per-replication slot wal records). The default value of 15 seconds targets`,
|
|
931
|
+
`an s3 API cost of ~$1/month (not counting storage costs).`,
|
|
932
|
+
``,
|
|
933
|
+
`This option only applies to litestream v5 backups. For v3 backups, use`,
|
|
934
|
+
`{bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_MINUTES}.`
|
|
772
935
|
]
|
|
773
936
|
},
|
|
774
937
|
snapshotBackupIntervalHours: {
|
|
775
|
-
type: valita_exports.number().default(
|
|
938
|
+
type: valita_exports.number().default(4),
|
|
776
939
|
desc: [
|
|
777
940
|
`The interval between snapshot backups of the replica. Snapshot backups`,
|
|
778
941
|
`make a full copy of the database to a new litestream generation. This`,
|
|
779
942
|
`improves restore time at the expense of bandwidth. Applications with a`,
|
|
780
943
|
`large database and low write rate can increase this interval to reduce`,
|
|
781
|
-
`network usage for backups (litestream defaults to 24 hours)
|
|
944
|
+
`network usage for backups (litestream defaults to 24 hours).`,
|
|
945
|
+
``,
|
|
946
|
+
`This setting is applied when replicating with either litestream v3 or v5.`,
|
|
947
|
+
`Note, however, that snapshots are generally not needed to improve restore time`,
|
|
948
|
+
`with v5, and so a longer interval (e.g. the litestream default of 24h) is fine.`
|
|
782
949
|
]
|
|
783
950
|
},
|
|
784
951
|
restoreParallelism: {
|