v2.9.0 Changelog: * 2024-03-15 winery tests: introduce USE_CEPH environment variable * 2024-03-07 winery: try to avoid some race conditions in RO shard mapping * 2024-02-29 winery benchmark: add an explicit Stats worker * 2024-03-06 winery benchmark: run a single rw shard cleaner * 2024-03-05 winery benchmark: don't wait for shards indefinitely in packer process * 2024-03-01 winery benchmark: make object fetching less expensive * 2024-02-29 winery benchmark: introduce time_remaining argument for work * 2024-03-05 winery: decrease verbosity of rbd commands * 2024-03-05 winery: increase verbosity of remapping a shard read-write * 2024-03-05 winery: bump all copyright years to 2024 * 2024-03-07 winery: manage the lifecycle of ConnectionPools better * 2024-03-05 winery: Only run database administration operations once per process * 2024-03-05 winery: Add postgresql connection pooling * 2024-03-05 winery: remove confusing cursor passing logic in object deletion * 2024-03-04 winery: add support for the application_name PostgreSQL setting * 2024-03-04 winery: More explicit uninit operations for shards and throttler * 2024-03-01 winery: add index for per-shard statistics * 2024-03-01 winery testing: rename default erasure code profile * 2024-03-01 winery testing: only warn on EC profile mismatch * 2024-03-01 winery: use COPY to do bulk data reads * 2024-03-01 winery: migrate to psycopg3 * 2024-02-29 winery stats: use time.time instead of monotonic for line headers * 2024-02-29 winery stats: ensure stats output csv can be reused if the pid is reused * 2024-02-29 winery: Disable autovacuum on shard object tables * 2024-03-15 tests: Migrate away from unittest to full pytest *