Performance
- 8% performance improvement in the connection pooler by optimizing our use of Tokio futures @ygxio
- Additional performance improvements by using Tokio futures correctly @sgrif
- Remove several unnecessary memory allocations @ygxio
Bugs
- Don't validate replica identity during the schema sync & data sync phases of resharding if caller does not intend to use logical replication to sync real-time data @bhargavtheertham-cb
- Extended protocol pipeline messages were incorrectly ordered in cross-shard queries @meskill
- Schema sharding shouldn't trigger the incomplete omnisharded writes check @jkaczman
DISTINCTstate was not reset between cross-shard queries in the same transaction @levkk
Features
- Make OpenMetrics host configurable with
openmetrics_host@murex971 - Block direct-to-shard queries when
SET pgdog.sharding_keydoesn't match a mapped value in list-based and range-based sharding configuration @jkaczman - Setting
read_onlyon a user inusers.tomlwill direct that user's traffic to replicas, if configured @jkaczman - Partial support for
PREPAREandEXECUTE(including sharding); the prepared statement can be only executed withEXECUTEat the moment and cannot be executed using the extended protocol @levkk - Wait for health check to pass before allowing traffic on newly added databases in
pgdog.toml@sgrif - Optional FIPS mode (compile time flag:
cargo build -p pgdog --release --features fips)
Testing
- Basic Haskell acceptance tests @levkk
- Ensure we only generate a node id when
NODE_IDis set @meskill
Code quality
- Remove library target and only build binary target, allowing us to more easily detect dead code @sgrif
- Remove a bunch of dead code @sgrif
- Cleanup multi-shard and row decoder code @levkk
Full Changelog: v0.1.53...v0.1.54