Mostafa
750146e759
Verify ownership
2024-11-11 09:16:15 -06:00
Mostafa
7f94e62d06
Initial gh-pages commit ( #860 )
2024-11-11 08:57:18 -06:00
drdrsh
c7a8434374
Update index.yaml
...
Signed-off-by: drdrsh <drdrsh@users.noreply.github.com >
2024-11-08 12:07:27 +00:00
drdrsh
f21098fd99
Update index.yaml
...
Signed-off-by: drdrsh <drdrsh@users.noreply.github.com >
2024-11-02 23:05:55 +00:00
drdrsh
b483f37ea2
Update index.yaml
...
Signed-off-by: drdrsh <drdrsh@users.noreply.github.com >
2024-11-02 16:55:33 +00:00
Nicolas Vanelslande
a68071dd28
Bump bb8 from 0.8.1 to 0.8.6 ( #709 )
...
* Update bb8 to 0.8.6
To get https://github.com/djc/bb8/pull/186 and https://github.com/djc/bb8/pull/189
which fix potential deadlocks (https://github.com/djc/bb8/issues/154 ).
Also, this (https://github.com/djc/bb8/pull/225 ) was needed to prevent a connection
leak which was conveniently spotted in our integration tests.
* Ignore ./.bundle (created by dev console)
---------
Co-authored-by: Jose Fernandez (magec) <joseferper@gmail.com >
2024-10-28 06:49:36 -05:00
Mostafa
c27d801abf
Rename a couple of variables ( #839 )
2024-10-23 06:38:07 -05:00
Javier Goday
186e72298f
#829 : read/write splitting on CTE mutable statements ( #835 )
2024-10-23 06:20:04 -05:00
Sebastian Serth
3935366d86
End Prometheus stats with a new line separator ( #826 )
...
End prometheus stats with a new line separator
According to the [OpenMetrics specification](https://github.com/OpenObservability/OpenMetrics/blob/main/specification/OpenMetrics.md#overall-structure ), each line MUST end with `\n`. Previously, the last line was not ending with `\n`, so that strict parsers had issues reading the Prometheus stats.
2024-09-22 17:14:04 -05:00
Sean McGivern
b575935b1d
Improve documentation for connect_timeout and add min_pool_size ( #822 )
...
Currently, `connect_timeout` sounds like it should be for connections to
the Postgres server. It's actually used for obtaining a connection from
the pool.
2024-09-18 06:56:17 -05:00
Shijun Wang
efbab1c333
Helm chart improvements including allowing user password to be pulled from K8s secret ( #753 )
...
* Make user min_pool_size configurable
* Set user server_lifetime only if specified
* Increment chart version
* Use default instea of or
* Allow enabling server_tls
* statement_timeout default value
* Allow pulling password from existing secret
---------
Co-authored-by: Mostafa Abdelraouf <mostafa.mohmmed@gmail.com >
2024-09-14 09:57:17 -05:00
Mostafa Abdelraouf
9f12d7958e
Fix Ruby tests ( #819 )
...
Build is failing with this error
Downloading activerecord-3.2.14 revealed dependencies not in the API or the
lockfile (activesupport (= 3.2.14), activemodel (= 3.2.14), arel (~> 3.0.2),
tzinfo (~> 0.3.29)).
Either installing with `--full-index` or running `bundle update activerecord`
should fix the problem.
After ActiveSupport was updated.
This PR fixes that
2024-09-13 20:02:38 -05:00
dependabot[bot]
e6634ef461
chore(deps): bump activesupport from 7.0.4.1 to 7.0.7.1 in /tests/ruby ( #804 )
...
Bumps [activesupport](https://github.com/rails/rails ) from 7.0.4.1 to 7.0.7.1.
- [Release notes](https://github.com/rails/rails/releases )
- [Changelog](https://github.com/rails/rails/blob/v7.2.1/activesupport/CHANGELOG.md )
- [Commits](https://github.com/rails/rails/compare/v7.0.4.1...v7.0.7.1 )
---
updated-dependencies:
- dependency-name: activesupport
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 19:43:26 -05:00
dependabot[bot]
dab2e58647
chore(deps): bump helm/chart-releaser-action from 1.5.0 to 1.6.0 ( #812 )
...
Bumps [helm/chart-releaser-action](https://github.com/helm/chart-releaser-action ) from 1.5.0 to 1.6.0.
- [Release notes](https://github.com/helm/chart-releaser-action/releases )
- [Commits](be16258da8...a917fd15b2 )
---
updated-dependencies:
- dependency-name: helm/chart-releaser-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 19:41:25 -05:00
dependabot[bot]
4aaa4378cf
chore(deps): bump rexml from 3.2.8 to 3.3.6 in /tests/ruby ( #803 )
...
Bumps [rexml](https://github.com/ruby/rexml ) from 3.2.8 to 3.3.6.
- [Release notes](https://github.com/ruby/rexml/releases )
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md )
- [Commits](https://github.com/ruby/rexml/compare/v3.2.8...v3.3.6 )
---
updated-dependencies:
- dependency-name: rexml
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-13 19:19:30 -05:00
Andrew Jackson
670311daf9
Implement Trust Authentication ( #805 )
...
* Implement Trust Authentication
* Remove remaining LDAP stuff
* Reverted LDAP changes, Cleaned up tests
---------
Co-authored-by: Andrew Jackson <andrewjackson2988@gmail.com >
Co-authored-by: CommanderKeynes <andrewjackson947@gmail.coma >
2024-09-10 09:29:45 -05:00
dependabot[bot]
b9ec7f8036
chore(deps): bump actions/setup-python from 4.1.0 to 5.1.0 ( #715 )
...
Bumps [actions/setup-python](https://github.com/actions/setup-python ) from 4.1.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases )
- [Commits](https://github.com/actions/setup-python/compare/v4.1.0...v5.1.0 )
---
updated-dependencies:
- dependency-name: actions/setup-python
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 12:21:21 -05:00
dependabot[bot]
d91d23848b
chore(deps): bump helm/kind-action from 1.7.0 to 1.10.0 ( #732 )
...
Bumps [helm/kind-action](https://github.com/helm/kind-action ) from 1.7.0 to 1.10.0.
- [Release notes](https://github.com/helm/kind-action/releases )
- [Commits](https://github.com/helm/kind-action/compare/v1.7.0...v1.10.0 )
---
updated-dependencies:
- dependency-name: helm/kind-action
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 12:20:38 -05:00
dependabot[bot]
bbbc01a467
chore(deps): bump rexml from 3.2.5 to 3.2.8 in /tests/ruby ( #743 )
...
Bumps [rexml](https://github.com/ruby/rexml ) from 3.2.5 to 3.2.8.
- [Release notes](https://github.com/ruby/rexml/releases )
- [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md )
- [Commits](https://github.com/ruby/rexml/compare/v3.2.5...v3.2.8 )
---
updated-dependencies:
- dependency-name: rexml
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-07 12:20:01 -05:00
Sebastian Serth
9bb71ede9d
Automatically build deb package on a new version tag ( #801 )
...
In #796 , I noticed that the deb package was not build since an automation was missing.
With this PR, I add the missing automation.
I tested the workflow in my repo...
when starting the workflow manually: https://github.com/MrSerth/pgcat/actions/runs/10737879151/job/29780286094
when drafting a new release: https://github.com/MrSerth/pgcat/actions/runs/10737835796/job/29780146212
Obviously, both workflows failed since I cannot upload to the APT repo. However, the version substitution for the workflow is working correctly (as shown when collapsing the first line of the "Build and release package" step).
2024-09-06 09:11:52 -05:00
Sebastian Serth
88b2afb19b
Automatically start systemd service if config file is present ( #800 )
...
Previously, upgrading the deb package stopped the service but didn't reenable it after a successful upgrade. This made upgrading the package more difficult and required a second step to restart the service. With this commit, the systemd service is automatically started when the default config file is present.
2024-09-06 09:07:01 -05:00
Mostafa Abdelraouf
f0865ca616
Improve Prometheus exporter output ( #795 )
...
* Prometheus metrics updates:
* Add username label to deconflict metrics that would otherwise
have duplicate labels across different pools.
* Group metrics by name and only print HELP and TYPE once per
metric name.
* Sort labels for a deterministic output.
---------
Co-authored-by: Curtis Myzie <curtis.myzie@gmail.com >
Co-authored-by: Towhid Khan
2024-09-05 08:58:18 -05:00
Andrew Jackson
7d047c6c19
Implemented python tests with pytest ( #790 )
...
Currently the python tests act as scripts. A lot of output is generated to stdout which makes it very hard to figure out where problems were. Also if you want to run only a single test you basically need to comment out code in order to accomplish this.
This PR modifies the python tests to us the pytest python testing framework. This framework allows individual tests to be targeted via the command line, without touching the source code. It also suppressed stdout by default making the test output much easier to read. Also after the tests run it will provide a summary of what failed, what succeded, etc.
Co-authored-by: CommanderKeynes <andrewjackson947@gmail.coma >
Co-authored-by: Andrew Jackson <andrewjackson2988@gmail.com >
2024-09-05 08:16:45 -05:00
Andrew Jackson
f73d15f82c
Fix CI script to allow consecutive runs locally ( #793 )
...
Co-authored-by: CommanderKeynes <andrewjackson947@gmail.coma >
2024-09-05 08:01:33 -05:00
Mostafa Abdelraouf
69af6cc5e5
Make iterating on integration tests easier ( #789 )
...
Writing and iterating on integration tests are cumbersome, having to wait 10 minutes for the test-suite to run just to see if your test works or not is unacceptable.
In this PR, I added a detailed workflow for writing tests that should shorten the feedback cycle of modifying tests to be as low as a few seconds.
It will involve opening a shell into a long-lived container that has all the setup and dependencies necessary and then running your desired tests directly there. I added a convenience script that bootstraps the environment and then opens an interactive shell into the container and you can then run tests immediately in an environment that is more or less identical to what we have running in CircleCI
2024-09-03 11:15:53 -05:00
Mostafa Abdelraouf
ca34597002
Fix broken integration test #740 ( #787 )
2024-08-31 17:15:13 -05:00
Mostafa Abdelraouf
2def40ea6a
Add test case for issue 776 ( #786 )
...
I am adding a tiny test that uses the SQL statement that was reported to break an older version of SQL parser library
#776
2024-08-31 10:52:33 -05:00
Mostafa Abdelraouf
c05129018d
Improve Prometheus stats + Add Grafana dashboard ( #785 )
...
We were missing some labels on metrics generated by the Prometheus exporter so I fixed that. There are still some gaps that I want to address with respect to the metrics we track but this seems like a good start.
I also created a Grafana Dashboard and exported it to JSON. It is designed with the same metric names the Prometheus exporter uses.
2024-08-31 08:18:57 -05:00
Mostafa Abdelraouf
4a7a6a8e7a
Cut 1.2.0 release ( #783 )
2024-08-30 08:30:16 -05:00
Mostafa Abdelraouf
29a476e190
QueryRouter: route to primary when locks exists (select for update) ( #782 )
...
Authored-by: Javier Goday <jgoday@gmail.com >
2024-08-30 04:26:36 -05:00
KwongTN
81933b918d
Add linux/arm64 docker image build support ( #774 )
2024-08-29 13:50:38 -05:00
Saraj Munjal
7cbc9178d8
Bump the hyper crate to v1.4.1 and rework prometheus server handling ( #778 )
...
Bump hyper to v1.4.1 and rework prometheus server handling
2024-08-29 09:47:58 -05:00
Mostafa Abdelraouf
2c8b2f0776
Fix CI image build step ( #780 )
...
The docker CI build image is failing due to this error
249.5 Finished release [optimized] target(s) in 2m 49s
249.5 Installing /home/circleci/.cargo/bin/rustfilt
249.5 Installed package `rustfilt v0.2.1` (executable `rustfilt`)
249.5 error: failed to compile `cargo-binutils v0.3.6`, intermediate artifacts can be found at `/tmp/cargo-installrWENQG`
249.5
249.5 Caused by:
249.5 package `cargo-platform v0.1.8` cannot be built because it requires rustc 1.73 or newer, while the currently active rustc version is 1.67.1
249.5 Try re-running cargo install with `--locked`
249.5 Summary Successfully installed rustfilt! Failed to install cargo-binutils (see error(s) above).
249.5 error: some crates failed to install
So I am bumping the version up
2024-08-29 08:37:13 -05:00
Mostafa Abdelraouf
8f9a2b8e6f
Fix a Panic in admin commands ( #779 )
...
We have a panic when we send SHOW or ;;;;;;;;;;;;;;;;; to admin database.
This PR fixes these panics and adds a couple of tests
2024-08-28 21:29:40 -05:00
brandonpike
cbf4d58144
Fix lint warnings for rust-1.79 ( #769 )
...
2 things that are recommended by rust-lang - implementing `std::fmt::Display` rather than ToString (1) and using clone_from (2).
[1] https://rust-lang.github.io/rust-clippy/master/index.html#/to_string_trait_impl
[2] https://rust-lang.github.io/rust-clippy/master/index.html#assigning_clones
Signed-off-by: Brandon Pike <pikebrandon@att.net >
2024-07-15 20:30:26 -07:00
Олег Дулецкий
731aa047ba
Add ExecReload option to pgcat.service for configuration reloads ( #760 )
2024-06-24 08:57:58 -07:00
Adrian Garcia Badaracco
88dbcc21d1
update rust version in docker image ( #762 )
2024-06-24 08:51:38 -07:00
Adrian Garcia Badaracco
c34b15bddc
Add STOPSIGNAL to Dockerfile ( #758 )
2024-06-20 23:23:41 -07:00
Andrey Stikheev
0b034a6831
Add TCP_NODELAY option to improve performance for large response queries ( #749 )
...
This commit adds the TCP_NODELAY option to the socket configuration in
`configure_socket` function. Without this option, we observed significant
performance issues when executing SELECT queries with large responses.
Before the fix:
postgres=> SELECT repeat('a', 1); SELECT repeat('a', 8153);
Time: 1.368 ms
Time: 41.364 ms
After the fix:
postgres=> SELECT repeat('a', 1); SELECT repeat('a', 8153);
Time: 1.332 ms
Time: 1.528 ms
By setting TCP_NODELAY, we eliminate the Nagle's algorithm delay, which
results in a substantial improvement in response times for large queries.
This problem was discussed in https://github.com/postgresml/pgcat/issues/616 .
2024-05-26 14:47:21 -07:00
Mostafa Abdelraouf
966b8e093c
Report checkout error when all servers are down ( #736 )
...
We shouldn't report checkout_success when we are going to return Error.
2024-05-08 12:18:27 -05:00
Horacio
c9270a47d4
Use rust:bullseye as base image ( #725 )
...
Use rust:bullseye base image
With the original rust:1.70-bullseye image, the container cannot be
built:
17.06 Installing /usr/local/cargo/bin/rustfilt
17.06 Installed package `rustfilt v0.2.1` (executable `rustfilt`)
17.06 error: failed to compile `cargo-binutils v0.3.6`, intermediate artifacts can be found at `/tmp/cargo-installrc6mPb`
17.06
17.06 Caused by:
17.06 package `cargo-platform v0.1.8` cannot be built because it requires rustc 1.73 or newer, while the currently active rustc version is 1.70.0
17.06 Try re-running cargo install with `--locked`
17.06 Summary Successfully installed rustfilt! Failed to install cargo-binutils (see error(s) above).
17.06 error: some crates failed to install
This is the same base image used on tests/docker/Dockerfile
2024-04-19 09:12:57 -07:00
Toby Hede
0d94d0b90a
Update sqlparser to 0.41 ( #666 )
2024-04-12 22:12:37 -07:00
David ALEXANDRE
358724f7a9
feat: add helm chart ( #619 )
...
* add workflow
* feat: add pgcat helm chart
* fix: set the right include into configmap
Signed-off-by: David ALEXANDRE <david.alexandre@w6d.io >
* update values and config
* prettifying config
---------
Signed-off-by: David ALEXANDRE <david.alexandre@w6d.io >
2024-02-22 09:26:58 -08:00
Mostafa Abdelraouf
e1e4929d43
Report waiting time only for currently waiting clients ( #678 )
...
The pool maxwait metric currently operates differently from Pgbouncer.
The way it operates today is that we keep track of max_wait on each connected client, when SHOW POOLS query is made, we go over the connected clients and we get the max of max_wait times among clients. This means the pool maxwait will never reset, it will always be monotonically increasing until the client with the highest maxwait disconnects.
This PR changes this behavior, by keeping track of the wait_start time on each client, when a client goes into WAITING state, we record the time offset from connect_time. When we either successfully or unsuccessfully checkout a connection from the pool, we reset the wait_start time.
When SHOW POOLS query is made, we go over all connected clients and we only consider clients whose wait_start is non-zero, for clients that have non-zero wait times, we compare them and report the maximum waiting time as maxwait for the pool.
2024-01-18 11:57:28 -06:00
Lev Kokotov
dc4d6edf17
Revert max_wait changes ( #658 )
...
* Revert "Reset wait times when checked out successfully (#656 )"
This reverts commit ec3920d60f .
* Revert "Not sure how this sneaked past CI"
This reverts commit 4c5498b915 .
* Revert "only report wait times from clients currently waiting to match behavior of pgbouncer (#655 )"
This reverts commit 0e8064b049 .
2023-12-05 01:47:38 -08:00
Lev Kokotov
ec3920d60f
Reset wait times when checked out successfully ( #656 )
2023-12-04 18:33:08 -08:00
Lev
4c5498b915
Not sure how this sneaked past CI
2023-12-04 18:30:03 -08:00
Daniel Babiak
0e8064b049
only report wait times from clients currently waiting to match behavior of pgbouncer ( #655 )
...
* Change maxwait to only report wait times from clients currently waiting to match behavior of pgbouncer
* Fix tests
2023-12-04 18:19:51 -08:00
Alec
4dbef49ec9
Require a reason when marking a server bad ( #654 )
...
When calling mark_bad require a reason so it can be logged rather than
the generic message
2023-12-04 16:09:41 -08:00
Lev Kokotov
bc07dc9c81
Broken blog link 2
2023-12-03 21:01:23 -08:00
Lev Kokotov
9b8166b313
Broken blog link ( #652 )
...
Update README.md
2023-12-03 20:58:39 -08:00
Lev Kokotov
e58d69f3de
Fix deb build overwriting config ( #651 )
2023-12-03 20:27:44 -08:00
Lev Kokotov
e76d720ffb
Dont cache prepared statement with errors ( #647 )
...
* Fix prepared statement not found when prepared stmt has error
* cleanup debug
* remove more debug msgs
* sure debugged this..
* version bump
* add rust tests
2023-11-28 21:13:30 -08:00
Calvin Hughes
998cc16a3c
Expose clients maxwait time in SHOW CLIENTS response via admin ( #639 )
...
* Expose clients maxwait time in SHOW CLIENTS response via PgCat admin
Displays the maxwait via maxwait_seconds and maxwait_us columns for each client that can be used to track down the wait time per client in a case where the overall pool stats shows waiting time. The maxwait_us, similar to the pool stats setup, is configured to display as a remainder alongside the maxwait_seconds.
* Use maxwait instead of maxwait_seconds to match pools column name
---------
Co-authored-by: Calvin Hughes <9379992+calvinhughes@users.noreply.github.com >
2023-11-13 11:24:39 -08:00
Jakob Schultz-Falk
7c37da2fad
Support unnamed prepared statements ( #635 )
...
* Add golang test suite to reproduce issue with unnamed parameterized prepared statements
* Allow caching of unnamed prepared statements
* Passthrough describe on portals
* Remove unneeded kill
* Update Dockerfile.ci with golang
* Move out update of Dockerfiles to separate PR
2023-11-08 16:36:45 -08:00
Jakob Schultz-Falk
b45c6b1d23
Update Dockerfile.ci with golang ( #637 )
2023-11-08 08:25:49 -08:00
Lev Kokotov
dae240d30c
Add connet_timeout and idle_timeout to the user ( #634 )
...
* Add connect_timeout to the user
* Allow user to override connect timeout
* version
* lock
* Add both timeouts to the user
2023-11-06 12:18:52 -08:00
Lev Kokotov
b52ea8e7f1
bump version ( #629 )
2023-10-26 10:50:45 -07:00
Zain Kabani
7d3003a16a
Reimplement prepared statements with LRU cache and statement deduplication ( #618 )
...
* Initial commit
* Cleanup and add stats
* Use an arc instead of full clones to store the parse packets
* Use mutex instead
* fmt
* clippy
* fmt
* fix?
* fix?
* fmt
* typo
* Update docs
* Refactor custom protocol
* fmt
* move custom protocol handling to before parsing
* Support describe
* Add LRU for server side statement cache
* rename variable
* Refactoring
* Move docs
* Fix test
* fix
* Update tests
* trigger build
* Add more tests
* Reorder handling sync
* Support when a named describe is sent along with Parse (go pgx) and expecting results
* don't talk to client if not needed when client sends Parse
* fmt :(
* refactor tests
* nit
* Reduce hashing
* Reducing work done to decode describe and parse messages
* minor refactor
* Merge branch 'main' into zain/reimplment-prepared-statements-with-global-lru-cache
* Rewrite extended and prepared protocol message handling to better support mocking response packets and close
* An attempt to better handle if there are DDL changes that might break cached plans with ideas about how to further improve it
* fix
* Minor stats fixed and cleanup
* Cosmetic fixes (#64 )
* Cosmetic fixes
* fix test
* Change server drop for statement cache error to a `deallocate all`
* Updated comments and added new idea for handling DDL changes impacting cached plans
* fix test?
* Revert test change
* trigger build, flakey test
* Avoid potential race conditions by changing get_or_insert to promote for pool LRU
* remove ps enabled variable on the server in favor of using an option
* Add close to the Extended Protocol buffer
---------
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2023-10-25 15:11:57 -07:00
Zain Kabani
d37df43a90
Reduces the amount of time the get_pool operation takes ( #625 )
...
* Reduces the amount of time the get_pool operation takes
* trigger build
* Fix admin
2023-10-19 23:49:05 -07:00
Mohammad Dashti
2c7bf52c17
Removed unnecessary clippy overrides. ( #614 )
...
Removed unnecessary clippy overrides.
2023-10-11 10:13:23 -07:00
Mohammad Dashti
de8df29ca4
Added clippy to CI and fixed all clippy warnings ( #613 )
...
* Fixed all clippy warnings.
* Added `clippy` to CI.
* Reverted an unwanted change + Applied `cargo fmt`.
* Fixed the idiom version.
* Revert "Fixed the idiom version."
This reverts commit 6f78be0d42 .
* Fixed clippy issues on CI.
* Revert "Fixed clippy issues on CI."
This reverts commit a9fa6ba189 .
* Revert "Reverted an unwanted change + Applied `cargo fmt`."
This reverts commit 6bd37b6479 .
* Revert "Fixed all clippy warnings."
This reverts commit d1f3b847e3 .
* Removed Clippy
* Removed Lint
* `admin.rs` clippy fixes.
* Applied more clippy changes.
* Even more clippy changes.
* `client.rs` clippy fixes.
* `server.rs` clippy fixes.
* Revert "Removed Lint"
This reverts commit cb5042b144 .
* Revert "Removed Clippy"
This reverts commit 6dec8bffb1 .
* Applied lint.
* Revert "Revert "Fixed clippy issues on CI.""
This reverts commit 49164a733c .
2023-10-10 09:18:21 -07:00
Mohammad Dashti
c4fb72b9fc
Added yj to dev Dockerfile ( #612 )
2023-10-05 18:13:22 -07:00
Mohammad Dashti
3371c01e0e
Added a Plugin trait ( #536 )
...
* Improved logging
* Improved logging for more `Address` usages
* Fixed lint issues.
* Reverted the `Address` logging changes.
* Applied the PR comment by @levkk.
* Applied the PR comment by @levkk.
* Applied the PR comment by @levkk.
* Applied the PR comment by @levkk.
2023-10-03 13:13:21 -07:00
Mohammad Dashti
c2a483f36a
Automatic sharding for INSERT, UPDATE, and DELETE statements. ( #610 )
...
Added support for INSERT, UPDATE, and DELETE for auto-sharding.
2023-10-03 09:36:13 -07:00
dependabot[bot]
51cd13b8b5
chore(deps): bump webpki from 0.22.0 to 0.22.2 in /tests/rust ( #609 )
...
Bumps [webpki](https://github.com/briansmith/webpki ) from 0.22.0 to 0.22.2.
- [Commits](https://github.com/briansmith/webpki/commits )
---
updated-dependencies:
- dependency-name: webpki
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-02 15:30:42 -07:00
Nicolas Vanelslande
a054b454d2
Add psql to the container image. ( #607 )
...
It could be used to implement container health checks.
Example:
PGPASSWORD="<some-password>" psql -U pgcat -p 6432 -h 127.0.0.1 -tA -c "show version;" -d pgcat >/dev/null
2023-09-27 09:03:39 -07:00
Kevin Elliott
04e9814770
Fix incorrect data output for plugin query_logger ( #601 )
...
Update query_logger.rs
Pool and user were incorrectly swapped and needed to be fixed.
2023-09-25 18:45:51 -07:00
Lev Kokotov
037d232fcd
Mark admin clients as disconnected on error ( #597 )
2023-09-21 15:55:22 -07:00
Lev Kokotov
b2933762e7
Report maxwait for clients that end up not getting a connection ( #596 )
2023-09-21 14:50:18 -07:00
Mohammad Dashti
df8aa888f9
Add a cache layer to Docker for development ( #594 )
...
* Add a cache layer to Docker.
* Created a separate `dev` Docker file.
* Fixed `Docker.dev` to build in non-release mode.
2023-09-20 10:29:30 -07:00
Mohammad Dashti
7f5639c94a
Include thread_id in the logs ( #592 )
...
Include `thread_id` in the logs.
2023-09-20 09:11:16 -07:00
Lev Kokotov
c0112f6f12
Revert "User-friendly error messages" ( #587 )
...
Revert "User-friendly error messages (#586 )"
This reverts commit b7ceee2ddf .
2023-09-11 16:39:31 -07:00
Lev Kokotov
b7ceee2ddf
User-friendly error messages ( #586 )
2023-09-11 16:39:11 -07:00
Mostafa Abdelraouf
0b01d70b55
Allow configuring routing decision when no shard is selected ( #578 )
...
The TL;DR for the change is that we allow QueryRouter to set the active shard to None. This signals to the Pool::get method that we have no shard selected. The get method follows a no_shard_specified_behavior config to know how to route the query.
Original PR description
Ruby-pg library makes a startup query to SET client_encoding to ... if Encoding.default_internal value is set (Code). This query is troublesome because we cannot possibly attach a routing comment to it. PgCat, by default, will route that query to the default shard.
Everything is fine until shard 0 has issues, Clients will all be attempting to send this query to shard0 which increases the connection latency significantly for all clients, even those not interested in shard0
This PR introduces no_shard_specified_behavior that defines the behavior in case we have routing-by-comment enabled but we get a query without a comment. The allowed behaviors are
random: Picks a shard at random
random_healthy: Picks a shard at random favoring shards with the least number of recent connection/checkout errors
shard_<number>: e.g. shard_0, shard_4, etc. picks a specific shard, everytime
In order to achieve this, this PR introduces an error_count on the Address Object that tracks the number of errors since the last checkout and uses that metric to sort shards by error count before making a routing decision.
I didn't want to use address stats to avoid introducing a routing dependency on internal stats (We might do that in the future but I prefer to avoid this for the time being.
I also made changes to the test environment to replace Ruby's TOML reader library, It appears to be abandoned and does not support mixed arrays (which we use in the config toml), and it also does not play nicely with single-quoted regular expressions. I opted for using yj which is a CLI tool that can convert from toml to JSON and back. So I refactor the tests to use that library.
2023-09-11 13:47:28 -05:00
hellower
33db0dffa8
stream.peer_addr() & auth_query ( #575 )
...
* Don't unwrap stream.peer_addr()
https://github.com/postgresml/pgcat/pull/562 (same code)
(another lines changed)
* auth_query (real sample)
# single quote need
auth_query="SELECT usename, passwd FROM pg_shadow WHERE usename='$1'"
2023-08-31 14:11:38 -07:00
hi019
7994a661d9
Fix Docker image runs erroring due to glibc incompatability ( #572 )
...
Fix Docker image builds breaking due to glibc incompatability
2023-08-30 16:51:31 -07:00
Tommy Li
9937193332
Allow pause/resuming all pools ( #566 )
...
support pausing all pools
2023-08-29 10:07:36 -07:00
Mostafa Abdelraouf
baa00ff546
Add yj to CI image ( #568 )
2023-08-28 21:20:53 -05:00
Zain Kabani
ffe820497f
Don't unwrap stream.peer_addr() ( #562 )
2023-08-25 10:33:39 -07:00
Zain Kabani
be549f3faa
Fixes try_execute_command message parsing bug ( #560 )
...
* Fixes try_execute_command message parsing bug
* Fix initial segment logic
* Add test
2023-08-24 11:25:43 -07:00
dependabot[bot]
4301ab0606
chore(deps): bump rustls-webpki from 0.100.1 to 0.100.2 ( #555 )
...
Bumps [rustls-webpki](https://github.com/rustls/webpki ) from 0.100.1 to 0.100.2.
- [Release notes](https://github.com/rustls/webpki/releases )
- [Commits](https://github.com/rustls/webpki/compare/v/0.100.1...v/0.100.2 )
---
updated-dependencies:
- dependency-name: rustls-webpki
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-22 11:41:09 -07:00
Cluas
5143500c9a
docs: complete the missing general items ( #553 )
...
docs: complete the missing general items.
2023-08-20 19:14:19 -07:00
Zain Kabani
3255323bff
Adds option to log which parameter status is changed by the client ( #550 )
2023-08-16 11:01:21 -07:00
Zain Kabani
bb27586758
Reset instead of discard all ( #549 )
...
* Use reset all instead of discard all
* Move 'X' handling to before admin handle
* fix tests
2023-08-16 10:08:48 -07:00
Lev Kokotov
4f0f45b576
Add pgcat user ( #546 )
...
* Add pgcat user
* warn
* dev
2023-08-10 12:25:43 -07:00
Zain Kabani
f94ce97ebc
Handle and track startup parameters ( #478 )
...
* User server parameters struct instead of server info bytesmut
* Refactor to use hashmap for all params and add server parameters to client
* Sync parameters on client server checkout
* minor refactor
* update client side parameters when changed
* Move the SET statement logic from the C packet to the S packet.
* trigger build
* revert validation changes
* remove comment
* Try fix
* Reset cleanup state after sync
* fix server version test
* Track application name through client life for stats
* Add tests
* minor refactoring
* fmt
* fix
* fmt
2023-08-10 08:18:46 -07:00
Sebastian Webber
9ab128579d
parse server error messages ( #543 )
...
This commit adds a parser to the Postgres error message, providing better
error messages.
Implemented based in:
https://www.postgresql.org/docs/12/protocol-error-fields.html
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-08-09 09:14:05 -07:00
Lev Kokotov
1cde74f05e
Revert "Preserve existing behavior" ( #542 )
...
Revert "Preserve existing behavior (#541 )"
This reverts commit a4de6c1eb6 .
2023-08-08 17:45:48 -07:00
Lev Kokotov
a4de6c1eb6
Preserve existing behavior ( #541 )
2023-08-08 13:48:52 -07:00
Zain Kabani
e14b283f0c
Make infer role configurable and fix double parse bug ( #533 )
...
* Make infer role configurable and fix double parse bug
* Fix tests
* Enable infer_role_from query in toml for tests
* Fix test
* Add max length config, add logging for which application is failing to parse, and change config name
* fmt
* Update src/config.rs
---------
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2023-08-08 13:10:03 -07:00
Lev Kokotov
7c3c90c38e
Add systemd service ( #540 )
2023-08-08 11:51:38 -07:00
Lev Kokotov
2ca21b2bec
pgcat deb package ( #539 )
2023-08-08 11:08:46 -07:00
Matthias Pfeil
3986eaa4b2
Add github tag as tag to image ( #537 )
2023-08-04 10:20:56 -07:00
Lev Kokotov
1f2c6507f7
debug -> release
2023-08-01 17:47:34 -07:00
Lev Kokotov
aefcf4281c
Fix for #534 and #535
2023-08-01 17:46:34 -07:00
Bertrand Paquet
9d1c46a3e9
Fix typo in the config documentation ( #532 )
2023-07-28 00:31:53 -07:00
Spindel Ljungmark
328108aeb5
Restore the ability to filter spammy log messages ( #530 )
...
* Move connection checkin log messages to their own target
Under heavy load they can happen thousands of times per second, and
should generally be considered a nuisance at best. This marks the state
discard as an info rather than a warning, and moves all the messages
into their own log-target, so they can be filtered separately from the
more relevant warnings.
Signed-off-by: D.S. Ljungmark <spider@skuggor.se >
* Remove left-over env_logger dependencies
When moving to tracing-subscriber for logging, the env_logger
dependencies were left around, this cuts them out as dead code.
Signed-off-by: D.S. Ljungmark <spider@skuggor.se >
* Restore ability to filter log messages at runtime
This restores the RUST_LOG filters from env_logger but now with the
tracing subscriber setup. The filters are chained so commandline options
mark the default in case either option is set, which should be the path
of least confusion for users. ( RUST_LOG setting level to debug, and
commandline to warning is an odd user case, and I don't know what a user
who does that is expecting. )
It also bumps the version number as a fix to see which versions have
which behaviour.
Signed-off-by: D.S. Ljungmark <spider@skuggor.se >
---------
Signed-off-by: D.S. Ljungmark <spider@skuggor.se >
2023-07-27 08:51:23 -07:00
Lev Kokotov
4cf54a6122
Release 1.1 ( #526 )
2023-07-25 10:27:04 -07:00
Mostafa Abdelraouf
2a8f3653a6
Fix COPY FROM and add tests ( #522 )
...
* Fix COPY FROM and add tests
* E
* fmt
2023-07-20 23:06:01 -07:00
Sebastian Webber
19cb8a3022
add --no-color option to disable colors in the terminal ( #518 )
...
add --no-color option to disable colors
this commit adds a new option to disable colors in the terminal and also
moves the logger configuration to a different crate.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-19 21:15:55 -07:00
Sebastian Webber
f85e5bd9e8
add support for multiple log formats ( #517 )
...
this commit adds the tracing-subscriber crate and use its formatters to
support multiple log formats.
More details in
https://github.com/postgresml/pgcat/issues/464#issuecomment-1641430299
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-18 23:07:13 -07:00
Sebastian Webber
7bdb4e5cd9
Add cmd line parser ( #512 )
...
This commit adds the clap library and configures the necessary args to
parse from the command line, expanding the current option of a single
file and adding support for environment variables.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
2023-07-18 13:52:40 -07:00
Sebastian Webber
5d87e3781e
push and build only in main and tags ( #508 )
...
this commit changes the CI behavior to only build and push when something is committed to main or is a new tag.
2023-07-14 10:30:49 -07:00
dependabot[bot]
3e08c6bd8d
chore(deps): bump num_cpus from 1.15.0 to 1.16.0 ( #507 )
...
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.15.0 to 1.16.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.15.0...v1.16.0 )
---
updated-dependencies:
- dependency-name: num_cpus
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-14 07:58:11 -07:00
Sebastian Webber
15b6db8e4e
add "show help" command ( #505 )
...
This commit adds a new function to handle notify and use it
in the SHOW HELP command, which displays the available options
in the admin console.
Also, adding Fabrízio as a co-author for all the help with the
protocol and the help to structure this PR.
Signed-off-by: Sebastian Webber <sebastian@swebber.me >
Co-authored-by: Fabrízio de Royes Mello <fabriziomello@gmail.com >
2023-07-13 22:40:04 -07:00
dependabot[bot]
b2e6dfd9bb
chore(deps): bump rustls-pemfile from 1.0.2 to 1.0.3 ( #504 )
...
Bumps [rustls-pemfile](https://github.com/rustls/pemfile ) from 1.0.2 to 1.0.3.
- [Commits](https://github.com/rustls/pemfile/commits )
---
updated-dependencies:
- dependency-name: rustls-pemfile
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-12 21:41:48 -07:00
Mostafa Abdelraouf
3c9565d351
Add support for tcp_user_timeout ( #503 )
...
* Add support for tcp_user_timeout
* option
* duration
* Some()
* docs
* fmt, compile
2023-07-12 11:24:30 -07:00
dependabot[bot]
67579c9af4
chore(deps): bump rustls from 0.21.1 to 0.21.5 ( #501 )
...
Bumps [rustls](https://github.com/rustls/rustls ) from 0.21.1 to 0.21.5.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.1...v/0.21.5 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-12 05:46:31 -07:00
Cluas
cf7f6f35ab
docs: fix general.autoreload description ( #491 )
...
* docs: fix autoreload description
Signed-off-by: Cluas <Cluas@live.cn >
* docs: add blank line
Signed-off-by: Cluas <Cluas@live.cn >
---------
Signed-off-by: Cluas <Cluas@live.cn >
2023-07-12 05:42:44 -07:00
Voldemarich
7205537b49
[BUG] Fix binding of NULL value parameters in prepared statements ( #496 )
...
Fix binding of NULL value parameters in prepared statements
Co-authored-by: anon <anon@non.existent >
2023-07-10 10:35:43 +02:00
Zain Kabani
1ed6e925ed
Fixes the default for round robing in General ( #488 )
2023-06-23 09:15:44 -07:00
Lev Kokotov
4b78af9676
Implement Close for prepared statements ( #482 )
...
* Partial support for Close
* Close
* respect config value
* prepared spec
* Hmm
* Print cache size
2023-06-18 23:02:34 -07:00
Lev Kokotov
73500c0c96
Fix build ( #481 )
2023-06-17 09:09:54 -07:00
Lev Kokotov
b167de5aa3
fmt ( #480 )
2023-06-17 08:57:33 -07:00
Juraj Bubniak
473bb3d17d
Log not implemented messages as debug in prometheus metrics. ( #477 )
2023-06-16 18:48:38 -07:00
Lev Kokotov
c7d6273037
Support for prepared statements ( #474 )
...
* Start prepared statements
* parse
* Ok
* optional
* dont rewrite anonymous prepared stmts
* Dont rewrite anonymous prep statements
* hm?
* prep statements
* I see!
* comment
* Print config value
* Rewrite bind and add sqlx test
* fmt
* ok
* Fix
* Fix stats
* its late
* clean up PREPARE
2023-06-16 12:57:44 -07:00
Jeff Chen
94c781881f
Report min_pool_size correctly ( #471 )
2023-06-12 09:23:56 -07:00
dependabot[bot]
a8c81e5df6
chore(deps): bump pin-project from 1.0.12 to 1.1.0 ( #440 )
...
Bumps [pin-project](https://github.com/taiki-e/pin-project ) from 1.0.12 to 1.1.0.
- [Release notes](https://github.com/taiki-e/pin-project/releases )
- [Changelog](https://github.com/taiki-e/pin-project/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/pin-project/compare/v1.0.12...v1.1.0 )
---
updated-dependencies:
- dependency-name: pin-project
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:51:24 -07:00
dependabot[bot]
1d3746ec9e
chore(deps): bump sqlparser from 0.33.0 to 0.34.0 ( #448 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.33.0 to 0.34.0.
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.33.0...v0.34.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:51:05 -07:00
dependabot[bot]
b5489dc1e6
chore(deps): bump regex from 1.8.1 to 1.8.4 ( #466 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.8.1 to 1.8.4.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.8.1...1.8.4 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:50:46 -07:00
dependabot[bot]
557b425fb1
chore(deps): bump log from 0.4.17 to 0.4.19 ( #470 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.17 to 0.4.19.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.17...0.4.19 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 00:50:26 -07:00
Zain Kabani
aca9738821
Make queue strategy configurable and default to Fifo ( #463 )
...
* Change idle timeout default to 10 minutes
* Revert lifo for now while we investigate connection thrashing issues
* Make queue strategy configurable
* test revert idle time out
* Add pgcat start to python test
2023-06-09 11:35:20 -07:00
Zain Kabani
0bc453a771
Change default server lifetime and bump bb8 version to use LIFO correctly ( #462 )
...
Change default server lifetime and idle timeouts and bump bb8 version to use LIFO correctly
2023-05-31 08:25:42 -07:00
Zain Kabani
b67c33b6d0
Use latest bb8 and use Lifo as the queue strategy in the pool ( #455 )
...
* Use git bb8
* Use latest bb8 and change pool is use stack
2023-05-28 19:46:13 -07:00
Mostafa Abdelraouf
a8a30ad43b
Refactor Pool Stats to be based off of Server/Client stats ( #445 )
...
What is wrong
Stats reported by SHOW POOLS seem to be leaking. We see lingering cl_idle , cl_waiting, and similarly for sv_idle , sv_active. We confirmed that these are reporting issues not actual lingering clients.
This behavior is readily reproducible by running
while true; do
psql "postgres://sharding_user:sharding_user@localhost:6432/sharded_db" -c "SELECT 1" > /dev/null 2>&1 &
done
Why it happens
I wasn't able to get to figure our the reason for the bug but my best guess is that we have race conditions when updating pool-level stats. So even though individual update operations are atomic, we perform a check then update sequence which is not protected by a guard.
https://github.com/postgresml/pgcat/blob/main/src/stats/pool.rs#L174-L179
I am also suspecting that using Relaxed ordering might allow this behavior (I changed all operations to use Ordering::SeqCst but still got lingering clients)
How to fix
Since SHOW POOLS/SHOW SERVER/SHOW CLIENTS all show the current state of the proxy (as opposed to SHOW STATS which show aggregate values), this PR refactors SHOW POOLS to have it construct the results directly from SHOW SERVER and SHOW CLIENT datasets. This reduces the complexity of stat updates and eliminates the need for having locks when updating pool stats as we only care about updating individual client/server states.
This will change the semantics of maxwait, so instead of it holding the maxwait time ever encountered by a client (connected or disconnected), it will only consider connected clients which should be okay given PgCat tends to hold on to client connections more than Pgbouncer.
2023-05-23 08:44:49 -05:00
dependabot[bot]
d63be9b93a
chore(deps): bump toml from 0.7.3 to 0.7.4 ( #447 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.7.3 to 0.7.4.
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.3...toml-v0.7.4 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-19 08:58:13 -07:00
Lev Kokotov
100778670c
Ensure data makes it to the client ( #446 )
...
* Ensure data makes it to the client
* flush all buffers
2023-05-18 16:41:22 -07:00
Lev Kokotov
37e3349c24
Optionally clean up server connections ( #444 )
...
* Optionally clean up server connections
* move setting to pool
* fix test
* Print setting to screen
* fmt
* Fix pool_settings override in tests
2023-05-18 10:46:55 -07:00
Zain Kabani
7f57a89d75
Fix time based average stats ( #442 )
...
* keep track of current stats and zero them after updating averages
* Try tests
* typo
* remove commented test stuff
* Avoid dividing by zero
* Fix test
* refactor, get rid of iterator. do it manually
* trigger build
* Fix
2023-05-17 21:38:10 -07:00
Lev Kokotov
0898461c01
Allow to deploy pools without checking ( #438 )
2023-05-12 12:48:37 -07:00
Lev Kokotov
52b1b43850
Prewarmer ( #435 )
...
* Prewarmer
* hmm
* Tests
* default
* fix test
* Correct configuration
* Added minimal config example
* remove connect_timeout
2023-05-12 09:50:52 -07:00
Zain Kabani
0907f1b77f
Improve logging for connection cleanup ( #428 )
...
* initial commit
* fix
* fmt
2023-05-11 17:40:10 -07:00
Zain Kabani
73260690b0
Fixes average stats bug ( #436 )
...
* Add test
* Fix test
* Add fix
2023-05-11 17:37:58 -07:00
Mostafa Abdelraouf
5056cbe8ed
Fix docker-compose dev stack for Apple silicon ( #432 )
...
The docker-compose dev setup is broken under Apple silicon, starting the stack fails with the following error. Switching to a different docker image fixes the issue.
2023-05-10 10:24:35 -05:00
Lev Kokotov
571b02e178
Calculate averages correctly and preserve totals like before ( #429 )
...
* Reset totals after avg calculation
* like it used to be
2023-05-08 10:06:16 -07:00
Andrew Tanner
159eb89bf0
First try with role reset ( #427 )
...
* First try with role rest
* update
* extra line
* Update src/server.rs
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
* Update tests/ruby/misc_spec.rb
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
---------
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2023-05-05 15:31:27 -07:00
Lev Kokotov
389993bf3e
Accurate log messages ( #425 )
2023-05-05 08:27:19 -07:00
Lev Kokotov
ba5243b6dd
Optionally validate config on boot ( #423 )
2023-05-03 17:07:23 -07:00
Lev Kokotov
128ef72911
lowercase config query ( #422 )
...
* lowercase config query
* remove debug
2023-05-03 16:47:20 -07:00
Lev Kokotov
811885f464
Actually plugins ( #421 )
...
* more plugins
* clean up
* fix tests
* fix flakey test
2023-05-03 16:13:45 -07:00
dependabot[bot]
d5e329fec5
chore(deps): bump regex from 1.8.0 to 1.8.1 ( #413 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.8.0 to 1.8.1.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/commits/1.8.1 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-03 10:00:05 -07:00
Lev Kokotov
09e54e1175
Plugins! ( #420 )
...
* Some queries
* Plugins!!
* cleanup
* actual names
* the actual plugins
* comment
* fix tests
* Tests
* unused errors
* Increase reaper rate to actually enforce settings
* ok
2023-05-03 09:13:05 -07:00
dependabot[bot]
23819c8549
chore(deps): bump rustls from 0.21.0 to 0.21.1 ( #419 )
...
Bumps [rustls](https://github.com/rustls/rustls ) from 0.21.0 to 0.21.1.
- [Release notes](https://github.com/rustls/rustls/releases )
- [Changelog](https://github.com/rustls/rustls/blob/main/RELEASE_NOTES.md )
- [Commits](https://github.com/rustls/rustls/compare/v/0.21.0...v/0.21.1 )
---
updated-dependencies:
- dependency-name: rustls
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-05-02 07:32:44 -07:00
Jose Fernández
7dfbd993f2
Add dns_cache for server addresses as in pgbouncer ( #249 )
...
* Add dns_cache so server addresses are cached and invalidated when DNS changes.
Adds a module to deal with dns_cache feature. It's
main struct is CachedResolver, which is a simple thread safe
hostname <-> Ips cache with the ability to refresh resolutions
every `dns_max_ttl` seconds. This way, a client can check whether its
ip address has changed.
* Allow reloading dns cached
* Add documentation for dns_cached
2023-05-02 10:26:40 +02:00
Lev Kokotov
3601130ba1
Readme update ( #418 )
...
* Readme update
* m
* wording
2023-04-30 09:44:25 -07:00
Lev Kokotov
0d504032b2
Server TLS ( #417 )
...
* Server TLS
* Finish up TLS
* thats it
* diff
* remove dead code
* maybe?
* dirty shutdown
* skip flakey test
* remove unused error
* fetch config once
2023-04-30 09:41:46 -07:00
Lev Kokotov
4a87b4807d
Add more pool settings ( #416 )
...
* Add some pool settings
* fmt
2023-04-26 16:33:26 -07:00
Shawn
cb5ff40a59
fix typo ( #415 )
...
chore: typo
2023-04-26 08:28:54 -07:00
dependabot[bot]
62b2d994c1
chore(deps): bump regex from 1.7.3 to 1.8.0 ( #411 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.7.3 to 1.8.0.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/commits )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-21 06:33:52 -07:00
Lev Kokotov
66805d7e77
README updates ( #409 )
...
* Better table
* add image
* promote auth passthrough to stable
* fmt
2023-04-20 07:53:55 -07:00
Lev Kokotov
4ccc1e7fa3
Fix CONFIG ( #408 )
...
Fix readme
2023-04-19 07:45:26 -07:00
Lev Kokotov
3dae3d0777
Separate server and client passwords optionally ( #407 )
...
* Separate server and user passwords
* config
2023-04-18 09:57:17 -07:00
dependabot[bot]
a18eb42df5
chore(deps): bump serde from 1.0.159 to 1.0.160 ( #404 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.159 to 1.0.160.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.159...v1.0.160 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-14 10:25:00 -07:00
dependabot[bot]
6aacf1fa19
chore(deps): bump serde_derive from 1.0.159 to 1.0.160 ( #403 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.159 to 1.0.160.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.159...v1.0.160 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-14 10:24:52 -07:00
dependabot[bot]
8e99e65215
chore(deps): bump sqlparser from 0.32.0 to 0.33.0 ( #399 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.32.0 to 0.33.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.32.0...v0.33.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-14 10:24:44 -07:00
dependabot[bot]
5dfbc102a9
chore(deps): bump hyper from 0.14.25 to 0.14.26 ( #406 )
...
Bumps [hyper](https://github.com/hyperium/hyper ) from 0.14.25 to 0.14.26.
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/v0.14.26/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.25...v0.14.26 )
---
updated-dependencies:
- dependency-name: hyper
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-14 10:23:52 -07:00
Cluas
bae12fca99
feat: set keepalive for pgcat server itself ( #402 )
...
* feat: set keepalive for pgcat server self
* docs: note also set for client
2023-04-12 09:29:43 -07:00
Lev Kokotov
421c5d4b64
Load config on client connect ( #401 )
2023-04-11 10:32:48 -07:00
Kian-Meng Ang
d568739db9
Fix typos ( #398 )
...
Found via `typos --format brief`
2023-04-10 18:37:16 -07:00
Lev Kokotov
692353c839
A couple things ( #397 )
...
* Format cleanup
* fmt
* finally
2023-04-10 14:51:01 -07:00
Lev Kokotov
a62f6b0eea
Fix port; add user pool mode ( #395 )
...
* Fix port; add user pool mode
* will probably break our session/transaction mode tests
2023-04-05 15:06:19 -07:00
dependabot[bot]
89e15f09b5
chore(deps): bump tokio-rustls from 0.23.4 to 0.24.0 ( #394 )
...
Bumps [tokio-rustls](https://github.com/tokio-rs/tls ) from 0.23.4 to 0.24.0.
- [Release notes](https://github.com/tokio-rs/tls/releases )
- [Commits](https://github.com/tokio-rs/tls/commits )
---
updated-dependencies:
- dependency-name: tokio-rustls
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-02 23:00:09 -07:00
Mostafa Abdelraouf
7ddd23b514
Protocol-level test helpers ( #393 )
...
I needed to have granular control over protocol message testing. For example, being able to send protocol messages one-by-one and then be able to inspect the results.
In order to do that, I created this low-level ruby client that can be used to send protocol messages in any order without blocking and also allows inspection of response messages.
2023-04-01 15:27:57 -05:00
dependabot[bot]
faa9c1f64a
chore(deps): bump futures from 0.3.27 to 0.3.28 ( #392 )
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.27 to 0.3.28.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.27...0.3.28 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-31 09:35:01 -07:00
dependabot[bot]
9094988491
chore(deps): bump postgres-protocol from 0.6.4 to 0.6.5 ( #391 )
...
Bumps [postgres-protocol](https://github.com/sfackler/rust-postgres ) from 0.6.4 to 0.6.5.
- [Release notes](https://github.com/sfackler/rust-postgres/releases )
- [Commits](https://github.com/sfackler/rust-postgres/compare/postgres-protocol-v0.6.4...postgres-protocol-v0.6.5 )
---
updated-dependencies:
- dependency-name: postgres-protocol
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-31 09:34:51 -07:00
Jose Fernández
6f768a84ce
Auth passthrough (auth_query) ( #266 )
...
* Add a new exec_simple_query method
This adds a new `exec_simple_query` method so we can make 'out of band'
queries to servers that don't interfere with pools at all.
In order to reuse startup code for making these simple queries,
we need to set the stats (`Reporter`) optional, so using these
simple queries wont interfere with stats.
* Add auth passthough (auth_query)
Adds a feature that allows setting auth passthrough for md5 auth.
It adds 3 new (general and pool) config parameters:
- `auth_query`: An string containing a query that will be executed on boot
to obtain the hash of a given user. This query have to use a placeholder `$1`,
so pgcat can replace it with the user its trying to fetch the hash from.
- `auth_query_user`: The user to use for connecting to the server and executing the
auth_query.
- `auth_query_password`: The password to use for connecting to the server and executing the
auth_query.
The configuration can be done either on the general config (so pools share them) or in a per-pool basis.
The behavior is, at boot time, when validating server connections, a hash is fetched per server
and stored in the pool. When new server connections are created, and no cleartext password is specified,
the obtained hash is used for creating them, if the hash could not be obtained for whatever reason, it retries
it.
When client authentication is tried, it uses cleartext passwords if specified, it not, it checks whether
we have query_auth set up, if so, it tries to use the obtained hash for making client auth. If there is no
hash (we could not obtain one when validating the connection), a new fetch is tried.
Once we have a hash, we authenticate using it against whathever the client has sent us, if there is a failure
we refetch the hash and retry auth (so password changes can be done).
The idea with this 'retrial' mechanism is to make it fault tolerant, so if for whatever reason hash could not be
obtained during connection validation, or the password has change, we can still connect later.
* Add documentation for Auth passthrough
2023-03-30 13:29:23 -07:00
dependabot[bot]
0757d7f3a0
chore(deps): bump serde from 1.0.158 to 1.0.159 ( #386 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.158 to 1.0.159.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.158...v1.0.159 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-28 09:54:39 -07:00
dependabot[bot]
568f04feee
chore(deps): bump serde_derive from 1.0.154 to 1.0.159 ( #387 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.154 to 1.0.159.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.154...v1.0.159 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-28 09:54:31 -07:00
Jose Fernández
58ce76d9b9
Refactor stats to use atomics ( #375 )
...
* Refactor stats to use atomics
When we are dealing with a high number of connections, generated
stats cannot be consumed fast enough by the stats collector loop.
This makes the stats subsystem inconsistent and a log of
warning messages are thrown due to unregistered server/clients.
This change refactors the stats subsystem so it uses atomics:
- Now counters are handled using U64 atomics
- Event system is dropped and averages are calculated using a loop
every 15 seconds.
- Now, instead of snapshots being generated ever second we keep track of servers/clients
that have registered. Each pool/server/client has its own instance of the counter and
makes changes directly, instead of adding an event that gets processed later.
* Manually mplement Hash/Eq in `config::Address` ignoring stats
* Add tests for client connection counters
* Allow connecting to dockerized dev pgcat from the host
* stats: Decrease cl_idle when idle socket disconnects
2023-03-28 17:19:37 +02:00
dependabot[bot]
9a2076a9eb
chore(deps): bump futures from 0.3.26 to 0.3.27 ( #356 )
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.26 to 0.3.27.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.26...0.3.27 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:13:45 -07:00
dependabot[bot]
e7e7118725
chore(deps): bump hyper from 0.14.24 to 0.14.25 ( #358 )
...
Bumps [hyper](https://github.com/hyperium/hyper ) from 0.14.24 to 0.14.25.
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/v0.14.25/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.24...v0.14.25 )
---
updated-dependencies:
- dependency-name: hyper
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:13:36 -07:00
dependabot[bot]
99f790cacf
chore(deps): bump toml from 0.7.2 to 0.7.3 ( #360 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.7.2 to 0.7.3.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.2...toml-v0.7.3 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:13:25 -07:00
dependabot[bot]
434b0bb69e
chore(deps): bump serde from 1.0.154 to 1.0.158 ( #376 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.154 to 1.0.158.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.154...v1.0.158 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:13:13 -07:00
dependabot[bot]
714e043ef0
chore(deps): bump async-trait from 0.1.66 to 0.1.68 ( #382 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.66 to 0.1.68.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.66...0.1.68 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:12:54 -07:00
dependabot[bot]
863104aadd
chore(deps): bump regex from 1.7.1 to 1.7.3 ( #385 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.7.1 to 1.7.3.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.7.1...1.7.3 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-27 09:12:43 -07:00
Lev Kokotov
7dd96141e3
Update README.md
2023-03-26 00:33:05 -07:00
Lev Kokotov
0d5feac4b2
Contributors ( #384 )
2023-03-24 17:12:12 -07:00
Lev Kokotov
90aba9c011
V1 ( #383 )
2023-03-24 17:10:12 -07:00
Montana Low
0f34b49503
point CI at updated repo
2023-03-24 12:59:03 -07:00
Zain Kabani
ca4431b67e
Add idle client in transaction configuration ( #380 )
...
* Add idle client in transaction configuration
* fmt
* Update docs
* trigger build
* Add tests
* Make the config dynamic from reloads
* fmt
* comments
* trigger build
* fix config.md
* remove error
2023-03-24 08:20:30 -07:00
Mostafa Abdelraouf
d66b377a8e
Check Slice bounds in read_message to avoid panics ( #371 )
...
When recv is called in the mirroring client, we noticed an occasional panic when reading the message.
thread 'tokio-runtime-worker' panicked at 'slice index starts at 5 but ends at 0', src/messages.rs:522:18
We are still debugging the reason why this happens but adding a check for slice bounds seems like a good idea. Instead of panicking, this will return an Err to the caller which will close the connection.
2023-03-17 12:31:43 -05:00
Fraser Isbester
ac21ce50f1
github/workflows: adds automated image building ( #370 )
...
* github/workflow: add ghcr build-push workflow
* github/workflow: add build caching and push
* github/workflows: add registry prefix
* github/workflows: add build-concurrency groups w/ termination
2023-03-16 13:07:02 -07:00
Mostafa Abdelraouf
e5df179ac9
Reduce memory and CPU footprint of mirroring ( #369 )
...
The experimental mirroring feature used a lot of memory and CPU when put under production traffic. This change attempts to reduce memory and CPU usage.
Memory footprint is reduced by making the channel smaller. CPU usage is reduced by avoiding allocations if the channel is full or is closed.
We might lose more messages this way if the mirror falls behind but that is more acceptable than crashing the entire process when it goes out-of-memory (OOM)
2023-03-15 17:58:45 -05:00
Mostafa Abdelraouf
9a668e584f
Update CONFIG.md ( #353 )
...
Mark experimental features as such
2023-03-11 07:55:07 -06:00
Mostafa Abdelraouf
a5c360e848
Update README.md ( #352 )
2023-03-10 22:02:33 -06:00
Mostafa Abdelraouf
b09f0a3e6b
Improve Config Documentation ( #351 )
...
This PR adds a utility script that generates config documentation from pgcat.toml. Ideally, we'd want to generate the configs directly from config.rs where the actual defaults are set but this is a good start as we already had several undocumented config flags.
2023-03-10 22:00:28 -06:00
Lev Kokotov
0704ea089c
Build on 1.67 ( #350 )
2023-03-10 09:42:52 -08:00
Lev Kokotov
b4baa86e8a
Extended query protocol sharding ( #339 )
...
* Prepared stmt sharding
s
tests
* len check
* remove python test
* latest rust
* move that to debug for sure
* Add the actual tests
* latest image
* Update tests/ruby/sharding_spec.rb
2023-03-10 07:55:22 -08:00
Mostafa Abdelraouf
76e195a8a4
Reorder fields in Shard to avoid ValueAfterTable errors ( #349 )
2023-03-10 07:39:42 -06:00
Mostafa Abdelraouf
aa89e357e0
PgCat Query Mirroring ( #341 )
...
This is an implementation of Query mirroring in PgCat (outlined here #302 )
In configs, we match mirror hosts with the servers handling the traffic. A mirror host will receive the same protocol messages as the main server it was matched with.
This is done by creating an async task for each mirror server, it communicates with the main server through two channels, one for the protocol messages and one for the exit signal. The mirror server sends the protocol packets to the underlying PostgreSQL server. We receive from the underlying PostgreSQL server as soon as the data is available and we immediately discard it. We use bb8 to manage the life cycle of the connection, not for pooling since each mirror server handler is more or less single-threaded.
We don't have any connection pooling in the mirrors. Matching each mirror connection to an actual server connection guarantees that we will not have more connections to any of the mirrors than the parent pool would allow.
2023-03-10 06:23:51 -06:00
dependabot[bot]
c0855bf27d
chore(deps): bump serde_derive from 1.0.152 to 1.0.154 ( #347 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.152 to 1.0.154.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.152...v1.0.154 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 22:50:53 -08:00
dependabot[bot]
9d523ca49d
chore(deps): bump serde from 1.0.152 to 1.0.154 ( #348 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.152 to 1.0.154.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.152...v1.0.154 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-08 22:50:45 -08:00
dependabot[bot]
b765581975
chore(deps): bump sqlparser from 0.31.0 to 0.32.0 ( #343 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.31.0 to 0.32.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.31.0...v0.32.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-07 01:18:10 -08:00
dependabot[bot]
039c875909
chore(deps): bump async-trait from 0.1.64 to 0.1.66 ( #342 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.64 to 0.1.66.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.64...0.1.66 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-06 08:57:44 -05:00
Mostafa Abdelraouf
2cc6a09fba
Add Manual host banning to PgCat ( #340 )
...
Sometimes we want an admin to be able to ban a host for some time to route traffic away from that host for reasons like partial outages, replication lag, and scheduled maintenance.
We can achieve this today using a configuration update but a quicker approach is to send a control command to PgCat that bans the replica for some specified duration.
This command does not change the current banning rules like
Primaries cannot be banned
When all replicas are banned, all replicas are unbanned
2023-03-06 06:10:59 -06:00
Jose Fernández
8a0da10a87
Dev environment ( #338 )
...
Add dev env
2023-03-02 12:14:10 -05:00
Lev Kokotov
c3eaf023c7
Automatic sharding for SELECT v2 ( #337 )
...
* More comprehensive read sharding support
* A few fixes
* fq
* comment
* wildcard
2023-03-02 00:53:31 -05:00
dependabot[bot]
02839e4dc2
chore(deps): bump tokio from 1.25.0 to 1.26.0 ( #336 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.25.0 to 1.26.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.25.0...tokio-1.26.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 00:41:33 -05:00
dependabot[bot]
bd286d9128
chore(deps): bump sqlparser from 0.30.0 to 0.31.0 ( #335 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.30.0 to 0.31.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.30.0...v0.31.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-03-02 00:40:52 -05:00
Jose Fernández
9241df18e2
Allow sending logs to stdout by using STDOUT_LOG env var ( #334 )
...
* Allow sending logs to stdout by using STDOUT_LOG env var
* Increase stats buffer size
2023-02-28 13:10:40 -08:00
zainkabani
eb8cfdb1f1
Adds SHUTDOWN command as alternate option to sending SIGINT ( #331 )
...
* Adds SHUTDOWN command to PgCat as alternate option to sending SIGINT
* Check if we're already in SHUTDOWN sequence
* Send signal directly from shutdown instead of using channel
* Add tests
* trigger build
* Lowercase response and boolean change
* Update tests
* Fix tests
* typo
2023-02-26 22:16:30 -08:00
Mostafa Abdelraouf
75a7d4409a
Fix Back-and-forth RELOAD Bug ( #330 )
...
We identified a bug where RELOAD fails to update the pools.
To reproduce you need to start at some config state, modify that state a bit, reload, revert the configs back to the original state, and reload. The last reload will fail to update the pool because PgCat "thinks" the pool state didn't change.
This is because we use a HashSet to keep track of config hashes but we never remove values from it.
Say we start with State A, we modify pool configs to State B and reload. Now the POOL_HASHES struct has State A and State B. Attempting to go back to State A will encounter a hashset hit which is interpreted by PgCat as "Configs are the same, no need to reload pools"
We fix this by attaching a config_hash value to ConnectionPool object and we calculate that value when we create the pool. This eliminates the need for a global variable. One shortcoming here is that changing any config under one user in the pool will trigger a reload for the entire pool (which is fine I think)
2023-02-21 21:53:10 -06:00
Nicholas Dujay
37e1c5297a
implement show users ( #329 )
...
* implement show users
* fix compile errors
* add basic ruby test
* gitignore things
2023-02-21 13:08:43 -08:00
Mostafa Abdelraouf
28f2d19cac
More coverage cleanup ( #328 )
...
Apply a new style + remove function coverage report
2023-02-17 09:18:54 -06:00
Mostafa Abdelraouf
f9134807d7
More Test coverage + fix some code coverage bugs ( #321 )
...
Connection to the CI databases is viewed by Postgres as coming from localhost. The pg_hba.conf file generated by the docker image uses trust for these connections, that's why we had no test coverage on SASL and md5 branches.
This PR fixes this issue. There was also an issue with under-reporting code coverage. This should be fixed now
2023-02-16 23:09:22 -06:00
Mostafa Abdelraouf
2a0483b6de
Add psmisc to CI image ( #327 )
...
I accidentally removed `psmisc` from the image and now the test builds are failing. I am adding it back in this PR
2023-02-16 21:50:03 -06:00
Mostafa Abdelraouf
57dc2ae5ab
Move toxiproxy.deb to /tmp ( #326 )
...
I am seeing Directory (/home/circleci/project) you are trying to checkout to is not empty and not a git repository error after I started using the new Dockerfile.ci image. My best guess is that this failure is because we download toxiproxy.deb file into the home directory which blocks git checkout.
This PR moves toxiproxy to /tmp/ to avoid this
2023-02-16 21:35:15 -06:00
Mostafa Abdelraouf
0172523f10
Build Dockerfile.ci using Github workflows ( #325 )
...
We have to build and push the docker image used in CI manually. This PR builds that image automatically and pushes it to Github docker repository.
Will start using that image in a follow PR
2023-02-16 20:31:53 -06:00
Mostafa Abdelraouf
c69f461be5
Bake toxiproxy into CI image ( #323 )
...
Instead of downloading Toxiproxy everytime we run CI, we bake it into the CI docker image
2023-02-16 18:34:35 -06:00
zainkabani
2b05ff4ee5
Log worker thread count at startup ( #322 )
2023-02-16 16:51:38 -06:00
John Meagher
d5f60b1720
Allow shard setting with comments ( #293 )
...
What
Allows shard selection by the client to come in via comments like /* shard_id: 1 */ select * from foo;
Why
We're using a setup in Ruby that makes it tough or impossible to inject commands on the connection to set the shard before it gets to the "real" SQL being run. Instead we have an updated PG adapter that allows injection of comments before each executed SQL statement. We need this support in pgcat in order to keep some complex shard picking logic in Ruby code while using pgcat for connection management.
Local Testing
Run postgres and pgcat with the default options. Run psql < tests/sharding/query_routing_setup.sql to setup the database for the tests and run ./tests/pgbench/external_shard_test.sh as often as needed to exercise the shard setting comment test.
2023-02-15 15:19:16 -06:00
dependabot[bot]
9388288afb
chore(deps): bump once_cell from 1.17.0 to 1.17.1 ( #320 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.17.0 to 1.17.1.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.17.0...v1.17.1 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-14 21:43:47 -08:00
Mostafa Abdelraouf
97f5a0564d
Fix deprecation warnings ( #319 )
...
warning: use of deprecated function `base64::decode`: Use Engine::decode
2023-02-14 16:20:11 -06:00
Tommy Chen
9830c18315
Support EC and PKCS8 private keys ( #316 )
...
* Support EC and PKCS8 private keys
* Use iter instead of infinite loop in `load_keys` fn
2023-02-14 08:30:47 -08:00
Mostafa Abdelraouf
bf6efde8cc
Fix code coverage + less flakiness ( #318 )
...
Code coverage logic was missing coverage from rust tests. This is now fixed.
Also, we weren't reaping spawned PgCat processes correctly which left zombie processes.
2023-02-13 15:29:08 -06:00
Mostafa Abdelraouf
f1265a5570
Introduce tcp_keepalives to PgCat ( #315 )
...
We have encountered a case where PgCat pools were stuck following a database incident. Our best understanding at this point is that the PgCat -> Postgres connections died silently and because Tokio defaults to disabling keepalives, connections in the pool were marked as busy forever. Only when we deployed PgCat did we see recovery.
This PR introduces tcp_keepalives to PgCat. This sets the defaults to be
keepalives_idle: 5 # seconds
keepalives_interval: 5 # seconds
keepalives_count: 5 # a count
These settings can detect the death of an idle connection within 30 seconds of its death. Please note that the connection can remain idle forever (from an application perspective) as long as the keepalive packets are flowing so disconnection will only occur if the other end is not acknowledging keepalive packets (keepalive packet acks are handled by the OS, the application does not need to do anything). I plan to add tcp_user_timeout in a follow-up PR.
2023-02-08 11:35:38 -06:00
zainkabani
d81a744154
Fix logging mistakes ( #313 )
...
Mistakenly logging username as poolname and poolname as username
2023-02-07 14:16:28 -06:00
dependabot[bot]
cc63c95dcb
chore(deps): bump async-trait from 0.1.63 to 0.1.64 ( #308 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.63 to 0.1.64.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.63...0.1.64 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 17:15:19 -08:00
dependabot[bot]
b1b1714e76
chore(deps): bump futures from 0.3.25 to 0.3.26 ( #307 )
...
Bumps [futures](https://github.com/rust-lang/futures-rs ) from 0.3.25 to 0.3.26.
- [Release notes](https://github.com/rust-lang/futures-rs/releases )
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.25...0.3.26 )
---
updated-dependencies:
- dependency-name: futures
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 17:15:12 -08:00
dependabot[bot]
ad4eaa859c
chore(deps): bump toml from 0.7.0 to 0.7.1 ( #309 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.7.0 to 0.7.1.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.7.0...toml-v0.7.1 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 17:15:04 -08:00
dependabot[bot]
4ac8d367ca
chore(deps): bump hyper from 0.14.23 to 0.14.24 ( #311 )
...
Bumps [hyper](https://github.com/hyperium/hyper ) from 0.14.23 to 0.14.24.
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/v0.14.24/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.23...v0.14.24 )
---
updated-dependencies:
- dependency-name: hyper
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-03 17:14:54 -08:00
dependabot[bot]
e3f902cb31
chore(deps): bump bytes from 1.3.0 to 1.4.0 ( #310 )
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.3.0 to 1.4.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.3.0...v1.4.0 )
---
updated-dependencies:
- dependency-name: bytes
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-02-01 15:35:14 -08:00
dependabot[bot]
bb0b64e089
chore(deps): bump toml from 0.6.0 to 0.7.0 ( #305 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.6.0 to 0.7.0.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.6.0...toml-v0.7.0 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-30 08:59:37 -08:00
dependabot[bot]
a90c7b0684
chore(deps): bump tokio from 1.24.2 to 1.25.0 ( #304 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.24.2 to 1.25.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/commits/tokio-1.25.0 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-30 08:59:16 -08:00
Kurtsley
1c73889fb9
Add initial Windows support, ref #298 ( #301 )
2023-01-28 15:51:05 -08:00
Lev Kokotov
24e79dcf05
Startup improvements & PAUSE/RESUME ( #300 )
...
* Dont require servers to be online to start pooler
* PAUSE/RESUME
* fix
* Refresh pool
* Fixes
* lint
2023-01-28 15:36:35 -08:00
Lev Kokotov
2e3eb2663e
Fix formatting ( #299 )
2023-01-28 09:17:49 -08:00
dependabot[bot]
fbe256cc4e
chore(deps): bump toml from 0.5.11 to 0.6.0 ( #292 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.5.11 to 0.6.0.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.5.11...toml-v0.6.0 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-24 11:48:21 -08:00
dependabot[bot]
f10da57ee3
chore(deps): bump async-trait from 0.1.61 to 0.1.63 ( #291 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.61 to 0.1.63.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.61...0.1.63 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-23 08:01:16 -08:00
dependabot[bot]
e7f7adfa14
chore(deps): bump toml from 0.5.10 to 0.5.11 ( #290 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.5.10 to 0.5.11.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/compare/toml-v0.5.10...toml-v0.5.11 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-19 21:14:48 -08:00
zainkabani
a0e740d30f
Refactors is_banned logic and forces health check on unban ( #288 )
...
* Refactors is_banned logic and forces healthcheck on unban
* typo
* Make is banned log debug
* addressing comments
* Comment
2023-01-19 17:36:48 -08:00
Jose Fernández
c58f9557ae
Add more metrics to prometheus endpoint ( #263 )
...
This change:
- Adds server metrics to prometheus endpoint.
- Adds database metrics to prometheus endpoint.
- Adds pools metrics to prometheus endpoint.
- Change metrics name to have a prefix of (stats|pools|databases|servers).
2023-01-19 07:48:12 -08:00
zainkabani
ca8901910c
Removes message cloning operation required for query router ( #285 )
...
* Removes message cloning operation required for query router
* fmt
* flakey?
* ?
2023-01-19 07:19:49 -08:00
Mostafa Abdelraouf
87a771aecc
Log error messages for network failures ( #289 )
...
We are seeing some Error reading message code from socket error messages, we want to get more context so this PR logs the actual error reported.
2023-01-19 05:18:08 -06:00
dependabot[bot]
99a3b9896d
chore(deps): bump activerecord from 7.0.3.1 to 7.0.4.1 in /tests/ruby ( #287 )
...
Bumps [activerecord](https://github.com/rails/rails ) from 7.0.3.1 to 7.0.4.1.
- [Release notes](https://github.com/rails/rails/releases )
- [Changelog](https://github.com/rails/rails/blob/v7.0.4.1/activerecord/CHANGELOG.md )
- [Commits](https://github.com/rails/rails/compare/v7.0.3.1...v7.0.4.1 )
---
updated-dependencies:
- dependency-name: activerecord
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-18 16:56:16 -08:00
dependabot[bot]
89689e3663
chore(deps): bump tokio from 1.24.1 to 1.24.2 ( #286 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.24.1 to 1.24.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/commits )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-18 08:51:07 -08:00
zainkabani
85ac3ef9a5
Buffer client CopyData messages ( #284 )
...
Buffers CopyData messages and removes buffer clone for the sync message
2023-01-17 17:39:55 -08:00
Mostafa Abdelraouf
7894bba59b
Introduce least-outstanding-connections load balancing ( #282 )
...
Least outstanding connections load balancing can improve the load distribution between instances but for Pgcat it may also improve handling slow replicas that don't go completely down. With LoC, traffic will quickly move away from the slow replica without waiting for the replica to be banned.
If all replicas slow down equally (due to a bad query that is hitting all replicas), the algorithm will degenerate to Random Load Balancing (which is what we had in Pgcat until today).
This may also allow Pgcat to accommodate pools with differently-sized replicas.
2023-01-17 06:52:18 -06:00
zainkabani
ab0bad6da0
Write messages directly onto message buffer instead of allocating on own buffer ( #283 )
...
* initial commit
* comment
* fmt
2023-01-16 20:22:06 -08:00
zainkabani
3f70956775
Update cargo lock file ( #281 )
...
Major change being updating tokio to latest version to 1.24 which has CPU performance improvements
2023-01-10 17:11:40 -08:00
dependabot[bot]
4b0cdcbd5c
chore(deps): bump regex from 1.7.0 to 1.7.1 ( #280 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.7.0 to 1.7.1.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.7.0...1.7.1 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-10 09:32:54 -08:00
dependabot[bot]
4977489b89
chore(deps): bump base64 from 0.20.0 to 0.21.0 ( #279 )
...
Bumps [base64](https://github.com/marshallpierce/rust-base64 ) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases )
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md )
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.20.0...v0.21.0 )
---
updated-dependencies:
- dependency-name: base64
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-08 20:53:39 -08:00
dependabot[bot]
27b845fa80
chore(deps): bump async-trait from 0.1.60 to 0.1.61 ( #278 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.60 to 0.1.61.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.60...0.1.61 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-08 20:53:28 -08:00
dependabot[bot]
62e78f5769
chore(deps): bump serde from 1.0.151 to 1.0.152 ( #268 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.151 to 1.0.152.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 23:58:01 -08:00
dependabot[bot]
ae870894b3
chore(deps): bump serde_derive from 1.0.151 to 1.0.152 ( #269 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.151 to 1.0.152.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 23:57:53 -08:00
dependabot[bot]
7d93ead7f4
chore(deps): bump once_cell from 1.16.0 to 1.17.0 ( #270 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.16.0 to 1.17.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.16.0...v1.17.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 23:57:40 -08:00
dependabot[bot]
880bc3e0a8
chore(deps): bump sqlparser from 0.28.0 to 0.30.0 ( #275 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.28.0 to 0.30.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.28.0...v0.30.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 23:57:29 -08:00
Lev Kokotov
33bb4b3a0f
Fix tests (use sudo) ( #276 )
...
use sudo
2023-01-02 23:47:31 -08:00
dependabot[bot]
af1f199908
chore(deps): bump arc-swap from 1.5.1 to 1.6.0 ( #273 )
...
Bumps [arc-swap](https://github.com/vorner/arc-swap ) from 1.5.1 to 1.6.0.
- [Release notes](https://github.com/vorner/arc-swap/releases )
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/commits )
---
updated-dependencies:
- dependency-name: arc-swap
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-02 08:15:27 -08:00
Eoin Kelly
2282d8c044
Fix typo in README ( #272 )
...
Fix typo
2023-01-02 08:13:59 -08:00
Lev Kokotov
4be1b7fc80
Remove logo, pending new logo ( #267 )
...
* Remove logo, pending new logo
* remove from readme
2022-12-24 12:12:53 -08:00
zainkabani
8720ed3826
Buffer copy data messages ( #265 )
...
* Buffer copy data messages
* Update comment
2022-12-21 06:57:53 -08:00
dependabot[bot]
de7d7d7d99
chore(deps): bump num_cpus from 1.14.0 to 1.15.0 ( #264 )
...
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.14.0 to 1.15.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.14.0...v1.15.0 )
---
updated-dependencies:
- dependency-name: num_cpus
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-21 06:01:42 -08:00
dependabot[bot]
6807dd81bd
chore(deps): bump serde_derive from 1.0.150 to 1.0.151 ( #261 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.150 to 1.0.151.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-19 11:10:39 -08:00
dependabot[bot]
934be934e7
chore(deps): bump async-trait from 0.1.59 to 0.1.60 ( #259 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.59 to 0.1.60.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.59...0.1.60 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-19 11:10:18 -08:00
dependabot[bot]
11fb1d5e27
chore(deps): bump serde from 1.0.150 to 1.0.151 ( #260 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.150 to 1.0.151.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-19 11:10:05 -08:00
Jose Fernández
9e8ef566c6
Allow setting the number of runtime workers to be used. ( #258 )
...
This change adds a new configuration parameter called `worker_threads` that
allows setting the number of workers the Tokio Runtime will use. It defaults to
4 to maintain backward compatibility.
Given that the config file parse is done asynchronously, first, a transient runtime
is created for reading config, and once it has been parsed, the actual runtime
that will be used for PgCat execution is created.
2022-12-16 11:13:13 -08:00
Jose Fernández
99247f7c88
Allow setting idle_timeout for server connections. ( #257 )
...
In postgres, you can specify an `idle_session_timeout` which will close
sessions idling for that amount of time. If a session is closed because
of a timeout, PgCat will erroneously mark the server as unhealthy as the next
health check will return an error because the connection was drop, if no
health check is to be executed, it will simply fail trying to send the query
to the server for the same reason, the conn was drop.
Given that bb8 allows configuring an idle_timeout for pools, it would be
nice to allow setting this parameter in the config file, this way you can
set it to something shorter than the server one. Also, server pool will be kept
smaller in moments of less traffic. Actually, currently this value is set as its
default in bb8, which is 10 minutes.
This changes allows setting the parameter using the config file. It can be set both
globally and per pool. When creating the pool, if the pool don't have it defined, global
value is used.
2022-12-16 08:01:00 -08:00
dependabot[bot]
72e98a2d41
chore(deps): bump toml from 0.5.9 to 0.5.10 ( #256 )
...
Bumps [toml](https://github.com/toml-rs/toml ) from 0.5.9 to 0.5.10.
- [Release notes](https://github.com/toml-rs/toml/releases )
- [Commits](https://github.com/toml-rs/toml/commits/toml-v0.5.10 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-14 21:24:15 -08:00
dependabot[bot]
2746327f12
chore(deps): bump serde from 1.0.149 to 1.0.150 ( #252 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.149 to 1.0.150.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-12 09:59:16 -08:00
dependabot[bot]
1d7dcb17e4
chore(deps): bump serde_derive from 1.0.149 to 1.0.150 ( #251 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.149 to 1.0.150.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-12 09:59:05 -08:00
dependabot[bot]
077528b2ac
chore(deps): bump base64 from 0.13.1 to 0.20.0 ( #250 )
...
Bumps [base64](https://github.com/marshallpierce/rust-base64 ) from 0.13.1 to 0.20.0.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases )
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md )
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.13.1...v0.20.0 )
---
updated-dependencies:
- dependency-name: base64
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-12 09:58:50 -08:00
dependabot[bot]
b9b5635be2
chore(deps): bump serde from 1.0.148 to 1.0.149 ( #246 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.148 to 1.0.149.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 22:56:49 -08:00
dependabot[bot]
0ca353cb0c
chore(deps): bump serde_derive from 1.0.148 to 1.0.149 ( #247 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.148 to 1.0.149.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 22:56:39 -08:00
dependabot[bot]
3e39a07626
chore(deps): bump sqlparser from 0.27.0 to 0.28.0 ( #248 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.27.0 to 0.28.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.27.0...v0.28.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-05 22:56:29 -08:00
dependabot[bot]
4e34e288c5
chore(deps): bump async-trait from 0.1.58 to 0.1.59 ( #245 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.58 to 0.1.59.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.58...0.1.59 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-30 08:58:13 -08:00
dependabot[bot]
e4cc692e0d
chore(deps): bump sha-1 from 0.10.0 to 0.10.1 ( #244 )
...
Bumps [sha-1](https://github.com/RustCrypto/hashes ) from 0.10.0 to 0.10.1.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha-1-v0.10.0...md2-v0.10.1 )
---
updated-dependencies:
- dependency-name: sha-1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-29 13:47:42 -08:00
dependabot[bot]
b964c2be9d
chore(deps): bump serde_derive from 1.0.147 to 1.0.148 ( #243 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.147 to 1.0.148.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-28 12:08:07 -08:00
dependabot[bot]
9cced5afc7
chore(deps): bump serde from 1.0.147 to 1.0.148 ( #242 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.147 to 1.0.148.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-28 12:07:57 -08:00
dependabot[bot]
51b4439697
chore(deps): bump env_logger from 0.9.3 to 0.10.0 ( #241 )
...
Bumps [env_logger](https://github.com/rust-cli/env_logger ) from 0.9.3 to 0.10.0.
- [Release notes](https://github.com/rust-cli/env_logger/releases )
- [Changelog](https://github.com/rust-cli/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/rust-cli/env_logger/compare/v0.9.3...v0.10.0 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-25 01:27:06 -08:00
dependabot[bot]
3acfe43cb5
chore(deps): bump bytes from 1.2.1 to 1.3.0 ( #240 )
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.2.1 to 1.3.0.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/commits )
---
updated-dependencies:
- dependency-name: bytes
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-22 08:43:00 -08:00
zainkabani
c62b86f4e6
Adds details to errors and fixes error propagation bug ( #239 )
2022-11-17 09:24:39 -08:00
zainkabani
fcd2cae4e1
Move get_config in startup to admin branch to scope down usage ( #238 )
2022-11-17 09:22:12 -08:00
zainkabani
5145b20e02
Move ClientBadStartup error log to debug ( #237 )
2022-11-16 22:16:16 -08:00
zainkabani
fe0b012832
Adds configuration for logging connections and removes get_config from entrypoint ( #236 )
...
* Adds configuration for logging connections and removes get_config from entrypoint
* typo
* rename connection config var and add to toml files
* update config log
* fmt
2022-11-16 22:15:47 -08:00
zainkabani
0c96156dae
Adds health check setting to pool and avoids get_config in hotpath ( #235 )
...
* Adds healthcheck settings to pool
* fmt
* Fix test
2022-11-16 18:51:15 -08:00
zainkabani
b7e70b885c
Default to using username when database isn't present on startup ( #234 )
2022-11-16 18:49:04 -08:00
dependabot[bot]
ab85000ad4
chore(deps): bump sqlparser from 0.26.0 to 0.27.0 ( #229 )
...
Bumps [sqlparser](https://github.com/sqlparser-rs/sqlparser-rs ) from 0.26.0 to 0.27.0.
- [Release notes](https://github.com/sqlparser-rs/sqlparser-rs/releases )
- [Changelog](https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/sqlparser-rs/sqlparser-rs/compare/v0.26.0...v0.27.0 )
---
updated-dependencies:
- dependency-name: sqlparser
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-15 16:26:22 -07:00
dependabot[bot]
6266721750
chore(deps): bump chrono from 0.4.22 to 0.4.23 ( #230 )
...
Bumps [chrono](https://github.com/chronotope/chrono ) from 0.4.22 to 0.4.23.
- [Release notes](https://github.com/chronotope/chrono/releases )
- [Changelog](https://github.com/chronotope/chrono/blob/main/CHANGELOG.md )
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.22...v0.4.23 )
---
updated-dependencies:
- dependency-name: chrono
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-15 09:55:15 -07:00
Cluas
dfa26ec6f8
chore: make clippy lint happy ( #225 )
...
* chore: make clippy happy
* chore: cargo fmt
* chore: cargo fmt
2022-11-09 10:04:31 -08:00
dependabot[bot]
4bd5717ab1
chore(deps): bump hyper from 0.14.20 to 0.14.23 ( #222 )
...
Bumps [hyper](https://github.com/hyperium/hyper ) from 0.14.20 to 0.14.23.
- [Release notes](https://github.com/hyperium/hyper/releases )
- [Changelog](https://github.com/hyperium/hyper/blob/v0.14.23/CHANGELOG.md )
- [Commits](https://github.com/hyperium/hyper/compare/v0.14.20...v0.14.23 )
---
updated-dependencies:
- dependency-name: hyper
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-08 08:08:46 -08:00
dependabot[bot]
f7fc04b080
chore(deps): bump env_logger from 0.9.1 to 0.9.3 ( #223 )
...
Bumps [env_logger](https://github.com/env-logger-rs/env_logger ) from 0.9.1 to 0.9.3.
- [Release notes](https://github.com/env-logger-rs/env_logger/releases )
- [Changelog](https://github.com/env-logger-rs/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/env-logger-rs/env_logger/compare/v0.9.1...v0.9.3 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-08 08:07:53 -08:00
dependabot[bot]
ad89ef1b6e
chore(deps): bump regex from 1.6.0 to 1.7.0 ( #224 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.6.0 to 1.7.0.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.6.0...1.7.0 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-08 08:07:12 -08:00
dependabot[bot]
ab719e82b8
chore(deps): bump num_cpus from 1.13.1 to 1.14.0 ( #221 )
...
Bumps [num_cpus](https://github.com/seanmonstar/num_cpus ) from 1.13.1 to 1.14.0.
- [Release notes](https://github.com/seanmonstar/num_cpus/releases )
- [Changelog](https://github.com/seanmonstar/num_cpus/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/num_cpus/compare/v1.13.1...v1.14.0 )
---
updated-dependencies:
- dependency-name: num_cpus
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-05 10:20:55 -07:00
dependabot[bot]
416a6401bf
chore(deps): bump md-5 from 0.10.4 to 0.10.5 ( #217 )
...
Bumps [md-5](https://github.com/RustCrypto/hashes ) from 0.10.4 to 0.10.5.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/md-5-v0.10.4...md-5-v0.10.5 )
---
updated-dependencies:
- dependency-name: md-5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 12:10:55 -07:00
dependabot[bot]
09451a469e
chore(deps): bump jemallocator from 0.3.2 to 0.5.0 ( #218 )
...
Bumps [jemallocator](https://github.com/tikv/jemallocator ) from 0.3.2 to 0.5.0.
- [Release notes](https://github.com/tikv/jemallocator/releases )
- [Changelog](https://github.com/tikv/jemallocator/blob/main/CHANGELOG.md )
- [Commits](https://github.com/tikv/jemallocator/commits/0.5.0 )
---
updated-dependencies:
- dependency-name: jemallocator
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-11-02 12:10:41 -07:00
Pradeep Chhetri
353306f546
Fix dependabot labels for pull-requests ( #219 )
2022-11-02 12:10:12 -07:00
Pradeep Chhetri
63d4431046
Fix for warnings about avg_errors not implemented ( #220 )
2022-11-02 08:11:47 -07:00
dependabot[bot]
edacca8da3
chore(deps): bump toml from 0.5.8 to 0.5.9 ( #207 )
...
Bumps [toml](https://github.com/alexcrichton/toml-rs ) from 0.5.8 to 0.5.9.
- [Release notes](https://github.com/alexcrichton/toml-rs/releases )
- [Commits](https://github.com/alexcrichton/toml-rs/compare/0.5.8...0.5.9 )
---
updated-dependencies:
- dependency-name: toml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:54 -07:00
dependabot[bot]
95202c5927
chore(deps): bump chrono from 0.4.19 to 0.4.22 ( #211 )
...
Bumps [chrono](https://github.com/chronotope/chrono ) from 0.4.19 to 0.4.22.
- [Release notes](https://github.com/chronotope/chrono/releases )
- [Changelog](https://github.com/chronotope/chrono/blob/v0.4.22/CHANGELOG.md )
- [Commits](https://github.com/chronotope/chrono/compare/v0.4.19...v0.4.22 )
---
updated-dependencies:
- dependency-name: chrono
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:50 -07:00
dependabot[bot]
02acecb602
chore(deps): bump env_logger from 0.9.0 to 0.9.1 ( #212 )
...
Bumps [env_logger](https://github.com/env-logger-rs/env_logger ) from 0.9.0 to 0.9.1.
- [Release notes](https://github.com/env-logger-rs/env_logger/releases )
- [Changelog](https://github.com/env-logger-rs/env_logger/blob/main/CHANGELOG.md )
- [Commits](https://github.com/env-logger-rs/env_logger/compare/v0.9.0...v0.9.1 )
---
updated-dependencies:
- dependency-name: env_logger
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:45 -07:00
dependabot[bot]
8c8fedd1db
chore(deps): bump sha2 from 0.10.5 to 0.10.6 ( #213 )
...
Bumps [sha2](https://github.com/RustCrypto/hashes ) from 0.10.5 to 0.10.6.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.5...sha2-v0.10.6 )
---
updated-dependencies:
- dependency-name: sha2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:37 -07:00
dependabot[bot]
c8b06e2f9f
chore(deps): bump md-5 from 0.10.0 to 0.10.4 ( #214 )
...
Bumps [md-5](https://github.com/RustCrypto/hashes ) from 0.10.0 to 0.10.4.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/md2-v0.10.0...md-5-v0.10.4 )
---
updated-dependencies:
- dependency-name: md-5
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:30 -07:00
dependabot[bot]
e8f58fc5f6
chore(deps): bump serde from 1.0.136 to 1.0.147 ( #215 )
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.136 to 1.0.147.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.136...v1.0.147 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:23 -07:00
dependabot[bot]
dec6de405f
chore(deps): bump log from 0.4.14 to 0.4.17 ( #216 )
...
Bumps [log](https://github.com/rust-lang/log ) from 0.4.14 to 0.4.17.
- [Release notes](https://github.com/rust-lang/log/releases )
- [Changelog](https://github.com/rust-lang/log/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/log/compare/0.4.14...0.4.17 )
---
updated-dependencies:
- dependency-name: log
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 23:35:13 -07:00
dependabot[bot]
50476993c4
chore(deps): bump once_cell from 1.9.0 to 1.16.0 ( #209 )
...
Bumps [once_cell](https://github.com/matklad/once_cell ) from 1.9.0 to 1.16.0.
- [Release notes](https://github.com/matklad/once_cell/releases )
- [Changelog](https://github.com/matklad/once_cell/blob/master/CHANGELOG.md )
- [Commits](https://github.com/matklad/once_cell/compare/v1.9.0...v1.16.0 )
---
updated-dependencies:
- dependency-name: once_cell
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 22:17:29 -07:00
dependabot[bot]
4069b07e8e
chore(deps): bump tokio from 1.16.1 to 1.19.2 ( #210 )
...
Bumps [tokio](https://github.com/tokio-rs/tokio ) from 1.16.1 to 1.19.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases )
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.16.1...tokio-1.19.2 )
---
updated-dependencies:
- dependency-name: tokio
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 22:17:03 -07:00
dependabot[bot]
37d07287f8
chore(deps): bump rand from 0.8.4 to 0.8.5 ( #201 )
...
Bumps [rand](https://github.com/rust-random/rand ) from 0.8.4 to 0.8.5.
- [Release notes](https://github.com/rust-random/rand/releases )
- [Changelog](https://github.com/rust-random/rand/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-random/rand/compare/0.8.4...0.8.5 )
---
updated-dependencies:
- dependency-name: rand
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 11:20:30 -07:00
dependabot[bot]
3eec99dc5c
chore(deps): bump arc-swap from 1.5.0 to 1.5.1 ( #202 )
...
Bumps [arc-swap](https://github.com/vorner/arc-swap ) from 1.5.0 to 1.5.1.
- [Release notes](https://github.com/vorner/arc-swap/releases )
- [Changelog](https://github.com/vorner/arc-swap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vorner/arc-swap/compare/v1.5.0...v1.5.1 )
---
updated-dependencies:
- dependency-name: arc-swap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 11:20:20 -07:00
dependabot[bot]
b61959a2c6
chore(deps): bump base64 from 0.13.0 to 0.13.1 ( #203 )
...
Bumps [base64](https://github.com/marshallpierce/rust-base64 ) from 0.13.0 to 0.13.1.
- [Release notes](https://github.com/marshallpierce/rust-base64/releases )
- [Changelog](https://github.com/marshallpierce/rust-base64/blob/master/RELEASE-NOTES.md )
- [Commits](https://github.com/marshallpierce/rust-base64/compare/v0.13.0...v0.13.1 )
---
updated-dependencies:
- dependency-name: base64
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 11:20:10 -07:00
dependabot[bot]
101db7e88b
chore(deps): bump rustls-pemfile from 1.0.0 to 1.0.1 ( #205 )
...
Bumps [rustls-pemfile](https://github.com/rustls/pemfile ) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/rustls/pemfile/releases )
- [Commits](https://github.com/rustls/pemfile/commits )
---
updated-dependencies:
- dependency-name: rustls-pemfile
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 11:20:00 -07:00
dependabot[bot]
01bbc1f093
chore(deps): bump bytes from 1.1.0 to 1.2.1 ( #206 )
...
Bumps [bytes](https://github.com/tokio-rs/bytes ) from 1.1.0 to 1.2.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases )
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md )
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.1.0...v1.2.1 )
---
updated-dependencies:
- dependency-name: bytes
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 11:19:47 -07:00
dependabot[bot]
e13c6091dd
chore(deps): bump async-trait from 0.1.52 to 0.1.58 ( #200 )
...
Bumps [async-trait](https://github.com/dtolnay/async-trait ) from 0.1.52 to 0.1.58.
- [Release notes](https://github.com/dtolnay/async-trait/releases )
- [Commits](https://github.com/dtolnay/async-trait/compare/0.1.52...0.1.58 )
---
updated-dependencies:
- dependency-name: async-trait
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 09:53:19 -07:00
dependabot[bot]
70c791b173
chore(deps): bump sha2 from 0.10.2 to 0.10.5 ( #199 )
...
Bumps [sha2](https://github.com/RustCrypto/hashes ) from 0.10.2 to 0.10.5.
- [Release notes](https://github.com/RustCrypto/hashes/releases )
- [Commits](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.2...sha2-v0.10.5 )
---
updated-dependencies:
- dependency-name: sha2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 09:53:04 -07:00
dependabot[bot]
7ec866d4a9
chore(deps): bump serde_derive from 1.0.136 to 1.0.147 ( #198 )
...
Bumps [serde_derive](https://github.com/serde-rs/serde ) from 1.0.136 to 1.0.147.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.136...v1.0.147 )
---
updated-dependencies:
- dependency-name: serde_derive
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 09:52:46 -07:00
dependabot[bot]
552e1cf0e7
chore(deps): bump regex from 1.5.5 to 1.6.0 ( #197 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.5.5 to 1.6.0.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.5.5...1.6.0 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-31 09:50:35 -07:00
Pradeep Chhetri
19ffeffb3b
Add dependabot for keeping dependencies up-to-date ( #196 )
...
It will help us to keep the dependencies up-to-date
Signed-off-by: Pradeep Chhetri <pradeepchhetri4444@gmail.com >
Signed-off-by: Pradeep Chhetri <pradeepchhetri4444@gmail.com >
2022-10-31 09:47:33 -07:00
Lev Kokotov
9fe8d5e76f
Dont change shard unless you know ( #195 )
2022-10-26 00:14:08 -07:00
Lev Kokotov
0524787d31
Automatic sharding: part one of many ( #194 )
...
Starting automatic sharding
2022-10-25 11:47:41 -07:00
Lev Kokotov
fa267733d9
Fix docker-compose ( #193 )
...
Fix docker-compose local build
2022-10-24 11:05:33 -07:00
Lev Kokotov
dea952e4ca
Re-enable query parser and parse multiple statements ( #191 )
...
* Re-enable query parser and parse multiple statements
* no diff
2022-10-23 16:59:51 -07:00
zainkabani
19f635881a
Don't send discard all when state is changed in transaction ( #186 )
...
* Don't send discard all when state is changed in transaction
* Remove unnecessary clone
* spelling
* Move transaction check to SET command
* Add test for set command in transaction
* type
* Update comments
* Update comments
* use moves instead of clones for initial message
* don't make message mutable
* Update unwrap
* but i'm not a wrapper
* Add set local test
* change continue
2022-10-13 19:33:12 -07:00
Mostafa Abdelraouf
eceb7f092e
Use Jemalloc ( #189 )
...
Jemalloc performs better than the standard allocator in various metrics (http://ithare.com/testing-memory-allocators-ptmalloc2-tcmalloc-hoard-jemalloc-while-trying-to-simulate-real-world-loads/ ).
This PR makes changes to use Jemalloc as the global allocator for Pgcat. Windows is not officially supported by Pgcat but it should still compile but without Jemalloc as the allocator.
2022-10-13 11:13:45 -05:00
Mostafa Abdelraouf
83fd639918
A bit faster get_pool ( #187 )
...
* A bit faster get_pool
* fmt
2022-10-08 08:16:04 -07:00
Mostafa Abdelraouf
3d33ccf4b0
Fix maxwait metric ( #183 )
...
Max wait was being reported as 0 after #159
This PR fixes that and adds test
2022-10-05 21:41:09 -05:00
Lev Kokotov
7987c5ffad
Replace a few types with more developer-friendly names ( #182 )
...
* Replace a few types with more developer-friendly names
* UserPool -> PoolIdentifier
2022-10-01 10:25:59 -07:00
zainkabani
24f5eec3ea
Change sharding config to enum and move validation of configs into public functions ( #178 )
...
Moves config validation to own functions to enable tools to use them
Moves sharding config to enum
Makes defaults public
Make connect_timeout on pool and option which is overwritten by general connect_timeout
2022-09-28 08:50:14 -05:00
Mostafa Abdelraouf
af064ef447
Set client state to idle after error ( #179 )
...
* Set client state to idle after error
* fmt
* spelling
* clean up
2022-09-24 09:09:15 -07:00
Lev Kokotov
e84a6f834c
Update README.md
2022-09-23 12:24:30 -07:00
Lev Kokotov
19fd677891
Fix the pool fix ( #176 )
...
* Always listen to the compiler
* Its fine
2022-09-23 12:06:07 -07:00
Lev Kokotov
964a5e1708
Don't drop connections if DB hasn't changed ( #175 )
...
* Don't drop connections if DB hasn't changed
* Incoporate connect_timeout into the pool config
* use the field
2022-09-23 11:32:05 -07:00
Mostafa Abdelraouf
d126c7424d
Log failed client logins ( #173 )
...
* Log failed client logins
* more logging
* remove clones
* remove
2022-09-23 09:08:38 -07:00
zainkabani
f72dac420b
Add defaults for configs ( #174 )
...
* add statement timeout to readme
* Add defaults to various configs
* primary read enabled default to false
2022-09-22 23:00:46 -07:00
zainkabani
3a729bb75b
Minor refactor for configs ( #172 )
...
* Changes shard struct to use vector of ServerConfig
* Adds to query router
* Change client disconnect with error message to warn instead of debug
* Add warning logs for clean up actions
2022-09-22 10:07:02 -07:00
zainkabani
85cc2f4147
Update to latest library versions ( #170 )
2022-09-21 13:48:33 -07:00
zainkabani
8c09ab6c20
Export pgcat objects in lib ( #169 )
...
* Export pgcat objects in lib
* fmt
2022-09-20 18:47:32 -07:00
Mostafa Abdelraouf
f7a951745c
Report Query times ( #166 )
...
* Report avg and total query timing
* Report query times
* fmt
2022-09-15 02:21:45 -04:00
Mostafa Abdelraouf
4ae1bc8d32
Add SHOW CLIENTS / SHOW SERVERS + Stats refactor and tests ( #159 )
...
* wip
* Main Thread Panic when swarmed with clients
* fix
* fix
* 1024
* fix
* remove test
* Add SHOW CLIENTS
* revert
* fmt
* Refactor + tests
* fmt
* add test
* Add SHOW SERVERS + Make PR unreviewable
* prometheus
* add state to clients and servers
* fmt
* Add application_name to server stats
* Add tests for waiting clients
* Docs
* remove comment
* comments
* typo
* cleanup
* CI
2022-09-14 11:20:41 -04:00
Lev Kokotov
075167431d
Add Discord link ( #164 )
...
* Add Discord link
* move it up
* :)
* hmm
* hmm
* :O
2022-09-08 08:12:37 -07:00
Mostafa Abdelraouf
9514b3b2d1
Clean connection state up after protocol named prepared statement ( #163 )
...
* Clean connection state up after protocol named prepared statement
* Avoid cloning + add test
* fmt
2022-09-07 20:37:17 -07:00
Lev Kokotov
6d41640ea9
Send signal even if process is gone ( #162 )
...
* Send signal even if process is gone
* hmm
* hmm
2022-09-07 09:22:52 -07:00
Mostafa Abdelraouf
744ceada86
Better logging for failure to get connection from pool ( #161 )
2022-09-07 08:24:07 -07:00
Mostafa Abdelraouf
a5c8dd69b2
Avoid reporting ProtocolSyncError when admin session disconnects ( #160 )
...
* Avoid reporting ProtocolSyncError when admin session disconnects
* rebuild
* rebuild
2022-09-06 22:22:31 -07:00
zainkabani
6a9a4db648
Adds microsecond logging and also reformats duration to include milliseconds ( #156 )
...
* Adds microsecond logging and also reformats duration to include milliseconds
* fmt
* attempt to fix cd
* revert
2022-09-05 01:21:27 -07:00
Mostafa Abdelraouf
976b406468
Main Thread Panic when swarmed with clients ( #158 )
...
* Main Thread Panic when swarmed with clients
* fix
* fix
* 1024
* fix
* remove test
* Update src/client.rs
* Update src/main.rs
* Update src/client.rs
* Update src/main.rs
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2022-09-05 01:21:06 -07:00
zain-kabani
417358c35d
Patch graceful shutdown bug ( #157 )
...
* Fixes non-admin client counting error
* Add log when sigterm received and log number of active clients when shutdown timeout is reached
2022-09-05 01:02:49 -07:00
Mostafa Abdelraouf
23a642f4a4
Send DISCARD ALL even if client is not in transaction ( #152 )
...
* Send DISCARD ALL even if client is not in transaction
* fmt
* Added tests + avoided sending extra discard all
* Adds set name logic to beginning of handle client
* fmt
* refactor dead code handling
* Refactor reading command tag
* remove unnecessary trim
* Removing debugging statement
* typo
* typo{
* documentation
* edit text
* un-unwrap
* run ci
* run ci
Co-authored-by: Zain Kabani <zain.kabani@instacart.com >
2022-09-01 20:06:55 -07:00
Mostafa Abdelraouf
7f20dc3054
Better handling extended protocol messages in the event of busy pool ( #155 )
...
* Better handling for checkout errors during extended protocol messages
* Fix specs
* comment
2022-09-01 15:02:39 -07:00
Mostafa Abdelraouf
36339bd96f
Log Address information in connection create/drop ( #154 )
...
* Log Address information in connection create/drop
* run ci
2022-09-01 11:16:22 -07:00
Mostafa Abdelraouf
65b69b46d2
Allow running integration tests with coverage locally ( #151 )
2022-08-30 10:43:45 -07:00
Mostafa Abdelraouf
d48c04a7fb
Ruby integration tests ( #147 )
...
* Ruby integration tests
* forgot a file
* refactor
* refactoring
* more refactoring
* remove config helper
* try multiple databases
* fix
* more databases
* Use pg stats
* ports
* speed
* Fix tests
* preload library
* comment
2022-08-30 09:14:53 -07:00
zainkabani
2628dec42e
Move autoreloader to own tokio task ( #148 )
2022-08-29 00:08:44 -07:00
Mostafa Abdelraouf
3bc4f9351c
Exit with failure codes if configs are bad ( #146 )
...
* Exit with failure codes if configs are bad
* fmt
2022-08-25 18:56:18 -07:00
Lev Kokotov
9d84d6f131
Graceful shutdown and refactor ( #144 )
...
* Graceful shutdown and refactor
* ok
* _Graceful_ shutdown
* Remove hardcoded setting
* clean up
* end
* timeout
* hmm
* hmm!
* bash
* bash
* hmm
* maybe maybe
* Adds tests and move non-admin connection rejection to startup (#145 )
* Move error response
* Adds tests and removes unused variable
* Adds debug log
Co-authored-by: zainkabani <77307340+zainkabani@users.noreply.github.com >
2022-08-25 06:40:56 -07:00
Mostafa Abdelraouf
c054ff068d
Avoid sending Z packet in the middle of extended protocol packet sequence if we fail to get connection from pool ( #137 )
...
* Failing test
* maybe
* try fail
* try
* add message
* pool size
* correct user
* more
* debug
* try fix
* see stdout
* stick?
* fix configs
* modify
* types
* m
* maybe
* make tests idempotent
* hopefully fails
* Add client fix
* revert pgcat.toml change
* Fix tests
2022-08-23 11:02:23 -07:00
Lev Kokotov
5a0cea6a24
Really fix idle servers ( #141 )
2022-08-22 11:56:40 -07:00
Lev Kokotov
d0e8171b1b
Fix too many idle servers ( #140 )
...
* Fix too many idle servers
* oops
2022-08-22 11:52:34 -07:00
Lev Kokotov
069d76029f
Fix incorrect routing for replicas ( #139 )
...
* Fix incorrect routing for replicas
* name
2022-08-21 22:40:49 -07:00
Lev Kokotov
902fafd8d7
Random lb ( #138 )
2022-08-21 22:20:31 -07:00
Mostafa Abdelraouf
5f5b5e2543
Random instance selection ( #136 )
...
* wip
* revert some'
* revert more
* poor-man's integration test
* remove test
* fmt
* --workspace
* fix build
* fix integration test
* another stab
* log
* run after integration
* cargo test after integration
* revert
* revert more
* Refactor + clean up
* more clean up
2022-08-21 22:15:20 -07:00
zainkabani
5948fef6cf
Minor Refactoring of re-used code and server stat reporting ( #129 )
...
* Minor changes to stats reporting and recduce re-used code
* fmt
2022-08-18 05:12:38 -07:00
Mostafa Abdelraouf
790898c20e
Add pool name and username to address object ( #128 )
...
* Add pool name and username to address object
* Fix address name
* fmt
2022-08-17 08:40:47 -07:00
Pradeep Chhetri
d64f6793c1
Minor cleanup in admin command ( #126 )
...
* Minor cleanup in admin command
* Typo correction
* fix when the admin query is ending with semicolon
2022-08-16 10:01:46 -07:00
Lev Kokotov
cea35db35c
Fix lost statistics ( #125 )
...
* Lost events
* more logging
2022-08-15 23:54:49 -07:00
Mostafa Abdelraouf
a3aefabb47
Add cl_idle to SHOW POOLS ( #124 )
2022-08-15 20:51:37 -07:00
Lev Kokotov
3285006440
Statement timeout + replica imbalance fix ( #122 )
...
* Statement timeout
* send error message too
* Correct error messages
* Fix replica inbalance
* disable stmt timeout by default
* Redundant mark_bad
* revert healthcheck delay
* tests
* set it to 0
* reload config again
2022-08-13 13:45:58 -07:00
Pradeep Chhetri
52303cc808
Make prometheus port configurable ( #121 )
...
* Make prometheus port configurable
* Update circleci config
2022-08-13 10:25:14 -07:00
Lev Kokotov
be254cedd9
Fix debug log ( #120 )
2022-08-11 22:47:47 -07:00
Lev Kokotov
a5db6881b8
Speed up CI a bit ( #119 )
...
* Sleep for 1s
* use premade image
* quicker
* revert shutdown timeout
2022-08-11 22:41:08 -07:00
zainkabani
f963b12821
Health check delay ( #118 )
...
* initial commit of server check delay implementation
* fmt
* spelling
* Update name to last_healthcheck and some comments
* Moved server tested stat to after require_healthcheck check
* Make health check delay configurable
* Rename to last_activity
* Fix typo
* Add debug log for healthcheck
* Add address to debug log
2022-08-11 14:42:40 -07:00
Lev Kokotov
a262337ba5
Update CONTRIBUTING.md
2022-08-10 09:51:56 -07:00
Nicholas Dujay
014628d6e0
fix docker compose port allocation for local dev ( #117 )
...
change docker compose port to right prometheus port
2022-08-09 14:15:34 -07:00
zainkabani
65c32ad9fb
Validates pgcat is closed after shutdown python tests ( #116 )
...
* Validates pgcat is closed after shutdown python tests
* Fix pgrep logic
* Moves sigterm step to after cleanup to decouple
* Replace subprocess with os.system for running pgcat
2022-08-09 14:09:53 -07:00
Nicholas Dujay
1b166b462d
create a prometheus exporter on a standard http port ( #107 )
...
* create a hyper server and add option to enable it in config
* move prometheus stuff to its own file; update format
* create metric type and help lookup table
* finish the metric help type map
* switch to a boolean and a standard port
* dont emit unimplemented metrics
* fail if curl returns a non 200
* resolve conflicts
* move log out of config.show and into main
* terminating new line
* upgrade curl
* include unimplemented stats
2022-08-09 12:19:11 -07:00
Mostafa Abdelraouf
7592339092
Prevent clients from sticking to old pools after config update ( #113 )
...
* Re-acquire pool at the beginning of Protocol loop
* Fix query router + add tests for recycling behavior
2022-08-09 12:18:27 -07:00
zainkabani
3719c22322
Implementing graceful shutdown ( #105 )
...
* Initial commit for graceful shutdown
* fmt
* Add .vscode to gitignore
* Updates shutdown logic to use channels
* fmt
* fmt
* Adds shutdown timeout
* Fmt and updates tomls
* Updates readme
* fmt and updates log levels
* Update python tests to test shutdown
* merge changes
* Rename listener rx and update bash to be in line with master
* Update python test bash script ordering
* Adds error response message before shutdown
* Add details on shutdown event loop
* Fixes response length for error
* Adds handler for sigterm
* Uses ready for query function and fixes number of bytes
* fmt
2022-08-08 16:01:24 -07:00
Mostafa Abdelraouf
106ebee71c
Fix local dev ( #112 )
...
* Fix Dev env
* Update tests/sharding/query_routing_setup.sql
* Update tests/sharding/query_routing_setup.sql
* bring pgcat.toml on ci and local dev to parity
* more parity
* pool names
* pool names
* less diff
* fix tests
* fmt
* add other user to setup
Co-authored-by: Lev Kokotov <levkk@users.noreply.github.com >
2022-08-08 13:15:48 -07:00
Mostafa Abdelraouf
b79f55abd6
Generate test coverage report in CircleCI ( #110 )
...
* coverage?
* generate_coverage
* +x
* 1.62.1
* 62
* ignore
* store
* quote
2022-08-08 07:51:36 -07:00
Mostafa Abdelraouf
b828e62408
Report banned addresses as disabled ( #111 )
2022-08-08 07:50:29 -07:00
Mostafa Abdelraouf
499612dd76
Add user to SHOW STATS query ( #108 )
...
* Add user to SHOW STATS query
* user_name => username
2022-08-03 18:16:53 -07:00
Mostafa Abdelraouf
5ac85eaadd
Fix Python tests and remove CircleCI-specific path ( #106 )
...
* Remove CircleCI-specific path in tests
* ..?
* Fix testsP
* Fix python test
* remove pip
* Maybe fail?
* return code?
* no &
* Fix tests
2022-08-02 15:52:22 -07:00
Pradeep Chhetri
20e8f9d74c
Sync pgcat config for docker-compose ( #104 )
2022-08-02 09:23:35 -07:00
Mostafa Abdelraouf
1b648ca00e
Send proper server parameters to clients using admin db ( #103 )
...
* Send proper server parameters to clients using admin db
* clean up
* fix python test
* build
* Add python
* missing &
* debug ls
* fix tests
* fix tests
* fix
* Fix warning
* Address comments
2022-07-31 19:52:23 -07:00
Mostafa Abdelraouf
35381ba8fd
Add test for config Serializer ( #102 )
...
* Add test for serializer
* fmt
2022-07-30 16:28:25 -07:00
Mostafa Abdelraouf
e591865d78
Avoid ValueAfterTable when serializing configs ( #101 )
2022-07-30 16:12:02 -07:00
Mostafa Abdelraouf
48cff1f955
Slightly more light weight health check ( #100 )
2022-07-29 11:58:25 -07:00
Mostafa Abdelraouf
8a06fc4047
Add Serialize trait to configs ( #99 )
2022-07-28 15:42:04 -07:00
Pradeep Chhetri
14d4dc45f5
Minor fix for some stats ( #97 )
2022-07-27 22:59:33 -07:00
Mostafa Abdelraouf
2ae4b438e3
Add support for multi-database / multi-user pools ( #96 )
...
* Add support for multi-database / multi-user pools
* Nothing
* cargo fmt
* CI
* remove test users
* rename pool
* Update tests to use admin user/pass
* more fixes
* Revert bad change
* Use PGDATABASE env var
* send server info in case of admin
2022-07-27 19:47:55 -07:00
Lev Kokotov
c5be5565a5
Update Dockerfile
2022-07-25 22:25:59 -07:00
dependabot[bot]
eff8e3e229
Bump activerecord from 7.0.2.2 to 7.0.3.1 in /tests/ruby ( #94 )
...
Bumps [activerecord](https://github.com/rails/rails ) from 7.0.2.2 to 7.0.3.1.
- [Release notes](https://github.com/rails/rails/releases )
- [Changelog](https://github.com/rails/rails/blob/v7.0.3.1/activerecord/CHANGELOG.md )
- [Commits](https://github.com/rails/rails/compare/v7.0.2.2...v7.0.3.1 )
---
updated-dependencies:
- dependency-name: activerecord
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-12 13:24:41 -07:00
Marco Montagna
ae3db111ac
Merge pull request #91 from levkk/levkk-tls-2
...
Support for TLS
2022-06-27 17:12:50 -07:00
Lev
8bcfbed574
forgotten comment
2022-06-27 17:07:40 -07:00
Lev
773602dedf
Im about to get a nasty email
2022-06-27 17:06:49 -07:00
Lev
21bf07258c
lock em up
2022-06-27 17:05:45 -07:00
Lev
186f8be5b3
lint
2022-06-27 17:01:40 -07:00
Lev
7667fefead
config check
2022-06-27 17:01:14 -07:00
Lev
c11d595ac7
bye
2022-06-27 16:46:03 -07:00
Lev
8f3202ed92
hmm
2022-06-27 16:45:41 -07:00
Lev
eb58920870
at least it compiles
2022-06-27 15:52:01 -07:00
Lev Kokotov
b974aacd71
check
2022-06-27 09:46:33 -07:00
Lev Kokotov
7dfe59a91a
Fix stats dymanic reload ( #87 )
2022-06-25 12:22:46 -07:00
Lev Kokotov
5bcd3bf9c3
Automatically reload config every seconds (disabled by default) ( #86 )
...
* Automatically reload config every seconds (disabld by default)
* add that
2022-06-25 11:46:20 -07:00
Lev Kokotov
f06f64119c
Fix panic & query router bug ( #85 )
...
* Fix query router bug
* Fix panic
2022-06-24 15:14:31 -07:00
Lev Kokotov
b93303eb83
Live reloading entire config and bug fixes ( #84 )
...
* Support reloading the entire config (including sharding logic) without restart.
* Fix bug incorrectly handing error reporting when the shard is set incorrectly via SET SHARD TO command.
selected wrong shard and the connection keep reporting fatal #80 .
* Fix total_received and avg_recv admin database statistics.
* Enabling the query parser by default.
* More tests.
2022-06-24 14:52:38 -07:00
Lev Kokotov
d865d9f9d8
readme
2022-06-20 06:20:12 -07:00
Lev Kokotov
d3310a62c2
Client md5 auth and clean up scram ( #77 )
...
* client md5 auth and clean up scram
* add pw
* add user
* add user
* log
2022-06-20 06:15:54 -07:00
Lev Kokotov
d412238f47
Implement SCRAM-SHA-256 for server authentication (PG14) ( #76 )
...
* Implement SCRAM-SHA-256
* test it
* trace
* move to community for auth
* hmm
2022-06-18 18:36:00 -07:00
dependabot[bot]
7782933f59
Bump regex from 1.5.4 to 1.5.5 ( #75 )
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.5.4 to 1.5.5.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.5.4...1.5.5 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-06-06 19:59:50 -07:00
Lev Kokotov
bac4e1f52c
Only set application_name if it's different ( #74 )
...
* Only set application_name if it's different
* keep server named pgcat until something else changes
2022-06-05 09:48:06 -07:00
Lev Kokotov
37e3a86881
Pass application_name to server ( #73 )
...
* Pass application_name to server
* fmt
2022-06-03 00:15:50 -07:00
Lev Kokotov
61db13f614
Fix memory leak in client/server mapping ( #71 )
2022-05-18 16:24:03 -07:00
Lev Kokotov
fe32b5ef17
Reduce traffic on the stats channel ( #69 )
2022-05-17 13:05:25 -07:00
Lev Kokotov
54699222f8
Possible fix for clients waiting stat leak ( #68 )
2022-05-14 21:35:33 -07:00
Lev Kokotov
ccbca66e7a
Poorly behaved client fix ( #65 )
...
* Poorly behaved client fix
* yes officer
* fix tests
* no useless rescue
* Looks ok
2022-05-09 09:09:22 -07:00
Lev Kokotov
df85139281
Update README. Comments. Version bump. ( #60 )
...
* update readme
* comments
* just a version bump
2022-03-10 01:33:29 -08:00
Lev Kokotov
509e4815a3
Update README.md
2022-03-08 17:48:26 -08:00
Lev Kokotov
5338ff2323
Update README.md
2022-03-08 17:46:46 -08:00
Lev Kokotov
1ea0a7f332
Update README.md
2022-03-08 17:45:54 -08:00
Lev Kokotov
d1b86d363d
Update README.md
2022-03-08 17:38:51 -08:00
Lev Kokotov
b309ead58f
Handle SIGTERM. Add docker-compose.yml ( #59 )
...
* docker-compsoe
* remove statsd config
* readme
2022-03-08 17:18:48 -08:00
Lev Kokotov
341ebf4123
docs and remove Option ( #58 )
...
* docs and remove Option
* lint
2022-03-07 23:05:40 -08:00
Lev Kokotov
35828a0a8c
Per-shard statistics ( #57 )
...
* per shard stats
* aight
* cleaner
* fix show lists
* comments
* more friendly
* case-insensitive
* test all shards
* ok
* HUH?
2022-03-04 17:04:27 -08:00
Lev Kokotov
1e8fa110ae
Fix pgbouncerhero ( #54 )
2022-03-02 14:46:31 -08:00
Lev Kokotov
d4186b7815
More admin ( #53 )
...
* more admin
* more admin
* show lists
* tests
2022-03-01 22:49:43 -08:00
Lev Kokotov
aaeef69d59
Refactor admin ( #52 )
2022-03-01 08:47:19 -08:00
Lev Kokotov
b21e0f4a7e
admin SHOW DATABASES ( #51 )
...
* admin SHOW DATABASES
* test
* correct replica count
2022-02-28 17:22:28 -08:00
Lev Kokotov
eb1473060e
admin: SHOW CONFIG ( #50 )
...
* admin: SHOW CONFIG
* test
2022-02-28 08:14:39 -08:00
Lev Kokotov
26f75f8d5d
admin RELOAD ( #49 )
...
* admin RELOAD
* test
2022-02-27 10:21:24 -08:00
Lev Kokotov
99d65fc475
Check server versions on startup & refactor ( #48 )
...
* Refactor and check server parameters
* warnings
* fix validator
2022-02-26 11:01:52 -08:00
Lev Kokotov
206fdc9769
Fix some stats ( #47 )
...
* fix some stats
* use constant
* lint
2022-02-26 10:03:11 -08:00
Lev Kokotov
f74101cdfe
admin: SHOW STATS ( #46 )
...
* admin: show stats
* warning
* tests
* lint
* type mod
2022-02-25 18:20:15 -08:00
Lev Kokotov
8e0682482d
query routing docs ( #45 )
2022-02-25 14:27:33 -08:00
Lev Kokotov
6db51b4a11
Use Toxiproxy for failover testing ( #44 )
...
* Toxiproxy
* up-to-date config
* debug
* hm
* more
* mroe
* more
* hmm
* aha
* less logs
* cleaner
* hmm
* we test these now
* update readme
2022-02-24 20:55:19 -08:00
Lev Kokotov
a784883611
Allow to set shard and set sharding key without quotes ( #43 )
...
* Allow to set shard and set sharding key without quotes
* cover it
* dont look for these in the middle of another query
* friendly regex
* its own response to set shard key
2022-02-24 12:16:24 -08:00
Lev Kokotov
5972b6fa52
Switch to parking_lot RwLock & Mutex. Use trace! for protocol instead of debug! ( #42 )
...
* RwLock & parking_lot::Mutex
* upgrade to trace
2022-02-24 08:44:41 -08:00
Lev Kokotov
b3c8ca4b8a
Another example of a sharding function ( #41 )
...
* Another example of a sharding function
* tests
2022-02-23 11:50:34 -08:00
Lev Kokotov
dce72ba262
Add debug logging ( #39 )
...
* Add debug for easier debugging
* fmt
* a couple more messages
2022-02-22 19:26:08 -08:00
Lev Kokotov
af1716bcd7
Flush stats ( #38 )
...
* flush stats
* stats
* refactor
2022-02-22 18:10:30 -08:00
Lev Kokotov
3f16123cc5
Config docs ( #37 )
...
* config docs
* space
* space
* shards
2022-02-21 23:57:25 -08:00
Lev Kokotov
f6f5471aa0
Update README.md
2022-02-21 20:43:40 -08:00
Lev Kokotov
a6fc935040
Can pass config path as argument ( #36 )
...
* show better errors for config parsing
* lint
2022-02-21 20:41:32 -08:00
Lev Kokotov
754381fc6c
Update Dockerfile
2022-02-21 17:49:32 -08:00
Lev Kokotov
b1e9a406fb
Update README.md
2022-02-21 17:48:08 -08:00
Lev Kokotov
f21a3d8d8c
Add server login stat; refactor for better naming ( #34 )
2022-02-21 17:28:50 -08:00
Lev Kokotov
f805b43a08
test session mode and config reload for real ( #33 )
...
* test session mode and config reload for real
* period
* run them at the end
* typo
* wrong dir
2022-02-21 00:16:33 -08:00
Lev Kokotov
86941d62e4
Reset query router setting to default ( #32 )
2022-02-21 00:00:50 -08:00
Lev Kokotov
aceb2ace24
Update issue templates
2022-02-20 23:52:50 -08:00
Lev Kokotov
303fec063b
Ruby ( #30 )
...
* cop
* log
2022-02-20 23:33:04 -08:00
Lev Kokotov
64574211c6
Update CONTRIBUTING.md
2022-02-20 22:49:30 -08:00
Lev Kokotov
44b5e7eeee
use logger lib; minor refactor; sv_* stats ( #29 )
2022-02-20 22:47:08 -08:00
Lev Kokotov
108f5715c0
License as MIT ( #28 )
...
* License as MIT
* license
* s
2022-02-20 13:49:30 -08:00
Lev Kokotov
3b795464a8
Fix client states reporting ( #27 )
...
* Fix client states reporting
* clean
2022-02-20 12:40:09 -08:00
Lev Kokotov
d4c1fc87ee
Reloadable config ( #26 )
...
* Reloadable config
* readme
* live config reload
* test matrix
2022-02-19 13:57:35 -08:00
Lev Kokotov
4ca50b9a71
Update README.md
2022-02-19 08:59:20 -08:00
Lev Kokotov
a556ec1c43
More query router commands; settings last until changed again; docs ( #25 )
...
* readme
* touch up docs
* stuff
* refactor query router
* remove unused
* less verbose
* docs
* no link
* method rename
2022-02-19 08:57:24 -08:00
Lev Kokotov
bbacb9cf01
Explicit shard selection; Rails tests ( #24 )
...
* Explicit shard selection; Rails tests
* try running ruby tests
* try without lockfile
* aha
* ok
2022-02-18 09:43:07 -08:00
Lev Kokotov
aa796289bf
Query parser 3.0 ( #23 )
...
* Starting query parsing
* Query parser
* working config
* disable by default
* fix tsets
* introducing log crate; test for query router; comments
* typo
* fixes for banning
* added test for prepared stmt
2022-02-18 07:10:18 -08:00
Lev Kokotov
4c8a3987fe
Refactor query routing into its own module ( #22 )
...
* Refactor query routing into its own module
* commments; tests; dead code
* error message
* safer startup
* hm
* dont have to be public
* wow
* fix ci
* ok
* nl
* no more silent errors
2022-02-16 22:52:11 -08:00
Lev Kokotov
7b0ceefb96
Constants, comments, CI fixes, dead code clean-up ( #21 )
...
* constants
* server.rs docs
* client.rs comments
* dead code; comments
* comment
* query cancellation comments
* remove unnecessary cast
* move db setup up one step
* query cancellation test
* new line; good night
2022-02-15 22:45:45 -08:00
Lev Kokotov
bb84dcee64
Update README.md
2022-02-15 13:11:24 -08:00
Lev Kokotov
1c406e0fc6
Update README.md
2022-02-15 13:10:32 -08:00
Lev Kokotov
05b4cccb97
More statistics ( #20 )
...
* cleaner stats
* remove shard selection there
2022-02-15 08:18:01 -08:00
Lev Kokotov
659b1e00b8
bump statsd
2022-02-14 10:27:32 -08:00
Lev Kokotov
8e5e28a139
Some stats ( #19 )
2022-02-14 10:00:55 -08:00
Lev Kokotov
574ebe02b8
TODOs ( #18 )
2022-02-14 06:36:05 -08:00
Lev Kokotov
9c521f07c1
parse startup client parameters ( #16 )
2022-02-14 05:11:53 -08:00
Lev Kokotov
4aa9c3d3c7
Cleaner shutdown ( #12 )
...
* Cleaner shutdown
* mark as bad just in case although im pretty sure we dont need it
* server session duration
* test clean shutdown
* ah
2022-02-12 10:16:05 -08:00
Lev Kokotov
20ceb729a0
print session duration; connect to all servers when validating ( #11 )
2022-02-12 09:24:24 -08:00
Lev Kokotov
eb45d65110
extended protocol tests
2022-02-11 22:24:27 -08:00
Lev Kokotov
526b9eb666
Pass real server info to the client ( #10 )
2022-02-11 22:19:49 -08:00
Lev Kokotov
ab8573c94f
docker image ( #9 )
...
* docker image
* nl
2022-02-11 12:02:08 -08:00
Lev Kokotov
bc5b9e422f
Merge pull request #8 from levkk/default-role
...
add default server role; bug fix
2022-02-11 11:23:58 -08:00
Lev Kokotov
e8263430a3
nl
2022-02-11 11:21:32 -08:00
Lev Kokotov
0d369ab90a
add default server role; bug fix
2022-02-11 11:19:40 -08:00
Lev Kokotov
595e564216
Merge pull request #7 from levkk/once-cell-regex
...
once_cell is way faster
2022-02-10 17:08:01 -08:00
Lev Kokotov
06575eae7b
once_cell is way faster
2022-02-10 17:05:20 -08:00
Lev Kokotov
0bec14ba1c
wrong benchmark
2022-02-10 14:25:04 -08:00
Lev Kokotov
ee9f609d4e
bench setup
2022-02-10 14:13:47 -08:00
Lev Kokotov
19e9f26467
readme
2022-02-10 14:03:38 -08:00
Lev Kokotov
070c38ddc5
benchmarks
2022-02-10 14:02:24 -08:00
Lev Kokotov
1798065b76
max_workers = 4 = so much faster
2022-02-10 13:48:56 -08:00
Lev Kokotov
a3b910ea72
Merge pull request #6 from levkk/levkk-ci-tests
...
End-to-end CI tests
2022-02-10 11:23:10 -08:00
Lev Kokotov
b9b89db708
maybe were breaking the terminal?
2022-02-10 11:20:33 -08:00
Lev Kokotov
604af32b94
print whats going on
2022-02-10 11:16:08 -08:00
Lev Kokotov
39028282b9
hmm
2022-02-10 11:13:31 -08:00
Lev Kokotov
9d51fe8985
print whats going on
2022-02-10 11:11:56 -08:00
Lev Kokotov
12011be3ec
tests
2022-02-10 11:08:57 -08:00
Lev Kokotov
86386c7377
background
2022-02-10 10:59:45 -08:00
Lev Kokotov
66c5271453
sudo
2022-02-10 10:54:06 -08:00
Lev Kokotov
17aed5dcee
hmm
2022-02-10 10:53:15 -08:00
Lev Kokotov
89dc33f8aa
test ci
2022-02-10 10:50:19 -08:00
Lev Kokotov
c6ccc6b6ae
Merge pull request #5 from levkk/levkk-replica-primary
...
#4 Primary/replica selection
2022-02-10 10:40:53 -08:00
Lev Kokotov
495d6ce6c3
fmt
2022-02-10 10:38:06 -08:00
Lev Kokotov
883b6ee793
todo complete
2022-02-10 10:37:55 -08:00
Lev Kokotov
22c6f13dc7
removed atomic round-robin
2022-02-10 10:37:49 -08:00
Lev Kokotov
c1476d29da
config tests
2022-02-10 09:07:10 -08:00
Lev Kokotov
8209633e05
pool fixes
2022-02-10 08:54:06 -08:00
Lev Kokotov
daf120aeac
more tests
2022-02-10 08:35:25 -08:00
Lev Kokotov
6d5ab79ed3
readme
2022-02-09 21:25:17 -08:00
Lev Kokotov
fccfb40258
nl
2022-02-09 21:20:20 -08:00
Lev Kokotov
a9b2a41a9b
fixes to the banlist
2022-02-09 21:19:14 -08:00
Lev Kokotov
28c70d47b6
#1 Primary/replica selection
2022-02-09 20:02:20 -08:00
Lev Kokotov
00f2d39446
Merge branch 'main' of github.com:levkk/pgcat into main
2022-02-09 06:51:47 -08:00
Lev Kokotov
4c16ba3848
some comments
2022-02-09 06:51:31 -08:00
Lev Kokotov
d530f30def
Update README.md
2022-02-08 21:59:56 -08:00