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

Tracking issue for compaction offload #1480

Open
1 of 5 tasks
Rachelint opened this issue Feb 2, 2024 · 0 comments
Open
1 of 5 tasks

Tracking issue for compaction offload #1480

Rachelint opened this issue Feb 2, 2024 · 0 comments
Labels
feature New feature or request

Comments

@Rachelint
Copy link
Contributor

Rachelint commented Feb 2, 2024

Describe This Problem

We found in production that the speed of sst compaction is unable to keep up with the speed of sst generation, leading to poor query performance... However we are unable give more resource to compaction to solve the problem because query/write is more important than compaction in the same node.
It is really hard to do a trade-off about resource allocation among query, write and compaction in lsm model... We want to compact the generated small ssts as fast as possible, but we can't tolerate its influence to query/write. And finally I think offload the compaction to the seperated nodes may be the key for it.

Proposal

For supporting compaction offload, we need:

  • Special node supporting remote compaction service

    • Impl compaction service
  • Horaedb node supports submitting the real compaction node to remote

    • Refactor the compaction process and define necessary traits
    • Impl remote mode compactor based on traits above
  • Horaemeta supports managing the special compaction nodes

    • Impl the ability to manage the compaction nodes
    • Expose the api for horaedb node to get the proper remote compaction ndoe

Additional Context

No response

@Rachelint Rachelint added the feature New feature or request label Feb 2, 2024
Rachelint added a commit that referenced this issue Feb 27, 2024
## Rationale
The first step to support compaction offload #1480 

## Detailed Changes
- Extract the common compaction logic to `CompactionExecutor`.
- Define the `CompactionRunner` trait to support remote compaction
after.
- Define the `Compactor` to integration the new compaction logics, and
insert them into main process.

## Test Plan
Test manually.
zealchen pushed a commit to zealchen/incubator-horaedb that referenced this issue Apr 9, 2024
)

## Rationale
The first step to support compaction offload apache#1480 

## Detailed Changes
- Extract the common compaction logic to `CompactionExecutor`.
- Define the `CompactionRunner` trait to support remote compaction
after.
- Define the `Compactor` to integration the new compaction logics, and
insert them into main process.

## Test Plan
Test manually.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant