Skip to content

Commit

Permalink
feat(storage): basic compactor scheduler policy (#6986)
Browse files Browse the repository at this point in the history
Co-authored-by: Yuhao Su <31772373+yuhao-su@users.noreply.github.com>
Co-authored-by: Dylan <chenzl25@mail2.sysu.edu.cn>
Co-authored-by: Yuanxin Cao <60498509+xx01cyx@users.noreply.github.com>
Co-authored-by: ZENOTME <43447882+ZENOTME@users.noreply.github.com>
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Co-authored-by: congyi wang <58715567+wcy-fdu@users.noreply.github.com>
  • Loading branch information
7 people committed Mar 20, 2023
1 parent eddb2fc commit ae99e55
Show file tree
Hide file tree
Showing 31 changed files with 641 additions and 171 deletions.
5 changes: 4 additions & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

138 changes: 118 additions & 20 deletions dashboard/proto/gen/hummock.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 18 additions & 3 deletions grafana/risingwave-dashboard.dashboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -520,10 +520,16 @@ def section_cluster_node(panels):
[
panels.target(
f"sum(rate({metric('process_cpu_seconds_total')}[$__rate_interval])) by (job,instance)",
"{{job}} @ {{instance}}",
)
"cpu - {{job}} @ {{instance}}",
),

panels.target(
f"sum(rate({metric('process_cpu_seconds_total')}[$__rate_interval])) by (job,instance) / avg({metric('process_cpu_core_num')}) by (job,instance)",
"cpu usage -{{job}} @ {{instance}}",
),
],
),

panels.timeseries_count(
"Meta Cluster",
"",
Expand Down Expand Up @@ -562,6 +568,16 @@ def section_compaction(outer_panels):
),
],
),
panels.timeseries_count(
"scale compactor core count",
"compactor core resource need to scale out",
[
panels.target(
f"sum({metric('storage_compactor_suggest_core_count')})",
"suggest-core-count"
),
],
),
panels.timeseries_count(
"Compaction Success & Failure Count",
"num of compactions from each level to next level",
Expand Down Expand Up @@ -1564,7 +1580,6 @@ def section_batch_exchange(outer_panels):
),
]


def section_frontend(outer_panels):
panels = outer_panels.sub_panel()
return [
Expand Down
2 changes: 1 addition & 1 deletion grafana/risingwave-dashboard.json

Large diffs are not rendered by default.

23 changes: 20 additions & 3 deletions proto/hummock.proto
Original file line number Diff line number Diff line change
Expand Up @@ -358,18 +358,25 @@ message CompactTaskProgress {
uint32 num_ssts_uploaded = 3;
}

message ReportCompactionTaskProgressRequest {
// The measurement of the workload on a compactor to determine whether it is idle.
message CompactorWorkload {
uint32 cpu = 1;
}

message CompactorHeartbeatRequest {
uint32 context_id = 1;
repeated CompactTaskProgress progress = 2;
CompactorWorkload workload = 3;
}

message ReportCompactionTaskProgressResponse {
message CompactorHeartbeatResponse {
common.Status status = 1;
}

message SubscribeCompactTasksRequest {
uint32 context_id = 1;
uint64 max_concurrent_task_number = 2;
uint32 cpu_core_num = 3;
}

message ValidationTask {
Expand Down Expand Up @@ -563,7 +570,7 @@ service HummockManagerService {
rpc TriggerCompactionDeterministic(TriggerCompactionDeterministicRequest) returns (TriggerCompactionDeterministicResponse);
rpc DisableCommitEpoch(DisableCommitEpochRequest) returns (DisableCommitEpochResponse);
rpc ReportCompactionTasks(ReportCompactionTasksRequest) returns (ReportCompactionTasksResponse);
rpc ReportCompactionTaskProgress(ReportCompactionTaskProgressRequest) returns (ReportCompactionTaskProgressResponse);
rpc CompactorHeartbeat(CompactorHeartbeatRequest) returns (CompactorHeartbeatResponse);
rpc PinSnapshot(PinSnapshotRequest) returns (PinSnapshotResponse);
rpc PinSpecificSnapshot(PinSpecificSnapshotRequest) returns (PinSnapshotResponse);
rpc GetEpoch(GetEpochRequest) returns (GetEpochResponse);
Expand All @@ -581,6 +588,7 @@ service HummockManagerService {
rpc RiseCtlUpdateCompactionConfig(RiseCtlUpdateCompactionConfigRequest) returns (RiseCtlUpdateCompactionConfigResponse);
rpc InitMetadataForReplay(InitMetadataForReplayRequest) returns (InitMetadataForReplayResponse);
rpc SetCompactorRuntimeConfig(SetCompactorRuntimeConfigRequest) returns (SetCompactorRuntimeConfigResponse);
rpc GetScaleCompactor(GetScaleCompactorRequest) returns (GetScaleCompactorResponse);
rpc PinVersion(PinVersionRequest) returns (PinVersionResponse);
rpc SplitCompactionGroup(SplitCompactionGroupRequest) returns (SplitCompactionGroupResponse);
}
Expand Down Expand Up @@ -619,6 +627,15 @@ message HummockVersionStats {
map<uint32, TableStats> table_stats = 2;
}

message GetScaleCompactorRequest {}

message GetScaleCompactorResponse {
uint64 suggest_cores = 1;
uint64 running_cores = 2;
uint64 total_cores = 3;
uint64 waiting_compaction_bytes = 4;
}

message WriteLimits {
message WriteLimit {
repeated uint32 table_ids = 1;
Expand Down
Loading

0 comments on commit ae99e55

Please sign in to comment.