Announcing v1
After over a year of development, we are proud to announce that we made it to v1! PgCat is stable, running in production and serving hundreds of thousands of queries.
Many thanks and congratulations to our amazing contributors for this effort. A special thank you to @drdrsh for pioneering PgCat at Instacart and implementing many critical features and bug fixes.
What's Changed
- A bit faster get_pool by @drdrsh in #187
- Use Jemalloc by @drdrsh in #189
- Don't send discard all when state is changed in transaction by @zainkabani in #186
- Re-enable query parser and parse multiple statements by @levkk in #191
- Fix docker-compose by @levkk in #193
- Automatic sharding: part one of many by @levkk in #194
- Dont change shard unless you know by @levkk in #195
- Add dependabot for keeping dependencies up-to-date by @chhetripradeep in #196
- chore(deps): bump regex from 1.5.5 to 1.6.0 by @dependabot in #197
- chore(deps): bump serde_derive from 1.0.136 to 1.0.147 by @dependabot in #198
- chore(deps): bump sha2 from 0.10.2 to 0.10.5 by @dependabot in #199
- chore(deps): bump async-trait from 0.1.52 to 0.1.58 by @dependabot in #200
- chore(deps): bump bytes from 1.1.0 to 1.2.1 by @dependabot in #206
- chore(deps): bump rustls-pemfile from 1.0.0 to 1.0.1 by @dependabot in #205
- chore(deps): bump base64 from 0.13.0 to 0.13.1 by @dependabot in #203
- chore(deps): bump arc-swap from 1.5.0 to 1.5.1 by @dependabot in #202
- chore(deps): bump rand from 0.8.4 to 0.8.5 by @dependabot in #201
- chore(deps): bump tokio from 1.16.1 to 1.19.2 by @dependabot in #210
- chore(deps): bump once_cell from 1.9.0 to 1.16.0 by @dependabot in #209
- chore(deps): bump log from 0.4.14 to 0.4.17 by @dependabot in #216
- chore(deps): bump serde from 1.0.136 to 1.0.147 by @dependabot in #215
- chore(deps): bump md-5 from 0.10.0 to 0.10.4 by @dependabot in #214
- chore(deps): bump sha2 from 0.10.5 to 0.10.6 by @dependabot in #213
- chore(deps): bump env_logger from 0.9.0 to 0.9.1 by @dependabot in #212
- chore(deps): bump chrono from 0.4.19 to 0.4.22 by @dependabot in #211
- chore(deps): bump toml from 0.5.8 to 0.5.9 by @dependabot in #207
- Fix for warnings about avg_errors not implemented by @chhetripradeep in #220
- Fix dependabot labels for pull-requests by @chhetripradeep in #219
- chore(deps): bump jemallocator from 0.3.2 to 0.5.0 by @dependabot in #218
- chore(deps): bump md-5 from 0.10.4 to 0.10.5 by @dependabot in #217
- chore(deps): bump num_cpus from 1.13.1 to 1.14.0 by @dependabot in #221
- chore(deps): bump regex from 1.6.0 to 1.7.0 by @dependabot in #224
- chore(deps): bump env_logger from 0.9.1 to 0.9.3 by @dependabot in #223
- chore(deps): bump hyper from 0.14.20 to 0.14.23 by @dependabot in #222
- chore: make clippy lint happy by @Cluas in #225
- chore(deps): bump chrono from 0.4.22 to 0.4.23 by @dependabot in #230
- chore(deps): bump sqlparser from 0.26.0 to 0.27.0 by @dependabot in #229
- Default to using username when database isn't present on startup by @zainkabani in #234
- Adds health check setting to pool and avoids get_config in hotpath by @zainkabani in #235
- Adds configuration for logging connections and removes get_config from entrypoint by @zainkabani in #236
- Move ClientBadStartup error log to debug by @zainkabani in #237
- Move get_config in startup to admin branch to scope down usage by @zainkabani in #238
- Adds details to errors and fixes error propagation bug by @zainkabani in #239
- chore(deps): bump bytes from 1.2.1 to 1.3.0 by @dependabot in #240
- chore(deps): bump env_logger from 0.9.3 to 0.10.0 by @dependabot in #241
- chore(deps): bump serde from 1.0.147 to 1.0.148 by @dependabot in #242
- chore(deps): bump serde_derive from 1.0.147 to 1.0.148 by @dependabot in #243
- chore(deps): bump sha-1 from 0.10.0 to 0.10.1 by @dependabot in #244
- chore(deps): bump async-trait from 0.1.58 to 0.1.59 by @dependabot in #245
- chore(deps): bump sqlparser from 0.27.0 to 0.28.0 by @dependabot in #248
- chore(deps): bump serde_derive from 1.0.148 to 1.0.149 by @dependabot in #247
- chore(deps): bump serde from 1.0.148 to 1.0.149 by @dependabot in #246
- chore(deps): bump base64 from 0.13.1 to 0.20.0 by @dependabot in #250
- chore(deps): bump serde_derive from 1.0.149 to 1.0.150 by @dependabot in #251
- chore(deps): bump serde from 1.0.149 to 1.0.150 by @dependabot in #252
- chore(deps): bump toml from 0.5.9 to 0.5.10 by @dependabot in #256
- Allow setting
idle_timeout
for server connections. by @magec in #257 - Allow setting the number of runtime workers to be used. by @magec in #258
- chore(deps): bump serde from 1.0.150 to 1.0.151 by @dependabot in #260
- chore(deps): bump async-trait from 0.1.59 to 0.1.60 by @dependabot in #259
- chore(deps): bump serde_derive from 1.0.150 to 1.0.151 by @dependabot in #261
- chore(deps): bump num_cpus from 1.14.0 to 1.15.0 by @dependabot in #264
- Buffer copy data messages by @zainkabani in #265
- Remove logo, pending new logo by @levkk in #267
- Fix typo in README by @eoinkelly in #272
- chore(deps): bump arc-swap from 1.5.1 to 1.6.0 by @dependabot in #273
- Fix tests (use sudo) by @levkk in #276
- chore(deps): bump sqlparser from 0.28.0 to 0.30.0 by @dependabot in #275
- chore(deps): bump once_cell from 1.16.0 to 1.17.0 by @dependabot in #270
- chore(deps): bump serde_derive from 1.0.151 to 1.0.152 by @dependabot in #269
- chore(deps): bump serde from 1.0.151 to 1.0.152 by @dependabot in #268
- chore(deps): bump async-trait from 0.1.60 to 0.1.61 by @dependabot in #278
- chore(deps): bump base64 from 0.20.0 to 0.21.0 by @dependabot in #279
- chore(deps): bump regex from 1.7.0 to 1.7.1 by @dependabot in #280
- Update cargo lock file by @zainkabani in #281
- Write messages directly onto message buffer instead of allocating on own buffer by @zainkabani in #283
- Introduce least-outstanding-connections load balancing by @drdrsh in #282
- Buffer client CopyData messages by @zainkabani in #284
- chore(deps): bump tokio from 1.24.1 to 1.24.2 by @dependabot in #286
- chore(deps): bump activerecord from 7.0.3.1 to 7.0.4.1 in /tests/ruby by @dependabot in #287
- Log error messages for network failures by @drdrsh in #289
- Removes message cloning operation required for query router by @zainkabani in #285
- Add more metrics to prometheus endpoint by @magec in #263
- Refactors is_banned logic and forces health check on unban by @zainkabani in #288
- chore(deps): bump toml from 0.5.10 to 0.5.11 by @dependabot in #290
- chore(deps): bump async-trait from 0.1.61 to 0.1.63 by @dependabot in #291
- chore(deps): bump toml from 0.5.11 to 0.6.0 by @dependabot in #292
- Fix formatting by @levkk in #299
- Startup improvements & PAUSE/RESUME by @levkk in #300
- Add initial Windows support, ref #298 by @Kurtsley in #301
- chore(deps): bump tokio from 1.24.2 to 1.25.0 by @dependabot in #304
- chore(deps): bump toml from 0.6.0 to 0.7.0 by @dependabot in #305
- chore(deps): bump bytes from 1.3.0 to 1.4.0 by @dependabot in #310
- chore(deps): bump hyper from 0.14.23 to 0.14.24 by @dependabot in #311
- chore(deps): bump toml from 0.7.0 to 0.7.1 by @dependabot in #309
- chore(deps): bump futures from 0.3.25 to 0.3.26 by @dependabot in #307
- chore(deps): bump async-trait from 0.1.63 to 0.1.64 by @dependabot in #308
- Fix logging mistakes by @zainkabani in #313
- Introduce tcp_keepalives to PgCat by @drdrsh in #315
- Fix code coverage + less flakiness by @drdrsh in #318
- Support EC and PKCS8 private keys by @tommy351 in #316
- Fix deprecation warnings by @drdrsh in #319
- chore(deps): bump once_cell from 1.17.0 to 1.17.1 by @dependabot in #320
- Allow shard setting with comments by @jmeagher in #293
- Log worker thread count by @zainkabani in #322
- Bake toxiproxy in CI image by @drdrsh in #323
- Build Dockerfile.ci using Github workflows by @drdrsh in #325
- Move toxiproxy.deb to /tmp by @drdrsh in #326
- Add psmisc to CI image by @drdrsh in #327
- More Test coverage + fix some code coverage bugs by @drdrsh in #321
- More coverage cleanup by @drdrsh in #328
- implement show users by @dat2 in #329
- Fix Back-and-forth RELOAD Bug by @drdrsh in #330
- Adds SHUTDOWN command as alternate option to sending SIGINT by @zainkabani in #331
- Allow sending logs to stdout by using STDOUT_LOG env var by @magec in #334
- chore(deps): bump sqlparser from 0.30.0 to 0.31.0 by @dependabot in #335
- chore(deps): bump tokio from 1.25.0 to 1.26.0 by @dependabot in #336
- Automatic sharding for SELECT v2 by @levkk in #337
- Dev environment by @magec in #338
- Add Manual host banning to PgCat by @drdrsh in #340
- chore(deps): bump async-trait from 0.1.64 to 0.1.66 by @dependabot in #342
- chore(deps): bump sqlparser from 0.31.0 to 0.32.0 by @dependabot in #343
- chore(deps): bump serde from 1.0.152 to 1.0.154 by @dependabot in #348
- chore(deps): bump serde_derive from 1.0.152 to 1.0.154 by @dependabot in #347
- PgCat Query Mirroring by @drdrsh in #341
- Reorder fields in Shard to avoid ValueAfterTable errors by @drdrsh in #349
- Extended query protocol sharding by @levkk in #339
- Build on 1.67 by @levkk in #350
- Improve Config Documentation by @drdrsh in #351
- Update README.md by @drdrsh in #352
- Update CONFIG.md by @drdrsh in #353
- Reduce memory and CPU footprint of mirroring by @drdrsh in #369
- github/workflows: adds automated image building by @Fraser-Isbester in #370
- Check Slice bounds in read_message to avoid panics by @drdrsh in #371
- Add idle client in transaction configuration by @zainkabani in #380
- V1 by @levkk in #383
- Contributors by @levkk in #384
New Contributors
- @Cluas made their first contribution in #225
- @magec made their first contribution in #257
- @eoinkelly made their first contribution in #272
- @Kurtsley made their first contribution in #301
- @tommy351 made their first contribution in #316
- @jmeagher made their first contribution in #293
- @Fraser-Isbester made their first contribution in #370
Full Changelog: v0.3.0...v1.0.0