@rocicorp/zero 1.12.0-canary.6 → 1.12.0-canary.8
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/zero/package.js +10 -10
- package/out/zero/package.js.map +1 -1
- package/out/zero-cache/src/auth/write-authorizer.js +9 -2
- package/out/zero-cache/src/auth/write-authorizer.js.map +1 -1
- package/out/zero-cache/src/server/change-streamer.js +1 -0
- package/out/zero-cache/src/server/change-streamer.js.map +1 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.js.map +1 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js +17 -9
- package/out/zero-cache/src/services/change-source/pg/change-source-init.js.map +1 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js +1 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/mutagen.js +1 -2
- package/out/zero-cache/src/services/mutagen/mutagen.js.map +1 -1
- package/out/zero-cache/src/services/mutagen/pusher.js +57 -14
- package/out/zero-cache/src/services/mutagen/pusher.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js +1 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.js.map +1 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.js +22 -2
- package/out/zero-cache/src/services/view-syncer/view-syncer.js.map +1 -1
- package/out/zero-cache/src/workers/syncer.js +9 -1
- package/out/zero-cache/src/workers/syncer.js.map +1 -1
- package/out/zero-client/src/client/version.js +1 -1
- package/out/zero-protocol/src/inspect-down.d.ts +81 -81
- package/out/zero-protocol/src/up.d.ts +60 -60
- package/package.json +10 -10
- package/out/shared/src/cache.d.ts +0 -22
- package/out/shared/src/cache.d.ts.map +0 -1
- package/out/shared/src/custom-key-map.d.ts +0 -26
- package/out/shared/src/custom-key-map.d.ts.map +0 -1
- package/out/shared/src/custom-key-set.d.ts +0 -25
- package/out/shared/src/custom-key-set.d.ts.map +0 -1
- package/out/shared/src/logging-test-utils.d.ts +0 -12
- package/out/shared/src/logging-test-utils.d.ts.map +0 -1
- package/out/shared/src/queue.d.ts +0 -53
- package/out/shared/src/queue.d.ts.map +0 -1
- package/out/shared/src/ring-buffer.d.ts +0 -42
- package/out/shared/src/ring-buffer.d.ts.map +0 -1
- package/out/shared/src/sorted-entries.d.ts +0 -2
- package/out/shared/src/sorted-entries.d.ts.map +0 -1
- package/out/zero/src/server/change-streamer.d.ts +0 -2
- package/out/zero/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero/src/server/main.d.ts +0 -2
- package/out/zero/src/server/main.d.ts.map +0 -1
- package/out/zero/src/server/reaper.d.ts +0 -2
- package/out/zero/src/server/reaper.d.ts.map +0 -1
- package/out/zero/src/server/replicator.d.ts +0 -2
- package/out/zero/src/server/replicator.d.ts.map +0 -1
- package/out/zero/src/server/syncer.d.ts +0 -2
- package/out/zero/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/auth/jwt.d.ts +0 -12
- package/out/zero-cache/src/auth/jwt.d.ts.map +0 -1
- package/out/zero-cache/src/auth/load-permissions.d.ts +0 -17
- package/out/zero-cache/src/auth/load-permissions.d.ts.map +0 -1
- package/out/zero-cache/src/auth/write-authorizer.d.ts +0 -28
- package/out/zero-cache/src/auth/write-authorizer.d.ts.map +0 -1
- package/out/zero-cache/src/config/server-context.d.ts +0 -16
- package/out/zero-cache/src/config/server-context.d.ts.map +0 -1
- package/out/zero-cache/src/custom/fetch.d.ts +0 -38
- package/out/zero-cache/src/custom/fetch.d.ts.map +0 -1
- package/out/zero-cache/src/custom/metrics.d.ts +0 -31
- package/out/zero-cache/src/custom/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/custom-queries/transform-query.d.ts +0 -68
- package/out/zero-cache/src/custom-queries/transform-query.d.ts.map +0 -1
- package/out/zero-cache/src/db/create.d.ts +0 -12
- package/out/zero-cache/src/db/create.d.ts.map +0 -1
- package/out/zero-cache/src/db/delete-lite-db.d.ts +0 -2
- package/out/zero-cache/src/db/delete-lite-db.d.ts.map +0 -1
- package/out/zero-cache/src/db/index-predicate.d.ts +0 -4
- package/out/zero-cache/src/db/index-predicate.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration-lite.d.ts +0 -78
- package/out/zero-cache/src/db/migration-lite.d.ts.map +0 -1
- package/out/zero-cache/src/db/migration.d.ts +0 -80
- package/out/zero-cache/src/db/migration.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy-binary.d.ts +0 -101
- package/out/zero-cache/src/db/pg-copy-binary.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-copy.d.ts +0 -30
- package/out/zero-cache/src/db/pg-copy.d.ts.map +0 -1
- package/out/zero-cache/src/db/pg-type-parser.d.ts +0 -15
- package/out/zero-cache/src/db/pg-type-parser.d.ts.map +0 -1
- package/out/zero-cache/src/db/transaction-pool.d.ts +0 -205
- package/out/zero-cache/src/db/transaction-pool.d.ts.map +0 -1
- package/out/zero-cache/src/db/warmup.d.ts +0 -4
- package/out/zero-cache/src/db/warmup.d.ts.map +0 -1
- package/out/zero-cache/src/observability/events.d.ts +0 -15
- package/out/zero-cache/src/observability/events.d.ts.map +0 -1
- package/out/zero-cache/src/observability/log-throttle.d.ts +0 -44
- package/out/zero-cache/src/observability/log-throttle.d.ts.map +0 -1
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts +0 -21
- package/out/zero-cache/src/server/anonymous-otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/change-streamer.d.ts +0 -3
- package/out/zero-cache/src/server/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/server/inspector-delegate.d.ts +0 -71
- package/out/zero-cache/src/server/inspector-delegate.d.ts.map +0 -1
- package/out/zero-cache/src/server/main.d.ts +0 -3
- package/out/zero-cache/src/server/main.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-diag-logger.d.ts +0 -16
- package/out/zero-cache/src/server/otel-diag-logger.d.ts.map +0 -1
- package/out/zero-cache/src/server/otel-start.d.ts +0 -3
- package/out/zero-cache/src/server/otel-start.d.ts.map +0 -1
- package/out/zero-cache/src/server/priority-op.d.ts +0 -8
- package/out/zero-cache/src/server/priority-op.d.ts.map +0 -1
- package/out/zero-cache/src/server/reaper.d.ts +0 -3
- package/out/zero-cache/src/server/reaper.d.ts.map +0 -1
- package/out/zero-cache/src/server/replicator.d.ts +0 -10
- package/out/zero-cache/src/server/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/server/slot-keeper.d.ts +0 -26
- package/out/zero-cache/src/server/slot-keeper.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer-assigner.d.ts +0 -14
- package/out/zero-cache/src/server/syncer-assigner.d.ts.map +0 -1
- package/out/zero-cache/src/server/syncer.d.ts +0 -3
- package/out/zero-cache/src/server/syncer.d.ts.map +0 -1
- package/out/zero-cache/src/server/worker-dispatcher.d.ts +0 -17
- package/out/zero-cache/src/server/worker-dispatcher.d.ts.map +0 -1
- package/out/zero-cache/src/services/analyze.d.ts +0 -9
- package/out/zero-cache/src/services/analyze.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/change-source.d.ts +0 -39
- package/out/zero-cache/src/services/change-source/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts +0 -57
- package/out/zero-cache/src/services/change-source/common/backfill-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts +0 -55
- package/out/zero-cache/src/services/change-source/common/change-stream-multiplexer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts +0 -24
- package/out/zero-cache/src/services/change-source/common/init-cleanup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts +0 -140
- package/out/zero-cache/src/services/change-source/common/replica-restore.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/common/replica-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts +0 -25
- package/out/zero-cache/src/services/change-source/custom/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts +0 -14
- package/out/zero-cache/src/services/change-source/pg/backfill-metadata.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts +0 -36
- package/out/zero-cache/src/services/change-source/pg/backfill-stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts +0 -72
- package/out/zero-cache/src/services/change-source/pg/change-source-init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts +0 -127
- package/out/zero-cache/src/services/change-source/pg/change-source.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/fork-request.d.ts +0 -57
- package/out/zero-cache/src/services/change-source/pg/fork-request.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts +0 -155
- package/out/zero-cache/src/services/change-source/pg/initial-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts +0 -17
- package/out/zero-cache/src/services/change-source/pg/logical-replication/binary-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts +0 -28
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput-parser.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts +0 -76
- package/out/zero-cache/src/services/change-source/pg/logical-replication/pgoutput.types.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts +0 -169
- package/out/zero-cache/src/services/change-source/pg/logical-replication/stream.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts +0 -16
- package/out/zero-cache/src/services/change-source/pg/replication-slot-cleanup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts +0 -15
- package/out/zero-cache/src/services/change-source/pg/replication-slot-health.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts +0 -127
- package/out/zero-cache/src/services/change-source/pg/replication-slots.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts +0 -9
- package/out/zero-cache/src/services/change-source/pg/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts +0 -68
- package/out/zero-cache/src/services/change-source/protocol/backfill-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts +0 -72
- package/out/zero-cache/src/services/change-streamer/backfill-state-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts +0 -50
- package/out/zero-cache/src/services/change-streamer/backfill-state.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts +0 -12
- package/out/zero-cache/src/services/change-streamer/backup-cleanup-monitor-factory.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts +0 -57
- package/out/zero-cache/src/services/change-streamer/backup-monitor.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts +0 -98
- package/out/zero-cache/src/services/change-streamer/broadcast.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-codec.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts +0 -34
- package/out/zero-cache/src/services/change-streamer/change-log-compare-digest.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts +0 -158
- package/out/zero-cache/src/services/change-streamer/change-log-initializer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts +0 -19
- package/out/zero-cache/src/services/change-streamer/change-log-transaction-hash.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts +0 -78
- package/out/zero-cache/src/services/change-streamer/change-streamer-http.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts +0 -152
- package/out/zero-cache/src/services/change-streamer/change-streamer-service.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts +0 -575
- package/out/zero-cache/src/services/change-streamer/change-streamer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts +0 -24
- package/out/zero-cache/src/services/change-streamer/drain-tracker.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/error-type-enum.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts +0 -49
- package/out/zero-cache/src/services/change-streamer/forwarder.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts +0 -80
- package/out/zero-cache/src/services/change-streamer/litestream-sync-requester.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts +0 -88
- package/out/zero-cache/src/services/change-streamer/litestream3-prometheus-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts +0 -15
- package/out/zero-cache/src/services/change-streamer/replica-poller.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts +0 -243
- package/out/zero-cache/src/services/change-streamer/restore-admission.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts +0 -6
- package/out/zero-cache/src/services/change-streamer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts +0 -152
- package/out/zero-cache/src/services/change-streamer/schema/tables.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.d.ts +0 -33
- package/out/zero-cache/src/services/change-streamer/server-start-metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts +0 -11
- package/out/zero-cache/src/services/change-streamer/shard-sampling.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts +0 -92
- package/out/zero-cache/src/services/change-streamer/snapshot-message.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts +0 -36
- package/out/zero-cache/src/services/change-streamer/snapshot-reservations.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts +0 -22
- package/out/zero-cache/src/services/change-streamer/snapshot.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts +0 -99
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-catchup.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts +0 -83
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-comparator.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts +0 -121
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts +0 -73
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-read-router.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts +0 -62
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-reader.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts +0 -114
- package/out/zero-cache/src/services/change-streamer/sqlite-change-log-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/storer.d.ts +0 -276
- package/out/zero-cache/src/services/change-streamer/storer.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts +0 -485
- package/out/zero-cache/src/services/change-streamer/subscribe.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts +0 -205
- package/out/zero-cache/src/services/change-streamer/subscriber.d.ts.map +0 -1
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts +0 -52
- package/out/zero-cache/src/services/change-streamer/upstream-acker.d.ts.map +0 -1
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts +0 -57
- package/out/zero-cache/src/services/limiter/sliding-window-limiter.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/commands.d.ts +0 -77
- package/out/zero-cache/src/services/litestream/commands.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts +0 -78
- package/out/zero-cache/src/services/litestream/litestream-controller.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/metrics.d.ts +0 -31
- package/out/zero-cache/src/services/litestream/metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts +0 -24
- package/out/zero-cache/src/services/litestream/restore-progress.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts +0 -40
- package/out/zero-cache/src/services/mutagen/mutagen.d.ts.map +0 -1
- package/out/zero-cache/src/services/mutagen/pusher.d.ts +0 -63
- package/out/zero-cache/src/services/mutagen/pusher.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts +0 -368
- package/out/zero-cache/src/services/replicator/change-log-db.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts +0 -56
- package/out/zero-cache/src/services/replicator/change-log-stream-writer.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/change-processor.d.ts +0 -37
- package/out/zero-cache/src/services/replicator/change-processor.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts +0 -82
- package/out/zero-cache/src/services/replicator/drain-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts +0 -25
- package/out/zero-cache/src/services/replicator/incremental-sync.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/notifier.d.ts +0 -9
- package/out/zero-cache/src/services/replicator/notifier.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replication-status.d.ts +0 -71
- package/out/zero-cache/src/services/replicator/replication-status.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/replicator.d.ts +0 -86
- package/out/zero-cache/src/services/replicator/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts +0 -55
- package/out/zero-cache/src/services/replicator/reporter/recorder.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts +0 -132
- package/out/zero-cache/src/services/replicator/sqlite-change-log-observability.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts +0 -120
- package/out/zero-cache/src/services/replicator/sqlite-change-log-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts +0 -111
- package/out/zero-cache/src/services/replicator/write-worker-client.d.ts.map +0 -1
- package/out/zero-cache/src/services/run-ast.d.ts +0 -39
- package/out/zero-cache/src/services/run-ast.d.ts.map +0 -1
- package/out/zero-cache/src/services/runner.d.ts +0 -19
- package/out/zero-cache/src/services/runner.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/active-users-gauge.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts +0 -26
- package/out/zero-cache/src/services/view-syncer/advancement-metrics.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts +0 -79
- package/out/zero-cache/src/services/view-syncer/batch-pacer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts +0 -97
- package/out/zero-cache/src/services/view-syncer/client-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts +0 -18
- package/out/zero-cache/src/services/view-syncer/client-schema.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts +0 -184
- package/out/zero-cache/src/services/view-syncer/connection-context-manager.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts +0 -22
- package/out/zero-cache/src/services/view-syncer/cvr-purger.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts +0 -128
- package/out/zero-cache/src/services/view-syncer/cvr-store.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts +0 -294
- package/out/zero-cache/src/services/view-syncer/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts +0 -81
- package/out/zero-cache/src/services/view-syncer/deferred-writes-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts +0 -45
- package/out/zero-cache/src/services/view-syncer/drain-coordinator.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts +0 -53
- package/out/zero-cache/src/services/view-syncer/e2e-serving-lag.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts +0 -33
- package/out/zero-cache/src/services/view-syncer/hydration-budget.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts +0 -51
- package/out/zero-cache/src/services/view-syncer/hydration-circuit-breaker.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts +0 -34
- package/out/zero-cache/src/services/view-syncer/inspect-handler.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts +0 -296
- package/out/zero-cache/src/services/view-syncer/pipeline-driver.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts +0 -7
- package/out/zero-cache/src/services/view-syncer/plan-warnings.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts +0 -132
- package/out/zero-cache/src/services/view-syncer/push-cost.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts +0 -55
- package/out/zero-cache/src/services/view-syncer/push-cutoff.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts +0 -28
- package/out/zero-cache/src/services/view-syncer/query-covering.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts +0 -25
- package/out/zero-cache/src/services/view-syncer/query-shape.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts +0 -89
- package/out/zero-cache/src/services/view-syncer/query-stats.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts +0 -90
- package/out/zero-cache/src/services/view-syncer/row-record-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts +0 -17
- package/out/zero-cache/src/services/view-syncer/row-set-signature.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts +0 -86
- package/out/zero-cache/src/services/view-syncer/schema/cvr.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts +0 -5
- package/out/zero-cache/src/services/view-syncer/schema/init.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts +0 -563
- package/out/zero-cache/src/services/view-syncer/schema/types.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts +0 -95
- package/out/zero-cache/src/services/view-syncer/snapshot-row-cache.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts +0 -420
- package/out/zero-cache/src/services/view-syncer/snapshotter.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts +0 -2
- package/out/zero-cache/src/services/view-syncer/tracer.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts +0 -10
- package/out/zero-cache/src/services/view-syncer/ttl-clock.d.ts.map +0 -1
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts +0 -133
- package/out/zero-cache/src/services/view-syncer/view-syncer.d.ts.map +0 -1
- package/out/zero-cache/src/types/downstream.d.ts +0 -11
- package/out/zero-cache/src/types/downstream.d.ts.map +0 -1
- package/out/zero-cache/src/types/error-with-level.d.ts +0 -9
- package/out/zero-cache/src/types/error-with-level.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-patch.d.ts +0 -21
- package/out/zero-cache/src/types/pg-patch.d.ts.map +0 -1
- package/out/zero-cache/src/types/pg-versions.d.ts +0 -3
- package/out/zero-cache/src/types/pg-versions.d.ts.map +0 -1
- package/out/zero-cache/src/types/poke-chunk.d.ts +0 -18
- package/out/zero-cache/src/types/poke-chunk.d.ts.map +0 -1
- package/out/zero-cache/src/types/streams.d.ts +0 -115
- package/out/zero-cache/src/types/streams.d.ts.map +0 -1
- package/out/zero-cache/src/types/subscription.d.ts +0 -197
- package/out/zero-cache/src/types/subscription.d.ts.map +0 -1
- package/out/zero-cache/src/workers/connect-params.d.ts +0 -28
- package/out/zero-cache/src/workers/connect-params.d.ts.map +0 -1
- package/out/zero-cache/src/workers/connection.d.ts +0 -77
- package/out/zero-cache/src/workers/connection.d.ts.map +0 -1
- package/out/zero-cache/src/workers/replicator.d.ts +0 -57
- package/out/zero-cache/src/workers/replicator.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts +0 -14
- package/out/zero-cache/src/workers/syncer-ws-message-handler.d.ts.map +0 -1
- package/out/zero-cache/src/workers/syncer.d.ts +0 -67
- package/out/zero-cache/src/workers/syncer.d.ts.map +0 -1
- package/out/zero-events/src/index.d.ts +0 -27
- package/out/zero-events/src/index.d.ts.map +0 -1
- package/out/zero-events/src/json.d.ts +0 -20
- package/out/zero-events/src/json.d.ts.map +0 -1
- package/out/zero-events/src/status.d.ts +0 -144
- package/out/zero-events/src/status.d.ts.map +0 -1
- package/out/zqlite/src/database-storage.d.ts +0 -43
- package/out/zqlite/src/database-storage.d.ts.map +0 -1
- package/out/zqlite/src/explain-queries.d.ts +0 -4
- package/out/zqlite/src/explain-queries.d.ts.map +0 -1
- package/out/zqlite/src/internal/sql-inline.d.ts +0 -13
- package/out/zqlite/src/internal/sql-inline.d.ts.map +0 -1
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts +0 -72
- package/out/zqlite/src/resolve-scalar-subqueries.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-cost-model.d.ts +0 -17
- package/out/zqlite/src/sqlite-cost-model.d.ts.map +0 -1
- package/out/zqlite/src/sqlite-stat-fanout.d.ts +0 -121
- package/out/zqlite/src/sqlite-stat-fanout.d.ts.map +0 -1
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { Database } from '../../../../zqlite/src/db.ts';
|
|
3
|
-
import type { SQLiteChangeLogCleanupGuard } from './sqlite-change-log-catchup.ts';
|
|
4
|
-
/** Why a pass stopped before draining the eligible set. */
|
|
5
|
-
export type PurgeStopReason = 'stopped' | 'paused' | 'writer-unavailable' | 'subscriber-behind' | 'batch-limit' | 'error';
|
|
6
|
-
/**
|
|
7
|
-
* The invariant-14 probe's classification of `plan(floor)` after a pass.
|
|
8
|
-
*
|
|
9
|
-
* `too-old` at the floor is not by itself a violation: a log that never held
|
|
10
|
-
* that history — routine at every fork, restore, and rolling restart — returns
|
|
11
|
-
* `too-old` without having purged anything. Only the seed point distinguishes
|
|
12
|
-
* the two, which is why `seedWatermark` is in the v2 meta row:
|
|
13
|
-
*
|
|
14
|
-
* ```
|
|
15
|
-
* violation ⇔ plan(floor) is `too-old` AND seedWatermark <= floor
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export type FloorProbeOutcome = 'retained' | 'ahead' | 'cold-log' | 'violation';
|
|
19
|
-
/** When the cleanup coordinator should run another pass. */
|
|
20
|
-
export type PurgeContinuation = 'immediate' | 'deferred';
|
|
21
|
-
export type PurgePassResult = {
|
|
22
|
-
/** The external floor the pass used. */
|
|
23
|
-
readonly floor: string;
|
|
24
|
-
readonly batches: number;
|
|
25
|
-
readonly deletedRows: number;
|
|
26
|
-
/** Why the pass ended before draining, if it did. */
|
|
27
|
-
readonly stopped: PurgeStopReason | undefined;
|
|
28
|
-
/** The invariant-14 probe's outcome, when the log was available to probe. */
|
|
29
|
-
readonly probe: FloorProbeOutcome | undefined;
|
|
30
|
-
/** Whether, and how soon, the cleanup coordinator should run another pass. */
|
|
31
|
-
readonly continuation: PurgeContinuation | undefined;
|
|
32
|
-
};
|
|
33
|
-
export type SQLiteChangeLogPurgeSchedulerOptions = {
|
|
34
|
-
/**
|
|
35
|
-
* `sqliteChangeLogRetentionMs`: the minimum retention window, ANDed on top
|
|
36
|
-
* of the external floor. It can only make purge more conservative — the
|
|
37
|
-
* purger never accepts it as a standalone bound.
|
|
38
|
-
*/
|
|
39
|
-
readonly retentionMs: number;
|
|
40
|
-
/**
|
|
41
|
-
* `sqliteChangeLogPurgeBatchRows`: the starting chunk size per batch. Not
|
|
42
|
-
* the bound — the statement duration target is.
|
|
43
|
-
*/
|
|
44
|
-
readonly batchRows: number;
|
|
45
|
-
readonly statementTargetMs?: number | undefined;
|
|
46
|
-
readonly maxBatchesPerPass?: number | undefined;
|
|
47
|
-
readonly inTransactionPollMs?: number | undefined;
|
|
48
|
-
/** The clock the retention cutoff is measured against. Defaults to `Date.now`. */
|
|
49
|
-
readonly now?: (() => number) | undefined;
|
|
50
|
-
readonly setTimeoutFn?: typeof setTimeout | undefined;
|
|
51
|
-
readonly clearTimeoutFn?: typeof clearTimeout | undefined;
|
|
52
|
-
/**
|
|
53
|
-
* Awaited between batches so fan-out and catchup make progress. Defaults to
|
|
54
|
-
* a macrotask (`setImmediate`), so pending I/O runs before the next batch.
|
|
55
|
-
*/
|
|
56
|
-
readonly yieldFn?: (() => Promise<void>) | undefined;
|
|
57
|
-
};
|
|
58
|
-
/**
|
|
59
|
-
* Runs bounded SQLite change-log purge passes on the writer's own connection.
|
|
60
|
-
*
|
|
61
|
-
* The caller supplies the current durable cleanup floor independently of any
|
|
62
|
-
* other change-log implementation and owns the timing of subsequent passes.
|
|
63
|
-
* Within a pass this class drains bounded batches, re-checking live subscriber
|
|
64
|
-
* ACKs before each one and releasing the cleanup guard between them, so a
|
|
65
|
-
* catchup registration or snapshot reservation never waits longer than one
|
|
66
|
-
* batch.
|
|
67
|
-
*
|
|
68
|
-
* Purge windows exist only between the writer's commits: purge shares the
|
|
69
|
-
* writer's connection, so it cannot run inside the writer's open transaction,
|
|
70
|
-
* and a batch that finds one waits for the commit notification instead.
|
|
71
|
-
*
|
|
72
|
-
* The result tells the cleanup coordinator whether the next pass should be
|
|
73
|
-
* immediate or deferred. This class deliberately owns no cleanup timer: the
|
|
74
|
-
* same level-triggered coordinator continues a large drain, advances the
|
|
75
|
-
* retention clock on a quiet source, and retries changing external state.
|
|
76
|
-
*/
|
|
77
|
-
export declare class SQLiteChangeLogPurgeScheduler {
|
|
78
|
-
#private;
|
|
79
|
-
/**
|
|
80
|
-
* The guard that brackets catchup registration: required-head capture and
|
|
81
|
-
* `Forwarder.add()` run under the same mutex as purge batches, so the
|
|
82
|
-
* registered ACK is visible to `Forwarder.getAcks()` before the next batch
|
|
83
|
-
* evaluates its gate.
|
|
84
|
-
*/
|
|
85
|
-
readonly cleanupGuard: SQLiteChangeLogCleanupGuard;
|
|
86
|
-
/**
|
|
87
|
-
* @param connection the writer's own connection (§3.3). `undefined` until
|
|
88
|
-
* the writer's first reconcile creates the file, and again after the
|
|
89
|
-
* writer fails soft and deletes it — both of which defer the pass rather
|
|
90
|
-
* than fail it, so a later coordinator pass picks up a late-appearing
|
|
91
|
-
* file without a restart.
|
|
92
|
-
* @param subscriberAcks live subscriber ACKs, re-read before every batch so
|
|
93
|
-
* the supplied floor remains safe throughout an asynchronous drain.
|
|
94
|
-
*/
|
|
95
|
-
constructor(lc: LogContext, connection: () => Database | undefined, subscriberAcks: () => Iterable<string>, opts: SQLiteChangeLogPurgeSchedulerOptions);
|
|
96
|
-
/**
|
|
97
|
-
* Runs one purge pass for the current durable cleanup `floor`.
|
|
98
|
-
* Never rejects; a failed pass is logged and reported as `stopped: 'error'`.
|
|
99
|
-
*/
|
|
100
|
-
purge(floor: string): Promise<PurgePassResult>;
|
|
101
|
-
/**
|
|
102
|
-
* Pauses purging while `taskID` holds a snapshot reservation. The returned
|
|
103
|
-
* promise resolves once no purge batch is in flight, i.e. once the bounds a
|
|
104
|
-
* backup monitor is about to advertise cannot be invalidated by a batch
|
|
105
|
-
* that had already been dispatched.
|
|
106
|
-
*/
|
|
107
|
-
pause(taskID: string): Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* Ends one of `taskID`'s pauses. A later coordinator pass can purge once
|
|
110
|
-
* every reservation has ended. Unknown `taskID`s are ignored.
|
|
111
|
-
*/
|
|
112
|
-
resume(taskID: string): void;
|
|
113
|
-
/**
|
|
114
|
-
* Notes that the writer's open transaction has ended, waking any batch
|
|
115
|
-
* waiting for a purge window. A missed notification costs one poll
|
|
116
|
-
* interval, never correctness.
|
|
117
|
-
*/
|
|
118
|
-
onWriterIdle(): void;
|
|
119
|
-
stop(): void;
|
|
120
|
-
}
|
|
121
|
-
//# sourceMappingURL=sqlite-change-log-purge-scheduler.d.ts.map
|
package/out/zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-change-log-purge-scheduler.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/sqlite-change-log-purge-scheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,QAAQ,EAAY,MAAM,8BAA8B,CAAC;AAWtE,OAAO,KAAK,EAAC,2BAA2B,EAAC,MAAM,gCAAgC,CAAC;AA2BhF,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GAEvB,SAAS,GAET,QAAQ,GAGR,oBAAoB,GAIpB,mBAAmB,GAEnB,aAAa,GAEb,OAAO,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,iBAAiB,GAGzB,UAAU,GAGV,OAAO,GAIP,UAAU,GAIV,WAAW,CAAC;AAEhB,4DAA4D;AAC5D,MAAM,MAAM,iBAAiB,GAEzB,WAAW,GAGX,UAAU,CAAC;AAEf,MAAM,MAAM,eAAe,GAAG;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,qDAAqD;IACrD,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,SAAS,CAAC;IAC9C,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,YAAY,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,oCAAoC,GAAG;IACjD;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,kFAAkF;IAClF,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,UAAU,GAAG,SAAS,CAAC;IACtD,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,YAAY,GAAG,SAAS,CAAC;IAC1D;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;CACtD,CAAC;AA0CF;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,6BAA6B;;IAkExC;;;;;OAKG;IACH,QAAQ,CAAC,YAAY,EAAE,2BAA2B,CAEhD;IAEF;;;;;;;;OAQG;IACH,YACE,EAAE,EAAE,UAAU,EACd,UAAU,EAAE,MAAM,QAAQ,GAAG,SAAS,EACtC,cAAc,EAAE,MAAM,QAAQ,CAAC,MAAM,CAAC,EACtC,IAAI,EAAE,oCAAoC,EAoB3C;IAED;;;OAGG;IACG,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAWnD;IAED;;;;;OAKG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGnC;IAED;;;OAGG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAU3B;IAED;;;;OAIG;IACH,YAAY,IAAI,IAAI,CAKnB;IAED,IAAI,IAAI,IAAI,CAGX;CA8QF"}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { ShardID } from '../../types/shards.ts';
|
|
3
|
-
import { type ChangeLogIdentity } from '../replicator/change-log-db.ts';
|
|
4
|
-
export type ChangeLogReadSource = 'pg' | 'sqlite';
|
|
5
|
-
export type SQLiteChangeLogCoverage = {
|
|
6
|
-
readonly seededAtMs: number;
|
|
7
|
-
readonly seedWatermark: string;
|
|
8
|
-
readonly minWatermark: string;
|
|
9
|
-
readonly headWatermark: string;
|
|
10
|
-
};
|
|
11
|
-
export type ChangeLogReadRouteReason = 'selected' | 'selected-cold' | 'percentage' | 'cold-log' | 'log-unavailable' | 'breaker-open' | 'backup-uncovered';
|
|
12
|
-
export type ChangeLogReadRoute = {
|
|
13
|
-
readonly source: ChangeLogReadSource;
|
|
14
|
-
readonly reason: ChangeLogReadRouteReason;
|
|
15
|
-
readonly pinned?: boolean | undefined;
|
|
16
|
-
readonly coverage?: SQLiteChangeLogCoverage | undefined;
|
|
17
|
-
};
|
|
18
|
-
export type SQLiteChangeLogReadRouterOptions = {
|
|
19
|
-
readonly shard: ShardID;
|
|
20
|
-
readonly readPercent: number;
|
|
21
|
-
/**
|
|
22
|
-
* Percentage of eligible tasks served from a log that has not yet aged
|
|
23
|
-
* through {@link retentionMs}. Defaults to zero, which keeps every such
|
|
24
|
-
* task on PG.
|
|
25
|
-
*/
|
|
26
|
-
readonly coldReadPercent?: number | undefined;
|
|
27
|
-
readonly retentionMs: number;
|
|
28
|
-
readonly inspect: () => SQLiteChangeLogCoverage | undefined;
|
|
29
|
-
readonly failureCooldownMs?: number | undefined;
|
|
30
|
-
readonly now?: (() => number) | undefined;
|
|
31
|
-
};
|
|
32
|
-
/**
|
|
33
|
-
* Selects and pins the catchup source shared by `/snapshot` and `/changes`.
|
|
34
|
-
*
|
|
35
|
-
* A post-registration SQLite failure opens a process-local breaker. Requests
|
|
36
|
-
* use PG during the cooldown; the first request after it expires is the
|
|
37
|
-
* bounded probe. A successful readiness inspection closes the breaker, while
|
|
38
|
-
* another unavailable result rearms it. A writer failure opens it permanently
|
|
39
|
-
* because the writer remains disabled and its file stays absent for the life
|
|
40
|
-
* of the process.
|
|
41
|
-
*/
|
|
42
|
-
export declare class SQLiteChangeLogReadRouter {
|
|
43
|
-
#private;
|
|
44
|
-
constructor(opts: SQLiteChangeLogReadRouterOptions);
|
|
45
|
-
/** Chooses and pins a source for a snapshot reservation. */
|
|
46
|
-
pin(taskID: string): ChangeLogReadRoute;
|
|
47
|
-
/** Returns the source pinned by an active snapshot reservation. */
|
|
48
|
-
peek(taskID: string): ChangeLogReadRoute | undefined;
|
|
49
|
-
/** Consumes a snapshot pin, or makes the stable choice for a direct retry. */
|
|
50
|
-
consume(taskID: string): ChangeLogReadRoute;
|
|
51
|
-
/** Releases a pin whose snapshot reservation ended before subscribing. */
|
|
52
|
-
release(taskID: string): void;
|
|
53
|
-
/**
|
|
54
|
-
* Replaces a pinned SQLite route with PG, for a reservation whose backup
|
|
55
|
-
* the log cannot cover -- most often a log seeded after that backup.
|
|
56
|
-
*
|
|
57
|
-
* The pin moves, not just the reservation's advertised bounds. Confirming
|
|
58
|
-
* with PG bounds while the task's `/changes` request still resolves to
|
|
59
|
-
* SQLite is exactly the mismatch the reservation path exists to prevent,
|
|
60
|
-
* so the two have to change together.
|
|
61
|
-
*
|
|
62
|
-
* A task with no pin is left alone: `consume` makes it a fresh choice.
|
|
63
|
-
*/
|
|
64
|
-
demote(taskID: string): ChangeLogReadRoute;
|
|
65
|
-
/** Opens the post-registration failure breaker. */
|
|
66
|
-
trip(permanent?: boolean): void;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Reads the coverage and validates the v2 schema and RMv2 identity in one
|
|
70
|
-
* short-lived readonly connection. It never creates the log.
|
|
71
|
-
*/
|
|
72
|
-
export declare function inspectSQLiteChangeLog(lc: LogContext, changeLogFile: string, identity: ChangeLogIdentity): SQLiteChangeLogCoverage | undefined;
|
|
73
|
-
//# sourceMappingURL=sqlite-change-log-read-router.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-change-log-read-router.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/sqlite-change-log-read-router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAEjD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,gCAAgC,CAAC;AAGxC,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,QAAQ,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAChC,UAAU,GAIV,eAAe,GACf,YAAY,GACZ,UAAU,GACV,iBAAiB,GACjB,cAAc,GAId,kBAAkB,CAAC;AAEvB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,uBAAuB,GAAG,SAAS,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC7C,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,uBAAuB,GAAG,SAAS,CAAC;IAC5D,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;CAC3C,CAAC;AAIF;;;;;;;;;GASG;AACH,qBAAa,yBAAyB;;IAapC,YAAY,IAAI,EAAE,gCAAgC,EASjD;IAED,4DAA4D;IAC5D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAItC;IAED,mEAAmE;IACnE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGnD;IAED,8EAA8E;IAC9E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAO1C;IAED,0EAA0E;IAC1E,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAE5B;IAED;;;;;;;;;;OAUG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CASzC;IAED,mDAAmD;IACnD,IAAI,CAAC,SAAS,UAAQ,GAAG,IAAI,CAS5B;CA6DF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,UAAU,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,iBAAiB,GAC1B,uBAAuB,GAAG,SAAS,CAgCrC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { WatermarkedChange } from './change-streamer.ts';
|
|
3
|
-
export type CatchupPlan = {
|
|
4
|
-
readonly kind: 'range';
|
|
5
|
-
readonly minWatermark: string;
|
|
6
|
-
readonly headWatermark: string;
|
|
7
|
-
} | {
|
|
8
|
-
readonly kind: 'ahead';
|
|
9
|
-
readonly headWatermark: string;
|
|
10
|
-
} | {
|
|
11
|
-
readonly kind: 'too-old';
|
|
12
|
-
readonly minWatermark: string;
|
|
13
|
-
readonly headWatermark: string;
|
|
14
|
-
} | {
|
|
15
|
-
readonly kind: 'not-ready';
|
|
16
|
-
};
|
|
17
|
-
/**
|
|
18
|
-
* Seeks to the final position so validating a boundary does not scan every row
|
|
19
|
-
* of a large transaction. Exported so the focused query-plan test covers the
|
|
20
|
-
* production subquery.
|
|
21
|
-
*/
|
|
22
|
-
export declare const SQLITE_CHANGE_LOG_BOUNDARY_SQL = "\n SELECT\n \"precommit\" = @fromWatermark AND\n \"tag\" = 'commit' AS \"boundaryExists\"\n FROM \"_zero.changeLogStream\"\n WHERE \"watermark\" = @fromWatermark\n ORDER BY \"pos\" DESC\n LIMIT 1\n";
|
|
23
|
-
/**
|
|
24
|
-
* The log describes its own bounds; nothing here reads the replica.
|
|
25
|
-
* `max("watermark")` is the head because a transaction's rows commit atomically,
|
|
26
|
-
* so the log never ends mid-transaction.
|
|
27
|
-
*
|
|
28
|
-
* `min` and `max` are deliberately kept as *separate* scalar subqueries: SQLite
|
|
29
|
-
* applies its single-aggregate index optimization only when the aggregate is
|
|
30
|
-
* alone in its query, so `SELECT min(x), max(x) FROM t` degrades to a full scan
|
|
31
|
-
* while two scalar subqueries are two index seeks. The query-plan test pins
|
|
32
|
-
* this.
|
|
33
|
-
*
|
|
34
|
-
* Exported so that test can cover the production query.
|
|
35
|
-
*/
|
|
36
|
-
export declare const SQLITE_CHANGE_LOG_PLAN_SQL = "\n SELECT\n (SELECT max(\"watermark\") FROM \"_zero.changeLogStream\")\n AS \"headWatermark\",\n (SELECT min(\"watermark\") FROM \"_zero.changeLogStream\")\n AS \"minWatermark\",\n coalesce((\n SELECT\n \"precommit\" = @fromWatermark AND\n \"tag\" = 'commit' AS \"boundaryExists\"\n FROM \"_zero.changeLogStream\"\n WHERE \"watermark\" = @fromWatermark\n ORDER BY \"pos\" DESC\n LIMIT 1\n), 0) AS \"boundaryExists\"\n";
|
|
37
|
-
/** Exported so the focused query-plan test covers the production query. */
|
|
38
|
-
export declare const SQLITE_CHANGE_LOG_READ_BATCH_SQL = "\n SELECT\n \"watermark\",\n \"pos\",\n \"tag\",\n \"change\"\n FROM \"_zero.changeLogStream\"\n WHERE (\"watermark\", \"pos\") > (?, ?)\n AND \"watermark\" <= ?\n ORDER BY \"watermark\", \"pos\"\n LIMIT ?\n";
|
|
39
|
-
/**
|
|
40
|
-
* Reads the change log without retaining a SQLite snapshot while a consumer
|
|
41
|
-
* processes a batch.
|
|
42
|
-
*
|
|
43
|
-
* The log lives in its own database beside the replica
|
|
44
|
-
* (`changeLogFileName(replicaFile)`), which this reader opens read-only; it
|
|
45
|
-
* never opens the replica. The connection therefore keeps the journal mode
|
|
46
|
-
* configured by the change-log writer. Callers pin a head with {@link plan}
|
|
47
|
-
* before passing it to {@link read}.
|
|
48
|
-
*
|
|
49
|
-
* A change-streamer can start before the replicator has created the log, so the
|
|
50
|
-
* stream table may not exist yet. Statements are prepared on first use rather
|
|
51
|
-
* than in the constructor, and {@link plan} reports `not-ready` until they can
|
|
52
|
-
* be; a reader constructed too early becomes usable once the writer catches up.
|
|
53
|
-
*/
|
|
54
|
-
export declare class SQLiteChangeLogReader implements Disposable {
|
|
55
|
-
#private;
|
|
56
|
-
constructor(lc: LogContext, changeLogFile: string);
|
|
57
|
-
plan(fromWatermark: string): CatchupPlan;
|
|
58
|
-
read(fromWatermark: string, throughWatermark: string, batchSize: number, signal?: AbortSignal | undefined, maxRows?: number | undefined): AsyncIterable<readonly WatermarkedChange[]>;
|
|
59
|
-
close(): void;
|
|
60
|
-
[Symbol.dispose](): void;
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=sqlite-change-log-reader.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-change-log-reader.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/sqlite-change-log-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAMjD,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AAE5D,MAAM,MAAM,WAAW,GACnB;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GACD;IAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;CAAC,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GAKD;IAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAC,CAAC;AAqBjC;;;;GAIG;AACH,eAAO,MAAM,8BAA8B,uNAQ1C,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,0BAA0B,ucAOtC,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,gCAAgC,wOAW5C,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AACH,qBAAa,qBAAsB,YAAW,UAAU;;IAKtD,YAAY,EAAE,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAMhD;IAED,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAmBvC;IAEM,IAAI,CACT,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,EAChC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAC3B,aAAa,CAAC,SAAS,iBAAiB,EAAE,CAAC,CA2E7C;IAED,KAAK,IAAI,IAAI,CAMZ;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAEvB;CAqCF"}
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import type { LogContext } from '@rocicorp/logger';
|
|
2
|
-
import type { Database } from '../../../../zqlite/src/db.ts';
|
|
3
|
-
import type { ChangeStreamData } from '../change-source/protocol/current/downstream.ts';
|
|
4
|
-
import { type ChangeLogIdentity, type ChangeLogResumePoint } from '../replicator/change-log-db.ts';
|
|
5
|
-
import { type SQLiteChangeLogObservabilityState } from '../replicator/sqlite-change-log-observability.ts';
|
|
6
|
-
export type SQLiteChangeLogWriterOptions = {
|
|
7
|
-
/** The replica file the log is named after, i.e. `${replicaFile}-change-log`. */
|
|
8
|
-
replicaFile: string;
|
|
9
|
-
/** The replica whose contents this log belongs to. */
|
|
10
|
-
identity: ChangeLogIdentity;
|
|
11
|
-
/**
|
|
12
|
-
* Called after each transaction's log commit, with the log's new head. This
|
|
13
|
-
* is what releases the catchup barrier: after the writer moved in-process,
|
|
14
|
-
* the head advances here rather than at a subscriber's ACK.
|
|
15
|
-
*/
|
|
16
|
-
onCommit?: ((watermark: string) => void) | undefined;
|
|
17
|
-
/**
|
|
18
|
-
* Called when the writer disables itself and deletes the file. The reader is
|
|
19
|
-
* cached on the service, so a delete that leaves it open would leave an
|
|
20
|
-
* in-process reader serving an unlinked inode while every new open sees
|
|
21
|
-
* nothing.
|
|
22
|
-
*/
|
|
23
|
-
onDisabled?: (() => void) | undefined;
|
|
24
|
-
/** Called when reconciliation replaces the file, to close cached readers. */
|
|
25
|
-
onRebuilt?: (() => void) | undefined;
|
|
26
|
-
/** Overridable for tests. */
|
|
27
|
-
now?: (() => number) | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* Percentage of transactions that retain the rollout-only per-message
|
|
30
|
-
* timing and source-vs-stored hash validation. Defaults to 1.
|
|
31
|
-
*/
|
|
32
|
-
shadowValidationPercent?: number | undefined;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Appends the canonical change stream to the SQLite change log, from the
|
|
36
|
-
* change-streamer's own stream loop.
|
|
37
|
-
*
|
|
38
|
-
* ### Ordering
|
|
39
|
-
*
|
|
40
|
-
* The log's commit for a transaction precedes the forward of that transaction's
|
|
41
|
-
* `commit` message, and nothing `await`s in between. Everything that can
|
|
42
|
-
* advance the watermark the stream would resume from — the storer's Postgres
|
|
43
|
-
* commit, `lastWatermark`, the upstream ACK — runs strictly after it, so the
|
|
44
|
-
* log's head is always at or above the resume point. A *hole* is therefore
|
|
45
|
-
* unreachable at any crash timing, and a *phantom* is the normal state, which is
|
|
46
|
-
* what makes truncate-above the whole of reconciliation.
|
|
47
|
-
*
|
|
48
|
-
* ### Fail-soft
|
|
49
|
-
*
|
|
50
|
-
* The log is a catchup cache: nothing in it is not either already durable in the
|
|
51
|
-
* replica's litestream backup or re-derivable from the replication slot. A write
|
|
52
|
-
* failure must therefore not stop replication for the shard. Corruption is
|
|
53
|
-
* rebuilt once at open; any other write error — a full disk, an I/O error, a
|
|
54
|
-
* permissions problem — logs, disables the writer, deletes the file, closes the
|
|
55
|
-
* reader, and lets the stream continue. The cost is catchup reach, and reach is
|
|
56
|
-
* recoverable: `too-old` sends a subscriber to a restore.
|
|
57
|
-
*
|
|
58
|
-
* One carve-out keeps that from hiding the bug class this topology introduces. A
|
|
59
|
-
* missed truncate-above surfaces as `SQLITE_CONSTRAINT` on the writer's plain
|
|
60
|
-
* `INSERT`, which is "any write error other than corruption" and would be
|
|
61
|
-
* absorbed quietly. It is counted as an invariant failure and alerted on before
|
|
62
|
-
* failing soft.
|
|
63
|
-
*/
|
|
64
|
-
export declare class SQLiteChangeLogWriter {
|
|
65
|
-
#private;
|
|
66
|
-
constructor(lc: LogContext, opts: SQLiteChangeLogWriterOptions);
|
|
67
|
-
/** False once the writer has failed soft, or after {@link close}. */
|
|
68
|
-
get enabled(): boolean;
|
|
69
|
-
/**
|
|
70
|
-
* The writer's own connection, which is the one purge runs on (§3.3): one
|
|
71
|
-
* process appends *and* deletes, on one handle, with no second writable
|
|
72
|
-
* connection and no cross-process barrier. `undefined` until the stream
|
|
73
|
-
* loop's first reconcile creates the log, and again once the writer has
|
|
74
|
-
* failed soft and deleted the file — both of which a purge cycle treats as
|
|
75
|
-
* "skip", not as an error.
|
|
76
|
-
*/
|
|
77
|
-
get connection(): Database | undefined;
|
|
78
|
-
/** Exposed for tests and for the integration assertions on the metrics. */
|
|
79
|
-
state(): SQLiteChangeLogObservabilityState | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Opens the log if necessary and reconciles it with the Postgres resume
|
|
82
|
-
* point. Returns the resume point stored in the log.
|
|
83
|
-
*
|
|
84
|
-
* Returns `undefined` when the writer is disabled. The caller must then use
|
|
85
|
-
* another source.
|
|
86
|
-
*
|
|
87
|
-
* This runs for every connection because Postgres supplies a new resume point
|
|
88
|
-
* after each reconnect. The log can contain transactions above that point.
|
|
89
|
-
* Reconciliation removes them before Postgres sends them again.
|
|
90
|
-
*
|
|
91
|
-
* `resumeFrom` includes cookies because the cookies must match the resume
|
|
92
|
-
* watermark.
|
|
93
|
-
*/
|
|
94
|
-
reconcile(resumeFrom: ChangeLogResumePoint): ChangeLogResumePoint | undefined;
|
|
95
|
-
/**
|
|
96
|
-
* Reconciles the log without a Postgres resume point.
|
|
97
|
-
*
|
|
98
|
-
* A valid log uses its own head and cookies. A new or invalid log uses the
|
|
99
|
-
* replica values returned by `seed`.
|
|
100
|
-
*/
|
|
101
|
-
reconcileFromLog(seed: () => ChangeLogResumePoint): ChangeLogResumePoint | undefined;
|
|
102
|
-
/**
|
|
103
|
-
* Writes one stream message, committing at transaction boundaries. Never
|
|
104
|
-
* throws: a write failure disables the writer instead of failing the stream.
|
|
105
|
-
*/
|
|
106
|
-
write(change: ChangeStreamData, json: string, storedChange?: string): void;
|
|
107
|
-
/**
|
|
108
|
-
* Discards the open transaction, if any. Called when the change stream is
|
|
109
|
-
* interrupted mid-transaction.
|
|
110
|
-
*/
|
|
111
|
-
abort(): void;
|
|
112
|
-
close(): void;
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=sqlite-change-log-writer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite-change-log-writer.d.ts","sourceRoot":"","sources":["../../../../../../zero-cache/src/services/change-streamer/sqlite-change-log-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,kBAAkB,CAAC;AAKjD,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAM3D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,iDAAiD,CAAC;AAKtF,OAAO,EAUL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAML,KAAK,iCAAiC,EACvC,MAAM,kDAAkD,CAAC;AAG1D,MAAM,MAAM,4BAA4B,GAAG;IACzC,iFAAiF;IACjF,WAAW,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrD;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACtC,6EAA6E;IAC7E,SAAS,CAAC,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IACrC,6BAA6B;IAC7B,GAAG,CAAC,EAAE,CAAC,MAAM,MAAM,CAAC,GAAG,SAAS,CAAC;IACjC;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9C,CAAC;AAIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,qBAAa,qBAAqB;;IAYhC,YAAY,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,4BAA4B,EAY7D;IAED,qEAAqE;IACrE,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;;;;;OAOG;IACH,IAAI,UAAU,IAAI,QAAQ,GAAG,SAAS,CAErC;IAED,2EAA2E;IAC3E,KAAK,IAAI,iCAAiC,GAAG,SAAS,CAErD;IAED;;;;;;;;;;;;;OAaG;IACH,SAAS,CACP,UAAU,EAAE,oBAAoB,GAC/B,oBAAoB,GAAG,SAAS,CAElC;IAED;;;;;OAKG;IACH,gBAAgB,CACd,IAAI,EAAE,MAAM,oBAAoB,GAC/B,oBAAoB,GAAG,SAAS,CAElC;IA2GD;;;OAGG;IACH,KAAK,CACH,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,SAA8C,GACzD,IAAI,CA4FN;IAeD;;;OAGG;IACH,KAAK,IAAI,IAAI,CAYZ;IAED,KAAK,IAAI,IAAI,CAYZ;CA6BF"}
|