Features 🚀
- Pipelining support in #1207
- Handle password changes during client authentication in #1213
- Startup options validation & conversion in #1201
- Wait for a free client slot before rejecting with EMAXCONN in #1179
- Close idle backend connections quickly while draining a pool in #1226
- Add server_reset_query in #1238
- Use cleartext password authentication for TLS clients in #960, #1224, #1032
- Serve a separate set of certificates to clients connecting through specific hostnames in #1244
- List tenant's pools in #1237
- Detect session-leak in transaction mode (must be enabled via the
txn_mode_leak_actiontenant setting) in #1113 - Make logger burst-limit configurable via env vars in #1214
- Add log_connections tenant setting in #1236
- Support custom SCRAM iteration counts up to 32768 in #1222
- Improve pool draining in #1204, #1215, #1219
- Stop accepting new pools when node starts shutting down in #1203
- Add pool rebalancing in #1218
Observability 🔭
- Improve app_name handling, and add it to connection metrics (behind the
app_name_metricfeature flag) in #891 - Expose disk space usage via os_mon in #1070
- Add metric for AMI version in #1077
- Add TCP active/passive opens metrics via procfs in #1161
- Add node IPv6 address metric via getifaddrs in #1146
- Add scheduler utilization metrics in #1200
- Count log lines and estimate logger burst-limit drops via a counter metric in #1220
- Add tls logger metadata to client connection logs in #1227
- Include db_host in DbHandler log metadata in #1228
- Add client error counter tagged by error code and mode in #1230
- Add cgroup v2 memory metrics in #1233
- Add connection request duration metric tagged by outcome and fault in #1241
- Always attach bad payload to startup message error log in #1075
- Add project metadata to syn conflict resolution logs in #1139
Fixes 🐛
- Auto-detect ipv6 from db hostname in #1027
- Accept JSON boolean in toggle_tenant_ban to fix 500 on ban PATCH in #1050
- Wire in client_idle_timeout in #1068
- Handle client socket errors on DbHandler, hold check-in till flush complete in #1060
- Wait for all DB replies before releasing backend in #1079
- Set SynHandler via config instead of in runtime in #1095
- Forward client_ip internal pooling in #1186
- Remove stale Sync handler in #1176
- Replay parse before named statement describe in #1185
- Preserve portal name when translating Bind statement names in #1207
- Reconcile prepared statements from 42P05 and 26000 errors in #1207
- Hold backend until Sync is received in #1205
- Decode password messages according to the requested auth type in #1211
- Client disconnecting before the allow_list check no longer crashes the handler in #1231
- Clear the secrets for validation on a pool shutdown in #1208
- Only count client-caused auth failures towards the auth_error CB in #1240
- Always use ssl for upstream with jit in #1038
- Use nil instead of "" for missing app version tags in #1138
- One pool disconnecting no longer wipes metrics for a tenant's other pools in #1221
- Drop tenant label from state duration metric in #1168
Performance ⚡
- Enable SO_REUSEPORT for Ranch listeners in #1155
- Group tenant metrics in a single pass in #1199
- Remove min heap size in TLS processes in #1223
- Optional LRU eviction for backend prepared statements (behind the
backend_prepared_statements_storagefeature flag) in #980 - Delay error responses to throttle retrying clients in #1229
New Contributors 👋
- @MorganaFuture made their first contribution in #977
- @CarelFdeWaal made their first contribution in #1050
- @abidedavana made their first contribution in #1074
- @avallete made their first contribution in #1169
- @dhruvxvaishnav made their first contribution in #1185
- @kacper-supabase made their first contribution in #1237