Skip to content

Compaction: Stabilize picker by refactoring the picker's restriction logic #11990

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

Closed
Li0k opened this issue Aug 31, 2023 · 2 comments
Closed
Assignees
Labels
type/feature Type: New feature.
Milestone

Comments

@Li0k
Copy link
Contributor

Li0k commented Aug 31, 2023

In hummock, we define different compaction policies for different levels of compaction to achieve the goals of eliminating sub_levels, limiting write amplification, and so on. For example:

  • Tier Compaction
  • Base Level Compaction
  • Other Level Compaction

However, different policies have different constraints. In the current implementation, the restriction logic is implemented in separate pickers. This code is not conducive to maintenance and subsequent development. Moreover, when the compaction does not behave as expected, or even falls into a write stop, adjusting the configuration will be a difficult task.

In order to facilitate code iteration and configuration adjustment, this refactor will be divided into two parts.

  1. Extract the restriction codes of different pickers. (refactor(storage): seperate validator logic from picker #11984)
    2. Make picker limits switchable for easy adjustment
@Li0k Li0k added the type/feature Type: New feature. label Aug 31, 2023
@Li0k Li0k self-assigned this Aug 31, 2023
@github-actions github-actions bot added this to the release-1.2 milestone Aug 31, 2023
@Li0k Li0k assigned Li0k and unassigned Li0k Aug 31, 2023
@Li0k Li0k modified the milestones: release-1.2, release-1.3 Sep 11, 2023
@hzxa21
Copy link
Collaborator

hzxa21 commented Oct 10, 2023

Any updates?

@Li0k
Copy link
Contributor Author

Li0k commented Oct 12, 2023

Any updates?

There are no plans. Let's close this issue first.

@Li0k Li0k closed this as completed Oct 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/feature Type: New feature.
Projects
None yet
Development

No branches or pull requests

2 participants