Skip to content

Releases: postgresml/pgcat

pgcat-0.1.0

22 Feb 17:27
358724f
Compare
Choose a tag to compare

A Helm chart for PgCat a PostgreSQL pooler and proxy (like PgBouncer) with support for sharding, load balancing, failover and mirroring.

v1.1.1

02 Aug 15:30
Compare
Choose a tag to compare

What's Changed

  • Fixed performance regression in prepared statements issuing a Flush to Postgres on every iteration of the cache maintenance loop @levkk
  • Restore the ability to filter spammy log messages by @Spindel in #530
  • Fix typo in the config documentation by @bpaquet in #532

New Contributors

Full Changelog: v1.1.0...v1.1.1

v1.1.0

25 Jul 17:34
4cf54a6
Compare
Choose a tag to compare

Big Features

  • Support for prepared statements
  • Auth passthrough for MD5 (Postgres <14)
  • Support for server TLS connections

Improvements

  • Stats use atomics instead of channels, much faster and more reliable.
  • Keep-alives for client connections help with reliability
  • Clients and servers don't have to have the same password to connect to Postgres, allowing for password rotations on the server
  • Can deploy pooler without connecting to servers
  • Better logging using tracing
  • LIFO and FIFO options for pool connection handling
  • Started the plugins interface with a few example applications
  • Stats using atomics instead of channels for better performance and reliability
  • Many bug fixes and other improvements

Changelog

New Contributors

Full Changelog: v1.0.0...v1.1.0

v1 - Stable

25 Mar 00:16
0d5feac
Compare
Choose a tag to compare

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

Read more

Lots of Good Stuff

08 Oct 02:00
3d33ccf
Compare
Choose a tag to compare

Summary

Lots of bug fixes and optimizations.

What's Changed

  • Live reloading entire config and bug fixes by @levkk in #84
  • Fix panic & query router bug by @levkk in #85
  • Automatically reload config every seconds (disabled by default) by @levkk in #86
  • Fix stats dymanic reload by @levkk in #87
  • Support for TLS by @levkk in #91
  • Bump activerecord from 7.0.2.2 to 7.0.3.1 in /tests/ruby by @dependabot in #94
  • Add support for multi-database / multi-user pools by @drdrsh in #96
  • Minor fix for some stats by @chhetripradeep in #97
  • Add Serialize trait to configs by @drdrsh in #99
  • Slightly more light weight health check by @drdrsh in #100
  • Avoid ValueAfterTable when serializing configs by @drdrsh in #101
  • Add test for config Serializer by @drdrsh in #102
  • Send proper server parameters to clients using admin db by @drdrsh in #103
  • Sync pgcat config for docker-compose by @chhetripradeep in #104
  • Fix Python tests and remove CircleCI-specific path by @drdrsh in #106
  • Add user to SHOW STATS query by @drdrsh in #108
  • Report banned addresses as disabled by @drdrsh in #111
  • Generate test coverage report in CircleCI by @drdrsh in #110
  • Fix local dev by @drdrsh in #112
  • Implementing graceful shutdown by @zainkabani in #105
  • Prevent clients from sticking to old pools after config update by @drdrsh in #113
  • create a prometheus exporter on a standard http port by @dat2 in #107
  • Validates pgcat is closed after shutdown python tests by @zainkabani in #116
  • fix docker compose port allocation for local dev by @dat2 in #117
  • Health check delay by @zainkabani in #118
  • Speed up CI a bit by @levkk in #119
  • Fix debug log by @levkk in #120
  • Make prometheus port configurable by @chhetripradeep in #121
  • Statement timeout + replica imbalance by @levkk in #122
  • Add cl_idle to SHOW POOLS by @drdrsh in #124
  • Fix missing statistics by @levkk in #125
  • Minor cleanup in admin command by @chhetripradeep in #126
  • Add pool name and username to address object by @drdrsh in #128
  • Minor Refactoring of re-used code and server stat reporting by @zainkabani in #129
  • Random instance selection by @drdrsh in #136
  • Random lb by @levkk in #138
  • Fix incorrect routing for replicas by @levkk in #139
  • Fix too many idle servers by @levkk in #140
  • Really fix idle servers by @levkk in #141
  • Avoid sending Z packet in the middle of extended protocol packet sequence if we fail to get connection form pool by @drdrsh in #137
  • Graceful shutdown and refactor by @levkk in #144
  • Exit with failure codes if configs are bad by @drdrsh in #146
  • Move autoreloader to own tokio task by @zainkabani in #148
  • Ruby integration tests by @drdrsh in #147
  • Allow running integration tests with coverage locally by @drdrsh in #151
  • Log Address information in connection create/drop by @drdrsh in #154
  • Better handling extended protocol messages in the event of busy pool by @drdrsh in #155
  • Send DISCARD ALL even if client is not in transaction by @drdrsh in #152
  • Patch graceful shutdown bug by @zain-kabani in #157
  • Main Thread Panic when swarmed with clients by @drdrsh in #158
  • Adds microsecond logging and also reformats duration to include milliseconds by @zainkabani in #156
  • Avoid reporting ProtocolSyncError when admin session disconnects by @drdrsh in #160
  • Better logging for failure to get connection from pool by @drdrsh in #161
  • Send signal even if process is gone by @levkk in #162
  • Clean connection state up after protocol named prepared statement by @drdrsh in #163
  • Add Discord link by @levkk in #164
  • Add SHOW CLIENTS / SHOW SERVERS + Stats refactor and tests by @drdrsh in #159
  • Report Query times by @drdrsh in #166
  • Export pgcat objects in lib by @zainkabani in #169
  • Update to latest library versions by @zainkabani in #170
  • Minor refactor for configs by @zainkabani in #172
  • Add defaults for configs by @zainkabani in #174
  • Log failed client logins by @drdrsh in #173
  • Don't drop connections if DB hasn't changed by @levkk in #175
  • Fix the pool fix by @levkk in #176
  • Set client state to idle after error by @drdrsh in #179
  • Change sharding config to enum and move validation of configs into public functions by @zainkabani in #178
  • Replace a few types with more developer-friendly names by @levkk in #182
  • Fix maxwait metric by @drdrsh in #183

New Contributors

Full Changelog: v0.2.1-beta1...v0.3.0

Client MD5 authentication

20 Jun 13:37
Compare
Choose a tag to compare

Clients are now required to authenticate with MD5.

Scram kitties, scram!

19 Jun 01:38
d412238
Compare
Choose a tag to compare

Implemented SCRAM-SHA-256 authentication made compulsory in Postgres 14. This is for PgCat --> server authentication only.

Cat shower

21 May 06:31
61db13f
Compare
Choose a tag to compare

Plugged a memory leak in client -> server mapping used for query cancellation that happened with clients that disconnected mid-transaction.

Cat on wheels

10 May 07:08
ccbca66
Compare
Choose a tag to compare

Fix for rolling back (resetting) servers that were left idle in transaction by clients that disconnected mid-transaction.

Ready for meowtime

08 Mar 07:44
341ebf4
Compare
Choose a tag to compare

This is a beta release. The feature set is mature enough that it can be used in low risk environments, dev, staging, pre-prod and low traffic production.

The admin database supports monitoring with Datadog.