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

[Enhancement] Limit the Number of Delete Rowsets in Compaction to Prevent Version Accumulation Errors #41756

Open
2 of 3 tasks
Yukang-Lian opened this issue Oct 12, 2024 · 0 comments

Comments

@Yukang-Lian
Copy link
Collaborator

Search before asking

  • I had searched in the issues and found no similar issues.

Description

In the current compaction process, delete rowsets must be merged during the base compaction phase. If there are too many delete rowsets, the system must wait for the base compaction to merge them. Since base compaction runs infrequently, an excessive number of delete rowsets can delay compaction, resulting in too many versions waiting for compaction and eventually causing errors.

Solution

  1. Implement a check during every delete operation to verify if the tablet already contains too many delete rowsets.
  2. The threshold for the number of delete rowsets should be configurable via a setting in config.
  3. If the number of delete rowsets exceeds this threshold, return an error to prevent further accumulation.

This solution aims to ensure that the compaction process is performed in a timely manner and prevent excessive versions from causing errors due to delayed compaction.

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant