From 64574211c60a4693661000c08ca5d09703b6cb0c Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Sun, 20 Feb 2022 22:49:30 -0800 Subject: [PATCH] Update CONTRIBUTING.md --- CONTRIBUTING.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1471400..b1d8b37 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,19 +3,17 @@ Thank you for contributing! Just a few tips here: 1. `cargo fmt` your code before opening up a PR -2. Run the "test suite" (i.e. PgBench) to make sure everything still works. +2. Run the test suite (e.g. `pgbench`) to make sure everything still works. The tests are in `.circleci/run_tests.sh`. +3. Performance is important, make sure there are no regressions in your branch vs. `main`. Happy hacking! ## TODOs -A non-exhaustive list of things that would be useful to implement. +A non-exhaustive list of things that would be useful to implement: #### Client authentication MD5 is probably sufficient, but maybe others too. -#### Statistics -Same as PgBouncer, e.g. client wait, transactions, timings, etc. I'm thinking we can use `mpsc` here ([docs](https://tokio.rs/tokio/tutorial/channels)), with clients sending stats and a task collecting and aggregating them. This should avoid atomics/mutexes. Caveat is the task should make sure not to crash, so the channels don't get backed up. - #### Admin Admin database for stats collection and pooler administration. PgBouncer gives us a nice example on how to do that, specifically how to implement `RowDescription` and `DataRow` messages, [example here](https://github.com/pgbouncer/pgbouncer/blob/4f9ced8e63d317a6ff45c8b0efa876b32161f6db/src/admin.c#L813).