@rocicorp/zero 1.10.0-canary.0 → 1.10.0-canary.2
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/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/config/normalize.d.ts +1 -0
- package/out/zero-cache/src/config/normalize.d.ts.map +1 -1
- package/out/zero-cache/src/config/normalize.js +10 -1
- package/out/zero-cache/src/config/normalize.js.map +1 -1
- package/out/zero-cache/src/config/zero-config.d.ts +52 -1
- package/out/zero-cache/src/config/zero-config.d.ts.map +1 -1
- package/out/zero-cache/src/config/zero-config.js +171 -22
- 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 +5 -2
- 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/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/backup-watermark-poller.js +31 -0
- package/out/zero-cache/src/server/backup-watermark-poller.js.map +1 -0
- package/out/zero-cache/src/server/change-streamer.d.ts.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +91 -31
- 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 +6 -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 +48 -5
- package/out/zero-cache/src/server/replicator.js.map +1 -1
- package/out/zero-cache/src/server/runner/run-worker.js +2 -1
- 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 +1 -1
- package/out/zero-cache/src/server/worker-urls.js +2 -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 +73 -1
- 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.js +4 -7
- 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 +82 -25
- package/out/zero-cache/src/services/change-source/pg/change-source.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 +12 -4
- 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 +45 -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 +59 -8
- 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 +4 -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 +7 -4
- 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 +5 -6
- 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 +32 -9
- 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 +66 -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-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 +3 -4
- 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 +12 -17
- 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 +69 -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 +333 -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 +56 -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 +41 -11
- 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} +57 -171
- 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/snapshot-reservations.d.ts +14 -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 +86 -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 +75 -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 +261 -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-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-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 +159 -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 +28 -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 +116 -121
- 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/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 +107 -148
- 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 +4 -4
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +1 -1
- package/out/zero-cache/src/services/litestream/metrics.js +7 -10
- package/out/zero-cache/src/services/litestream/metrics.js.map +1 -1
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts +57 -0
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.d.ts.map +1 -0
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js +137 -0
- package/out/zero-cache/src/services/litestream/vfs-watermark-poller.js.map +1 -0
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +4 -1
- 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 +358 -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 +477 -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 +131 -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 +413 -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/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 +11 -1
- 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 +64 -6
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- 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 -25
- package/out/zero-cache/src/types/processes.js.map +1 -1
- package/out/zero-cache/src/types/streams.d.ts +21 -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 +11 -0
- package/out/zero-cache/src/types/subscription.d.ts.map +1 -1
- package/out/zero-cache/src/types/subscription.js +27 -0
- package/out/zero-cache/src/types/subscription.js.map +1 -1
- package/out/zero-cache/src/workers/connection.d.ts +1 -0
- package/out/zero-cache/src/workers/connection.d.ts.map +1 -1
- package/out/zero-cache/src/workers/connection.js +24 -2
- 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.d.ts +6 -7
- package/out/zero-client/src/client/zero.d.ts.map +1 -1
- package/out/zero-client/src/client/zero.js +156 -101
- package/out/zero-client/src/client/zero.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/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.js +3 -3
- 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
|
@@ -14,9 +14,18 @@ function assertNormalized(config) {
|
|
|
14
14
|
assert(config.taskID, "missing --task-id");
|
|
15
15
|
assert(config.changeStreamer.port, "missing --change-streamer-port");
|
|
16
16
|
assert(config.changeStreamer.address, "missing --change-streamer-address");
|
|
17
|
+
const { sqliteChangeLogMode, sqliteChangeLogReadPercent, sqliteChangeLogRetentionMs, sqliteChangeLogReadBatchRows, sqliteChangeLogPurgeBatchRows, sqliteChangeLogBarrierTimeoutMs } = config.changeStreamer;
|
|
18
|
+
assert(Number.isSafeInteger(sqliteChangeLogReadPercent) && sqliteChangeLogReadPercent >= 0 && sqliteChangeLogReadPercent <= 100, "--change-streamer-sqlite-change-log-read-percent must be an integer between 0 and 100");
|
|
19
|
+
assert(sqliteChangeLogMode === "serve" || sqliteChangeLogReadPercent === 0, "--change-streamer-sqlite-change-log-read-percent must be 0 unless --change-streamer-sqlite-change-log-mode=serve");
|
|
20
|
+
for (const [flag, value] of [
|
|
21
|
+
["retention-ms", sqliteChangeLogRetentionMs],
|
|
22
|
+
["read-batch-rows", sqliteChangeLogReadBatchRows],
|
|
23
|
+
["purge-batch-rows", sqliteChangeLogPurgeBatchRows],
|
|
24
|
+
["barrier-timeout-ms", sqliteChangeLogBarrierTimeoutMs]
|
|
25
|
+
]) assert(Number.isSafeInteger(value) && value > 0, `--change-streamer-sqlite-change-log-${flag} must be a positive integer`);
|
|
17
26
|
assert(config.litestream.port, "missing --litestream-port");
|
|
18
27
|
assert(!config.litestream.backupUsingV5 || config.litestream.restoreUsingV5, "--litestream-backup-using-v5 requires --litestream-restore-using-v5");
|
|
19
|
-
assert(!config.litestream.
|
|
28
|
+
assert(!config.litestream.backupURL || config.litestream.executableV5 || !(config.litestream.restoreUsingV5 || config.litestream.backupUsingV5), "--litestream-restore-using-v5 and --litestream-backup-using-v5 require --litestream-executable to be specified");
|
|
20
29
|
assert(config.change.db, "missing --change-db");
|
|
21
30
|
assert(config.cvr.db, "missing --cvr-db");
|
|
22
31
|
assertNotUndefined(config.numSyncWorkers, "missing --num-sync-workers");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize.js","names":[],"sources":["../../../../../zero-cache/src/config/normalize.ts"],"sourcesContent":["import {availableParallelism} from 'node:os';\nimport type {LogContext} from '@rocicorp/logger';\nimport {nanoid} from 'nanoid';\nimport {assert, assertNotUndefined} from '../../../shared/src/asserts.ts';\nimport {getHostIp} from './network.ts';\nimport type {ZeroConfig} from './zero-config.ts';\n\n/** {@link ZeroConfig} with defaults set per option documentation. */\nexport type NormalizedZeroConfig = ZeroConfig & {\n taskID: string;\n changeStreamer: {\n port: number;\n address: string;\n };\n change: {\n db: string;\n };\n cvr: {\n db: string;\n };\n litestream: {\n port: number;\n };\n numSyncWorkers: number;\n};\n\nexport function isDevelopmentMode(): boolean {\n return process.env.NODE_ENV === 'development';\n}\n\nfunction isRunningInECS(): boolean {\n // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-environment-variables.html\n return process.env.ECS_CONTAINER_METADATA_URI_V4 !== undefined;\n}\n\nconst DEFAULT_ECS_KEEPALIVE_TIMEOUT_MS = 20_000;\n\nexport function assertNormalized(\n config: ZeroConfig,\n): asserts config is NormalizedZeroConfig {\n assert(config.taskID, 'missing --task-id');\n assert(config.changeStreamer.port, 'missing --change-streamer-port');\n assert(config.changeStreamer.address, 'missing --change-streamer-address');\n assert(
|
|
1
|
+
{"version":3,"file":"normalize.js","names":[],"sources":["../../../../../zero-cache/src/config/normalize.ts"],"sourcesContent":["import {availableParallelism} from 'node:os';\nimport type {LogContext} from '@rocicorp/logger';\nimport {nanoid} from 'nanoid';\nimport {assert, assertNotUndefined} from '../../../shared/src/asserts.ts';\nimport {getHostIp} from './network.ts';\nimport type {ZeroConfig} from './zero-config.ts';\n\n/** {@link ZeroConfig} with defaults set per option documentation. */\nexport type NormalizedZeroConfig = ZeroConfig & {\n taskID: string;\n changeStreamer: {\n port: number;\n address: string;\n };\n change: {\n db: string;\n };\n cvr: {\n db: string;\n };\n litestream: {\n port: number;\n };\n numSyncWorkers: number;\n};\n\nexport type LitestreamConfig = NormalizedZeroConfig['litestream'];\n\nexport function isDevelopmentMode(): boolean {\n return process.env.NODE_ENV === 'development';\n}\n\nfunction isRunningInECS(): boolean {\n // https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-environment-variables.html\n return process.env.ECS_CONTAINER_METADATA_URI_V4 !== undefined;\n}\n\nconst DEFAULT_ECS_KEEPALIVE_TIMEOUT_MS = 20_000;\n\nexport function assertNormalized(\n config: ZeroConfig,\n): asserts config is NormalizedZeroConfig {\n assert(config.taskID, 'missing --task-id');\n assert(config.changeStreamer.port, 'missing --change-streamer-port');\n assert(config.changeStreamer.address, 'missing --change-streamer-address');\n const {\n sqliteChangeLogMode,\n sqliteChangeLogReadPercent,\n sqliteChangeLogRetentionMs,\n sqliteChangeLogReadBatchRows,\n sqliteChangeLogPurgeBatchRows,\n sqliteChangeLogBarrierTimeoutMs,\n } = config.changeStreamer;\n assert(\n Number.isSafeInteger(sqliteChangeLogReadPercent) &&\n sqliteChangeLogReadPercent >= 0 &&\n sqliteChangeLogReadPercent <= 100,\n '--change-streamer-sqlite-change-log-read-percent must be an integer between 0 and 100',\n );\n assert(\n sqliteChangeLogMode === 'serve' || sqliteChangeLogReadPercent === 0,\n '--change-streamer-sqlite-change-log-read-percent must be 0 unless --change-streamer-sqlite-change-log-mode=serve',\n );\n for (const [flag, value] of [\n ['retention-ms', sqliteChangeLogRetentionMs],\n ['read-batch-rows', sqliteChangeLogReadBatchRows],\n ['purge-batch-rows', sqliteChangeLogPurgeBatchRows],\n ['barrier-timeout-ms', sqliteChangeLogBarrierTimeoutMs],\n ] as const) {\n assert(\n Number.isSafeInteger(value) && value > 0,\n `--change-streamer-sqlite-change-log-${flag} must be a positive integer`,\n );\n }\n assert(config.litestream.port, 'missing --litestream-port');\n assert(\n !config.litestream.backupUsingV5 || config.litestream.restoreUsingV5,\n '--litestream-backup-using-v5 requires --litestream-restore-using-v5',\n );\n assert(\n !config.litestream.backupURL ||\n config.litestream.executableV5 ||\n !(config.litestream.restoreUsingV5 || config.litestream.backupUsingV5),\n '--litestream-restore-using-v5 and --litestream-backup-using-v5 ' +\n 'require --litestream-executable to be specified',\n );\n assert(config.change.db, 'missing --change-db');\n assert(config.cvr.db, 'missing --cvr-db');\n assertNotUndefined(config.numSyncWorkers, 'missing --num-sync-workers');\n\n if (!isDevelopmentMode()) {\n assert(\n config.adminPassword,\n 'missing --admin-password: required in production mode',\n );\n }\n}\n\n/**\n * Normalizes the parsed `config` by setting defaults from the environment\n * or from other options as documented. When defaults are applied, the\n * corresponding `env` variable is updated so that the settings are propagated\n * to spawned child workers. Child workers can then call\n * {@link assertNormalized} to verify that the expected defaults have been set.\n */\nexport function normalizeZeroConfig(\n lc: LogContext,\n config: ZeroConfig,\n env: NodeJS.ProcessEnv,\n defaultTaskID?: string,\n): NormalizedZeroConfig {\n if (!config.taskID) {\n const taskID = defaultTaskID ?? nanoid();\n config.taskID = taskID;\n env['ZERO_TASK_ID'] = taskID;\n }\n if (!config.changeStreamer.port) {\n const port = config.port + 1;\n config.changeStreamer.port = port;\n env['ZERO_CHANGE_STREAMER_PORT'] = String(port);\n }\n if (!config.litestream.port) {\n const port = config.port + 2;\n config.litestream.port = port;\n env['ZERO_LITESTREAM_PORT'] = String(port);\n }\n if (config.numSyncWorkers === undefined) {\n // Reserve 1 core for the replicator. The change-streamer is not CPU heavy.\n const numSyncers = Math.max(1, availableParallelism() - 1);\n config.numSyncWorkers = numSyncers;\n env['ZERO_NUM_SYNC_WORKERS'] = String(numSyncers);\n }\n\n const hostIP = getHostIp(\n lc,\n config.changeStreamer.discoveryInterfacePreferences,\n );\n if (!config.changeStreamer.address) {\n const {port} = config.changeStreamer;\n const address = `${hostIP}:${port}`;\n config.changeStreamer.address = address;\n env['ZERO_CHANGE_STREAMER_ADDRESS'] = address;\n }\n\n if (!config.change.db) {\n config.change.db = config.upstream.db;\n env['ZERO_CHANGE_DB'] = config.upstream.db;\n }\n\n if (!config.cvr.db) {\n config.cvr.db = config.upstream.db;\n env['ZERO_CVR_DB'] = config.upstream.db;\n }\n\n if (!config.keepaliveTimeoutMs && isRunningInECS()) {\n config.keepaliveTimeoutMs = DEFAULT_ECS_KEEPALIVE_TIMEOUT_MS;\n env['ZERO_KEEPALIVE_TIMEOUT_MS'] = String(DEFAULT_ECS_KEEPALIVE_TIMEOUT_MS);\n }\n\n lc.info?.(`runtime env: taskID=${config.taskID}, hostIP=${hostIP}`);\n\n return {\n ...config,\n taskID: config.taskID,\n\n changeStreamer: {\n ...config.changeStreamer,\n port: config.changeStreamer.port,\n address: config.changeStreamer.address,\n },\n\n litestream: {\n ...config.litestream,\n port: config.litestream.port,\n },\n\n change: {\n ...config.change,\n db: config.change.db,\n },\n\n cvr: {\n ...config.cvr,\n db: config.cvr.db,\n },\n\n numSyncWorkers: config.numSyncWorkers,\n };\n}\n"],"mappings":";;;;;AA4BA,SAAgB,oBAA6B;CAC3C,OAAA,QAAA,IAAA,aAAgC;AAClC;AAEA,SAAS,iBAA0B;CAEjC,OAAO,QAAQ,IAAI,kCAAkC,KAAA;AACvD;AAEA,IAAM,mCAAmC;AAEzC,SAAgB,iBACd,QACwC;CACxC,OAAO,OAAO,QAAQ,mBAAmB;CACzC,OAAO,OAAO,eAAe,MAAM,gCAAgC;CACnE,OAAO,OAAO,eAAe,SAAS,mCAAmC;CACzE,MAAM,EACJ,qBACA,4BACA,4BACA,8BACA,+BACA,oCACE,OAAO;CACX,OACE,OAAO,cAAc,0BAA0B,KAC7C,8BAA8B,KAC9B,8BAA8B,KAChC,uFACF;CACA,OACE,wBAAwB,WAAW,+BAA+B,GAClE,kHACF;CACA,KAAK,MAAM,CAAC,MAAM,UAAU;EAC1B,CAAC,gBAAgB,0BAA0B;EAC3C,CAAC,mBAAmB,4BAA4B;EAChD,CAAC,oBAAoB,6BAA6B;EAClD,CAAC,sBAAsB,+BAA+B;CACxD,GACE,OACE,OAAO,cAAc,KAAK,KAAK,QAAQ,GACvC,uCAAuC,KAAK,4BAC9C;CAEF,OAAO,OAAO,WAAW,MAAM,2BAA2B;CAC1D,OACE,CAAC,OAAO,WAAW,iBAAiB,OAAO,WAAW,gBACtD,qEACF;CACA,OACE,CAAC,OAAO,WAAW,aACjB,OAAO,WAAW,gBAClB,EAAE,OAAO,WAAW,kBAAkB,OAAO,WAAW,gBAC1D,gHAEF;CACA,OAAO,OAAO,OAAO,IAAI,qBAAqB;CAC9C,OAAO,OAAO,IAAI,IAAI,kBAAkB;CACxC,mBAAmB,OAAO,gBAAgB,4BAA4B;CAEtE,IAAI,CAAC,kBAAkB,GACrB,OACE,OAAO,eACP,uDACF;AAEJ;;;;;;;;AASA,SAAgB,oBACd,IACA,QACA,KACA,eACsB;CACtB,IAAI,CAAC,OAAO,QAAQ;EAClB,MAAM,SAAS,iBAAiB,OAAO;EACvC,OAAO,SAAS;EAChB,IAAI,kBAAkB;CACxB;CACA,IAAI,CAAC,OAAO,eAAe,MAAM;EAC/B,MAAM,OAAO,OAAO,OAAO;EAC3B,OAAO,eAAe,OAAO;EAC7B,IAAI,+BAA+B,OAAO,IAAI;CAChD;CACA,IAAI,CAAC,OAAO,WAAW,MAAM;EAC3B,MAAM,OAAO,OAAO,OAAO;EAC3B,OAAO,WAAW,OAAO;EACzB,IAAI,0BAA0B,OAAO,IAAI;CAC3C;CACA,IAAI,OAAO,mBAAmB,KAAA,GAAW;EAEvC,MAAM,aAAa,KAAK,IAAI,GAAG,qBAAqB,IAAI,CAAC;EACzD,OAAO,iBAAiB;EACxB,IAAI,2BAA2B,OAAO,UAAU;CAClD;CAEA,MAAM,SAAS,UACb,IACA,OAAO,eAAe,6BACxB;CACA,IAAI,CAAC,OAAO,eAAe,SAAS;EAClC,MAAM,EAAC,SAAQ,OAAO;EACtB,MAAM,UAAU,GAAG,OAAO,GAAG;EAC7B,OAAO,eAAe,UAAU;EAChC,IAAI,kCAAkC;CACxC;CAEA,IAAI,CAAC,OAAO,OAAO,IAAI;EACrB,OAAO,OAAO,KAAK,OAAO,SAAS;EACnC,IAAI,oBAAoB,OAAO,SAAS;CAC1C;CAEA,IAAI,CAAC,OAAO,IAAI,IAAI;EAClB,OAAO,IAAI,KAAK,OAAO,SAAS;EAChC,IAAI,iBAAiB,OAAO,SAAS;CACvC;CAEA,IAAI,CAAC,OAAO,sBAAsB,eAAe,GAAG;EAClD,OAAO,qBAAqB;EAC5B,IAAI,+BAA+B,OAAO,gCAAgC;CAC5E;CAEA,GAAG,OAAO,uBAAuB,OAAO,OAAO,WAAW,QAAQ;CAElE,OAAO;EACL,GAAG;EACH,QAAQ,OAAO;EAEf,gBAAgB;GACd,GAAG,OAAO;GACV,MAAM,OAAO,eAAe;GAC5B,SAAS,OAAO,eAAe;EACjC;EAEA,YAAY;GACV,GAAG,OAAO;GACV,MAAM,OAAO,WAAW;EAC1B;EAEA,QAAQ;GACN,GAAG,OAAO;GACV,IAAI,OAAO,OAAO;EACpB;EAEA,KAAK;GACH,GAAG,OAAO;GACV,IAAI,OAAO,IAAI;EACjB;EAEA,gBAAgB,OAAO;CACzB;AACF"}
|
|
@@ -111,6 +111,10 @@ export declare const zeroOptions: {
|
|
|
111
111
|
type: v.Optional<boolean>;
|
|
112
112
|
desc: string[];
|
|
113
113
|
};
|
|
114
|
+
pgStreamInboundTimeoutMs: {
|
|
115
|
+
type: v.Optional<number>;
|
|
116
|
+
desc: string[];
|
|
117
|
+
};
|
|
114
118
|
};
|
|
115
119
|
/** @deprecated */
|
|
116
120
|
push: {
|
|
@@ -256,6 +260,11 @@ export declare const zeroOptions: {
|
|
|
256
260
|
type: v.Optional<boolean>;
|
|
257
261
|
desc: string[];
|
|
258
262
|
};
|
|
263
|
+
sqliteCorruptionChecks: {
|
|
264
|
+
type: v.Type<boolean>;
|
|
265
|
+
desc: string[];
|
|
266
|
+
hidden: boolean;
|
|
267
|
+
};
|
|
259
268
|
enableQueryPlanner: {
|
|
260
269
|
type: v.Type<boolean>;
|
|
261
270
|
desc: string[];
|
|
@@ -415,11 +424,45 @@ export declare const zeroOptions: {
|
|
|
415
424
|
type: v.Type<number>;
|
|
416
425
|
desc: string[];
|
|
417
426
|
};
|
|
427
|
+
sqliteChangeLogMode: {
|
|
428
|
+
type: v.Type<"off" | "write" | "compare" | "serve">;
|
|
429
|
+
desc: string[];
|
|
430
|
+
hidden: boolean;
|
|
431
|
+
};
|
|
432
|
+
sqliteChangeLogReadPercent: {
|
|
433
|
+
type: v.Type<number>;
|
|
434
|
+
desc: string[];
|
|
435
|
+
hidden: boolean;
|
|
436
|
+
};
|
|
437
|
+
sqliteChangeLogRetentionMs: {
|
|
438
|
+
type: v.Type<number>;
|
|
439
|
+
desc: string[];
|
|
440
|
+
hidden: boolean;
|
|
441
|
+
};
|
|
442
|
+
sqliteChangeLogReadBatchRows: {
|
|
443
|
+
type: v.Type<number>;
|
|
444
|
+
desc: string[];
|
|
445
|
+
hidden: boolean;
|
|
446
|
+
};
|
|
447
|
+
sqliteChangeLogPurgeBatchRows: {
|
|
448
|
+
type: v.Type<number>;
|
|
449
|
+
desc: string[];
|
|
450
|
+
hidden: boolean;
|
|
451
|
+
};
|
|
452
|
+
sqliteChangeLogBarrierTimeoutMs: {
|
|
453
|
+
type: v.Type<number>;
|
|
454
|
+
desc: string[];
|
|
455
|
+
hidden: boolean;
|
|
456
|
+
};
|
|
418
457
|
backPressureLimitHeapProportion: {
|
|
419
458
|
type: v.Type<number>;
|
|
420
459
|
desc: string[];
|
|
421
460
|
};
|
|
422
|
-
|
|
461
|
+
flowControlConsensusTimeoutProportion: {
|
|
462
|
+
type: v.Type<number>;
|
|
463
|
+
desc: string[];
|
|
464
|
+
};
|
|
465
|
+
flowControlSlowSubscriberGracePeriodSeconds: {
|
|
423
466
|
type: v.Type<number>;
|
|
424
467
|
desc: string[];
|
|
425
468
|
};
|
|
@@ -489,6 +532,10 @@ export declare const zeroOptions: {
|
|
|
489
532
|
type: v.Type<string>;
|
|
490
533
|
desc: string[];
|
|
491
534
|
};
|
|
535
|
+
configPathV5: {
|
|
536
|
+
type: v.Type<string>;
|
|
537
|
+
desc: string[];
|
|
538
|
+
};
|
|
492
539
|
vfsExtensionPath: {
|
|
493
540
|
type: v.Type<string>;
|
|
494
541
|
desc: string[];
|
|
@@ -540,6 +587,10 @@ export declare const zeroOptions: {
|
|
|
540
587
|
type: v.Type<number>;
|
|
541
588
|
desc: string[];
|
|
542
589
|
};
|
|
590
|
+
incrementalBackupIntervalSeconds: {
|
|
591
|
+
type: v.Type<number>;
|
|
592
|
+
desc: string[];
|
|
593
|
+
};
|
|
543
594
|
snapshotBackupIntervalHours: {
|
|
544
595
|
type: v.Type<number>;
|
|
545
596
|
desc: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAUnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,eAAO,MAAM,UAAU;;;;;;;;;CA+CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DhB,CAAC;AA0HF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,UAAU,EACV,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CACrD,CAAC;AAKF,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"zero-config.d.ts","sourceRoot":"","sources":["../../../../../zero-cache/src/config/zero-config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAGL,KAAK,MAAM,EACX,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,CAAC,MAAM,+BAA+B,CAAC;AAUnD,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAC,SAAS,EAAC,MAAM,kCAAkC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,UAAU,CAAC;AAE3C,eAAO,MAAM,UAAU;;;;;;;;;CA+CtB,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;CAwBxB,CAAC;AAEF,QAAA,MAAM,cAAc;;;;;;;;;CAmBnB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC;AAE3D,QAAA,MAAM,oBAAoB;;;;;;;;;CAczB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAE5D,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DhB,CAAC;AA0HF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAEpD,+DAA+D;AAC/D,MAAM,MAAM,mBAAmB,GAAG,IAAI,CACpC,UAAU,EACV,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CACrD,CAAC;AAKF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA4EtB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAoPhB,kBAAkB;;;;;;QASlB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA8kBpB,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgEnB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,WAAW,CAAC,CAAC;AAIpD,wBAAgB,aAAa,CAC3B,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAM,GAC7C,UAAU,CAaZ;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,GAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAM,GAC7C,oBAAoB,CAItB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,GAAG,SAAS,GACpD,MAAM,CAER;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,UAAU,EACd,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,eAAe,CAAC,EACnD,QAAQ,EAAE,MAAM,GAAG,SAAS,WAwC7B;AAYD,wBAAgB,kBAAkB,SAEjC"}
|
|
@@ -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: [
|
|
@@ -513,6 +539,43 @@ 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
|
+
sqliteChangeLogRetentionMs: {
|
|
553
|
+
type: valita_exports.number().default(6e4),
|
|
554
|
+
desc: [`The minimum time window retained in the SQLite change log.`],
|
|
555
|
+
hidden: true
|
|
556
|
+
},
|
|
557
|
+
sqliteChangeLogReadBatchRows: {
|
|
558
|
+
type: valita_exports.number().default(1e3),
|
|
559
|
+
desc: [`The target number of rows in each SQLite catchup read batch.`],
|
|
560
|
+
hidden: true
|
|
561
|
+
},
|
|
562
|
+
sqliteChangeLogPurgeBatchRows: {
|
|
563
|
+
type: valita_exports.number().default(1e3),
|
|
564
|
+
desc: [`The target number of rows in each SQLite purge batch.`],
|
|
565
|
+
hidden: true
|
|
566
|
+
},
|
|
567
|
+
sqliteChangeLogBarrierTimeoutMs: {
|
|
568
|
+
type: valita_exports.number().default(3e5),
|
|
569
|
+
desc: [
|
|
570
|
+
`The maximum wait for the SQLite required-head barrier. This is a`,
|
|
571
|
+
`backstop for a wedged replica on an idle shard, where waiting costs`,
|
|
572
|
+
`nothing and would otherwise go unnoticed. A shard with traffic is`,
|
|
573
|
+
`bounded well before this by the subscriber's backlog reaching its`,
|
|
574
|
+
`high water mark, which is the point at which waiting starts holding`,
|
|
575
|
+
`up replication.`
|
|
576
|
+
],
|
|
577
|
+
hidden: true
|
|
578
|
+
},
|
|
516
579
|
backPressureLimitHeapProportion: {
|
|
517
580
|
type: valita_exports.number().default(.04),
|
|
518
581
|
desc: [
|
|
@@ -536,22 +599,58 @@ var zeroOptions = {
|
|
|
536
599
|
`throughput.`
|
|
537
600
|
]
|
|
538
601
|
},
|
|
539
|
-
|
|
540
|
-
type: valita_exports.number().default(
|
|
602
|
+
flowControlConsensusTimeoutProportion: {
|
|
603
|
+
type: valita_exports.number().default(2),
|
|
541
604
|
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.)`,
|
|
605
|
+
`During periodic flow control checks (every 64kb), the amount of time to wait after the majority`,
|
|
606
|
+
`of subscribers have acked, proportional to that interval, after which replication will continue`,
|
|
607
|
+
`even if some subscribers have yet to ack.`,
|
|
546
608
|
``,
|
|
547
609
|
`This allows a bounded amount of time for backlogged subscribers to catch up on each flush`,
|
|
548
610
|
`without forcing all subscribers to wait for the entire backlog to be processed. It is also`,
|
|
549
611
|
`useful for mitigating the effect of unresponsive subscribers due to severed websocket`,
|
|
550
|
-
`connections (until liveness checks
|
|
612
|
+
`connections or pathological zombie situations (until liveness checks or laggard detection`,
|
|
613
|
+
`disconnects them).`,
|
|
614
|
+
``,
|
|
615
|
+
`For example, if the majority of subscribers ack a message in 2.5ms, a padding proportion of`,
|
|
616
|
+
`1.0 instructs replication to continue after an additional 2.5ms; for a proportion of 2.0, an`,
|
|
617
|
+
`additional 5.0ms, etc. The default value of 2.0 allows for a subscriber to be 3x slower than the`,
|
|
618
|
+
`majority in the steady state, while similarly bounding the extent to which a temporarily lagging`,
|
|
619
|
+
`subscriber (e.g. due to catchup) slows down the fleet.`,
|
|
620
|
+
``,
|
|
621
|
+
`Note that subscribers that continually exceed the timeout will eventually be disconnected and`,
|
|
622
|
+
`instructed to shutdown in order to protect the healthy subscribers. It is thus important that`,
|
|
623
|
+
`the proportion account for expected variance in processing speed across subscribers.`,
|
|
551
624
|
``,
|
|
552
625
|
`Set this to a negative number to disable early flow control releases. (Not recommended, but`,
|
|
553
626
|
`available as an emergency measure.)`
|
|
554
627
|
]
|
|
628
|
+
},
|
|
629
|
+
flowControlSlowSubscriberGracePeriodSeconds: {
|
|
630
|
+
type: valita_exports.number().default(30),
|
|
631
|
+
desc: [
|
|
632
|
+
`The period of time after which a lagging subscriber is disconnected and instructed to`,
|
|
633
|
+
`restart. A subscriber is considered lagging if it {italic continuously} (1) exceeds the`,
|
|
634
|
+
`consensus timeout and (2) fails to exceed the change rate of healthy subscribers. These`,
|
|
635
|
+
`conditions distinguish expected, temporary periods of slowness from pathological`,
|
|
636
|
+
`scenarios, such as zombie tasks, in which the subscriber is unlikely to recover.`,
|
|
637
|
+
``,
|
|
638
|
+
`In particular, the second condition excludes subscribers that are performing initial`,
|
|
639
|
+
`catchup, as the rate of change for catchup must eventually exceed the rate of upstream`,
|
|
640
|
+
`changes. Note, however, that catchup rate can be legitimately slow during (rare) expensive`,
|
|
641
|
+
`operations such as index creation.`,
|
|
642
|
+
``,
|
|
643
|
+
`Thus, this grace period caps the amount of time that a lagging subscriber degrades overall`,
|
|
644
|
+
`throughput, but should be long enough to allow for legitimate intervals of slowness.`,
|
|
645
|
+
``,
|
|
646
|
+
`Note that in the pathological case where a catchup operation exceeds this grace period,`,
|
|
647
|
+
`the system will eventually recover after the next backup/restore cycle, as the expensive`,
|
|
648
|
+
`operation (e.g. index creation) will have been applied to the restored replica and no longer`,
|
|
649
|
+
`executed during catchup.`,
|
|
650
|
+
``,
|
|
651
|
+
`Set this to 0 or a negative number to disable laggard detection. (Not recommended, but`,
|
|
652
|
+
`available as an emergency measure.)`
|
|
653
|
+
]
|
|
555
654
|
}
|
|
556
655
|
},
|
|
557
656
|
taskID: {
|
|
@@ -663,8 +762,12 @@ var zeroOptions = {
|
|
|
663
762
|
]
|
|
664
763
|
},
|
|
665
764
|
restoreUsingV5: {
|
|
666
|
-
type: valita_exports.boolean().default(
|
|
667
|
-
desc: [
|
|
765
|
+
type: valita_exports.boolean().default(true),
|
|
766
|
+
desc: [
|
|
767
|
+
`Restores the backup using the {bold ZERO_LITESTREAM_EXECUTABLE_V5} if specified.`,
|
|
768
|
+
`This provides a recovery path if rolling back from {bold ZERO_LITESTREAM_BACKUP_USING_V5}`,
|
|
769
|
+
`as v5 restores from both v3 and v5 backups (whichever is more recent).`
|
|
770
|
+
]
|
|
668
771
|
},
|
|
669
772
|
backupUsingV5: {
|
|
670
773
|
type: valita_exports.boolean().default(false),
|
|
@@ -686,16 +789,30 @@ var zeroOptions = {
|
|
|
686
789
|
`* {bold ZERO_LOG_FORMAT} for the log type`
|
|
687
790
|
]
|
|
688
791
|
},
|
|
792
|
+
configPathV5: {
|
|
793
|
+
type: valita_exports.string().default("./src/services/litestream/config-v5.yml"),
|
|
794
|
+
desc: [
|
|
795
|
+
`Path to the litestream v5 yaml config file. zero-cache will run this with its`,
|
|
796
|
+
`environment variables, which can be referenced in the file via $\\{ENV\\}`,
|
|
797
|
+
`substitution, for example:`,
|
|
798
|
+
`* {bold ZERO_REPLICA_FILE} for the db path`,
|
|
799
|
+
`* {bold ZERO_LITESTREAM_BACKUP_LOCATION} for the db replica url`,
|
|
800
|
+
`* {bold ZERO_LITESTREAM_LOG_LEVEL} for the log level`,
|
|
801
|
+
`* {bold ZERO_LOG_FORMAT} for the log type`
|
|
802
|
+
]
|
|
803
|
+
},
|
|
689
804
|
vfsExtensionPath: {
|
|
690
805
|
type: valita_exports.string().default("/usr/local/lib/litestream-vfs.so"),
|
|
691
806
|
desc: [`Path to the Litestream v0.5.x SQLite VFS loadable extension used by`, `the backup watermark reader to query the backup directly.`]
|
|
692
807
|
},
|
|
693
808
|
vfsProbeIntervalMs: {
|
|
694
|
-
type: valita_exports.number().default(
|
|
809
|
+
type: valita_exports.number().default(15 * 1e3),
|
|
695
810
|
desc: [
|
|
696
|
-
`Interval in milliseconds
|
|
697
|
-
`
|
|
698
|
-
|
|
811
|
+
`Interval in milliseconds litestream vfs extension polls the backup store (e.g. s3)`,
|
|
812
|
+
`to determine the most recent backup.`,
|
|
813
|
+
``,
|
|
814
|
+
`This, in turn, influences how quickly new backups are confirmed, allowing the`,
|
|
815
|
+
`change-streamer to ack the upstream change-source (e.g. replication slot).`
|
|
699
816
|
]
|
|
700
817
|
},
|
|
701
818
|
vfsProbeTimeoutMs: {
|
|
@@ -741,9 +858,12 @@ var zeroOptions = {
|
|
|
741
858
|
desc: [
|
|
742
859
|
`The size of the WAL file at which to perform an SQlite checkpoint to apply`,
|
|
743
860
|
`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`,
|
|
861
|
+
`a new WAL segment file that will be backed up by litestream (v3). Smaller thresholds`,
|
|
745
862
|
`may improve read performance, at the expense of creating more files to download`,
|
|
746
|
-
`when restoring the replica from the backup
|
|
863
|
+
`when restoring the replica from the backup.`,
|
|
864
|
+
``,
|
|
865
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
866
|
+
`when replicating with litestream v5.`
|
|
747
867
|
]
|
|
748
868
|
},
|
|
749
869
|
minCheckpointPageCount: {
|
|
@@ -751,7 +871,10 @@ var zeroOptions = {
|
|
|
751
871
|
desc: [
|
|
752
872
|
`The WAL page count at which SQLite attempts a PASSIVE checkpoint, which`,
|
|
753
873
|
`transfers pages to the main database file without blocking writers.`,
|
|
754
|
-
`Defaults to {bold checkpointThresholdMB * 250} (since SQLite page size is 4KB)
|
|
874
|
+
`Defaults to {bold checkpointThresholdMB * 250} (since SQLite page size is 4KB).`,
|
|
875
|
+
``,
|
|
876
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
877
|
+
`when replicating with litestream v5.`
|
|
755
878
|
]
|
|
756
879
|
},
|
|
757
880
|
maxCheckpointPageCount: {
|
|
@@ -759,26 +882,52 @@ var zeroOptions = {
|
|
|
759
882
|
desc: [
|
|
760
883
|
`The WAL page count at which SQLite performs a RESTART checkpoint, which`,
|
|
761
884
|
`blocks writers until complete. Defaults to {bold minCheckpointPageCount * 10}.`,
|
|
762
|
-
`Set to {bold 0} to disable RESTART checkpoints entirely
|
|
885
|
+
`Set to {bold 0} to disable RESTART checkpoints entirely.`,
|
|
886
|
+
``,
|
|
887
|
+
`This setting is only relevant when replicating with litestream v3, and is ignored`,
|
|
888
|
+
`when replicating with litestream v5.`
|
|
763
889
|
]
|
|
764
890
|
},
|
|
765
891
|
incrementalBackupIntervalMinutes: {
|
|
766
|
-
type: valita_exports.number().default(
|
|
892
|
+
type: valita_exports.number().default(5),
|
|
767
893
|
desc: [
|
|
768
|
-
`The interval between incremental backups of the replica. Shorter intervals`,
|
|
894
|
+
`The interval between incremental v3 backups of the replica. Shorter intervals`,
|
|
769
895
|
`reduce the amount of change history that needs to be replayed when catching`,
|
|
770
896
|
`up a new view-syncer, at the expense of increasing the number of files needed`,
|
|
771
|
-
`to download for the initial litestream restore
|
|
897
|
+
`to download for the initial litestream restore.`,
|
|
898
|
+
``,
|
|
899
|
+
`This option only applies to litestream v3 backups and will be deprecated/removed`,
|
|
900
|
+
`once the zero-cache is transitioned to litestream v5. For configuring v5 backup`,
|
|
901
|
+
`frequency, use {bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_SECONDS}.`
|
|
902
|
+
]
|
|
903
|
+
},
|
|
904
|
+
incrementalBackupIntervalSeconds: {
|
|
905
|
+
type: valita_exports.number().default(15),
|
|
906
|
+
desc: [
|
|
907
|
+
`The interval between incremental v5 backups of the replica. With litestream v5`,
|
|
908
|
+
`the upstream change source is not ACKed until the corresponding changes have been`,
|
|
909
|
+
`applied to the replica and backed up by litestream. As such, shorter intervals`,
|
|
910
|
+
`incur a higher number of backup storage writes and files managed (e.g. in s3),`,
|
|
911
|
+
`while longer intervals result requiring a larger buffer for changes upstream `,
|
|
912
|
+
`(e.g. per-replication slot wal records). The default value of 15 seconds targets`,
|
|
913
|
+
`an s3 API cost of ~$1/month (not counting storage costs).`,
|
|
914
|
+
``,
|
|
915
|
+
`This option only applies to litestream v5 backups. For v3 backups, use`,
|
|
916
|
+
`{bold ZERO_LITESTREAM_INCREMENTAL_BACKUP_INTERVAL_MINUTES}.`
|
|
772
917
|
]
|
|
773
918
|
},
|
|
774
919
|
snapshotBackupIntervalHours: {
|
|
775
|
-
type: valita_exports.number().default(
|
|
920
|
+
type: valita_exports.number().default(4),
|
|
776
921
|
desc: [
|
|
777
922
|
`The interval between snapshot backups of the replica. Snapshot backups`,
|
|
778
923
|
`make a full copy of the database to a new litestream generation. This`,
|
|
779
924
|
`improves restore time at the expense of bandwidth. Applications with a`,
|
|
780
925
|
`large database and low write rate can increase this interval to reduce`,
|
|
781
|
-
`network usage for backups (litestream defaults to 24 hours)
|
|
926
|
+
`network usage for backups (litestream defaults to 24 hours).`,
|
|
927
|
+
``,
|
|
928
|
+
`This setting is applied when replicating with either litestream v3 or v5.`,
|
|
929
|
+
`Note, however, that snapshots are generally not needed to improve restore time`,
|
|
930
|
+
`with v5, and so a longer interval (e.g. the litestream default of 24h) is fine.`
|
|
782
931
|
]
|
|
783
932
|
},
|
|
784
933
|
restoreParallelism: {
|