fix: Ensure Postgres queries are committed or autocommit is used #5039
+12
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
We are using
psycopg3
in case we use Postgres for the online store. If you create connections withpsycopg3
using a context manager (i.e. awith ...
block), it will automatically commit the transaction once you exit the context. However, infeast
we are manually creating (and in the case of connection pools, putting) connections, so we need to ensure that we also explicitly callcommit
after firing queries to the database.The
commit
statements were missing for (async) read methods of thePostgresOnlineStore
and theteardown
method. For the read statements, this wasn't an issue as we just do aSELECT
. However, it does add warning statements and quite a bit of latency as transactions needed to be rolled back.Hence, for those read methods, I introduced an optional
autocommit
to the_get_conn
and_get_conn_async
methods that defaults toFalse
. We are setting it toTrue
in our read methods, so that prevents us from having to callcommit
and further optimizes the performance. In my local tests,online_read_async
performance improved by 20-30% when calling explicitly commit, and 40-70% when enabling autocommit (depending on feature view).Which issue(s) this PR fixes:
Fixes #5038