From cec174f14fde25c72e858756681ee13d16cd95d5 Mon Sep 17 00:00:00 2001 From: Garet Halliday <me@garet.holiday> Date: Wed, 13 Sep 2023 18:22:40 -0500 Subject: [PATCH] fix txn mode, split pairing time from active time in metrics --- lib/auth/credentials/cleartext.go | 2 +- lib/gat/metrics/state.go | 2 ++ lib/gat/pool/flow.go | 11 +++++++++-- lib/gat/pool/pools/transaction/apply.go | 1 + test/tester_test.go | 2 +- 5 files changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/auth/credentials/cleartext.go b/lib/auth/credentials/cleartext.go index 5fe0b7f5..45821e07 100644 --- a/lib/auth/credentials/cleartext.go +++ b/lib/auth/credentials/cleartext.go @@ -118,7 +118,7 @@ func MakeCleartextScramVerifier(username, password string, hashGenerator scram.H } kf := scram.KeyFactors{ - Iters: 1, + Iters: 4096, } stored := client.GetStoredCredentials(kf) diff --git a/lib/gat/metrics/state.go b/lib/gat/metrics/state.go index 4d6653da..0c6a13cc 100644 --- a/lib/gat/metrics/state.go +++ b/lib/gat/metrics/state.go @@ -6,6 +6,7 @@ const ( ConnStateActive ConnState = iota ConnStateIdle ConnStateAwaitingServer + ConnStatePairing ConnStateRunningResetQuery ConnStateCount @@ -15,6 +16,7 @@ var connStateString = [ConnStateCount]string{ ConnStateActive: "active", ConnStateIdle: "idle", ConnStateAwaitingServer: "awaiting server", + ConnStatePairing: "pairing", ConnStateRunningResetQuery: "running reset query", } diff --git a/lib/gat/pool/flow.go b/lib/gat/pool/flow.go index b5fb57e0..d051e5a9 100644 --- a/lib/gat/pool/flow.go +++ b/lib/gat/pool/flow.go @@ -10,8 +10,15 @@ import ( ) func Pair(options Options, client *Client, server *Server) (clientErr, serverErr error) { - client.SetState(metrics.ConnStateActive, server.GetID()) - server.SetState(metrics.ConnStateActive, client.GetID()) + defer func() { + client.SetState(metrics.ConnStateActive, server.GetID()) + server.SetState(metrics.ConnStateActive, client.GetID()) + }() + + if options.ParameterStatusSync != ParameterStatusSyncNone || options.ExtendedQuerySync { + client.SetState(metrics.ConnStatePairing, server.GetID()) + server.SetState(metrics.ConnStatePairing, client.GetID()) + } switch options.ParameterStatusSync { case ParameterStatusSyncDynamic: diff --git a/lib/gat/pool/pools/transaction/apply.go b/lib/gat/pool/pools/transaction/apply.go index a431fe94..637585b0 100644 --- a/lib/gat/pool/pools/transaction/apply.go +++ b/lib/gat/pool/pools/transaction/apply.go @@ -6,5 +6,6 @@ func Apply(options pool.Options) pool.Options { options.Pooler = new(Pooler) options.ParameterStatusSync = pool.ParameterStatusSyncDynamic options.ExtendedQuerySync = true + options.ReleaseAfterTransaction = true return options } diff --git a/test/tester_test.go b/test/tester_test.go index d5eeb843..fe26506a 100644 --- a/test/tester_test.go +++ b/test/tester_test.go @@ -24,7 +24,7 @@ func TestTester(t *testing.T) { }, Peer: dialer.Net{ Network: "tcp", - Address: "localhost:5432", + Address: "localhost:6432", AcceptOptions: backends.AcceptOptions{ Credentials: credentials.Cleartext{ Username: "postgres", -- GitLab