Remove transaction when listing projects #522
Merged
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:
Listing projects is a read only operation and therefore should not need the
@Transactional
Hibernate annotation.Having
@Transactional
annotation results in excessive locks being used when listing projects because of theINSERT
andDELETE
queries generated. As a result, when other operations such as job updates (which is alsoTransactional
) is running, users trying to list projects will often encounter GRPC errorTimeoutExceeded
because ListProjects will wait a long for the shared lock to be available.When there is at least one feature set registered, these are the generated queries when listing projects:
sql.with.transaction.log
sql.no.transaction.log
Without
@Transaction
noINSERT
andDELETE
queries are generated and hence it will not wait for lock to be available when listing projects.Which issue(s) this PR fixes:
Does this PR introduce a user-facing change?: