Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reduce lock requirements during recompression #7747

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

antekresic
Copy link
Contributor

@antekresic antekresic commented Feb 19, 2025

Recompression used to take heavy Exclusive lock on chunk while it recompressed data. This blocked a lot of concurrent operations like inserts, deletes, and updates. By reducing the locking requirement to ShareUpdateExclusive, we enable more concurrent operations on the chunk and hypertable while relying on tuple locking. Recompression can still end up taking an Exclusive lock at the end in order to change the chunk status but it does this conditionally, meaning it won't take it unless it can do it immediately.

@antekresic antekresic self-assigned this Feb 19, 2025
@antekresic antekresic added this to the v2.19.0 milestone Feb 19, 2025
@antekresic antekresic force-pushed the antekresic/tuple_recompression branch from bd5cba5 to f475e47 Compare February 19, 2025 12:46
Recompression used to take heavy Exclusive lock on chunk while it
recompressed data. This blocked a lot of concurrent operations like
inserts, deletes, and updates. By reducing the locking requirement
to ShareUpdateExclusive, we enable more concurrent operations on
the chunk and hypertable while relying on tuple locking. Recompression
can still end up taking an Exclusive lock at the end in order to
change the chunk status but it does this conditionally, meaning
it won't take it unless it can do it immediatelly.
@antekresic antekresic force-pushed the antekresic/tuple_recompression branch from f475e47 to cc3135e Compare February 19, 2025 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant