Skip to content

Commit ae99e55

Browse files
Li0kyuhao-suchenzl25xx01cyxZENOTME
authored
feat(storage): basic compactor scheduler policy (risingwavelabs#6986)
Co-authored-by: Yuhao Su <[email protected]> Co-authored-by: Dylan <[email protected]> Co-authored-by: Yuanxin Cao <[email protected]> Co-authored-by: ZENOTME <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: congyi wang <[email protected]>
1 parent eddb2fc commit ae99e55

31 files changed

+641
-171
lines changed

Cargo.lock

Lines changed: 4 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dashboard/proto/gen/hummock.ts

Lines changed: 118 additions & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

grafana/risingwave-dashboard.dashboard.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -520,10 +520,16 @@ def section_cluster_node(panels):
520520
[
521521
panels.target(
522522
f"sum(rate({metric('process_cpu_seconds_total')}[$__rate_interval])) by (job,instance)",
523-
"{{job}} @ {{instance}}",
524-
)
523+
"cpu - {{job}} @ {{instance}}",
524+
),
525+
526+
panels.target(
527+
f"sum(rate({metric('process_cpu_seconds_total')}[$__rate_interval])) by (job,instance) / avg({metric('process_cpu_core_num')}) by (job,instance)",
528+
"cpu usage -{{job}} @ {{instance}}",
529+
),
525530
],
526531
),
532+
527533
panels.timeseries_count(
528534
"Meta Cluster",
529535
"",
@@ -562,6 +568,16 @@ def section_compaction(outer_panels):
562568
),
563569
],
564570
),
571+
panels.timeseries_count(
572+
"scale compactor core count",
573+
"compactor core resource need to scale out",
574+
[
575+
panels.target(
576+
f"sum({metric('storage_compactor_suggest_core_count')})",
577+
"suggest-core-count"
578+
),
579+
],
580+
),
565581
panels.timeseries_count(
566582
"Compaction Success & Failure Count",
567583
"num of compactions from each level to next level",
@@ -1564,7 +1580,6 @@ def section_batch_exchange(outer_panels):
15641580
),
15651581
]
15661582

1567-
15681583
def section_frontend(outer_panels):
15691584
panels = outer_panels.sub_panel()
15701585
return [

grafana/risingwave-dashboard.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

proto/hummock.proto

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -358,18 +358,25 @@ message CompactTaskProgress {
358358
uint32 num_ssts_uploaded = 3;
359359
}
360360

361-
message ReportCompactionTaskProgressRequest {
361+
// The measurement of the workload on a compactor to determine whether it is idle.
362+
message CompactorWorkload {
363+
uint32 cpu = 1;
364+
}
365+
366+
message CompactorHeartbeatRequest {
362367
uint32 context_id = 1;
363368
repeated CompactTaskProgress progress = 2;
369+
CompactorWorkload workload = 3;
364370
}
365371

366-
message ReportCompactionTaskProgressResponse {
372+
message CompactorHeartbeatResponse {
367373
common.Status status = 1;
368374
}
369375

370376
message SubscribeCompactTasksRequest {
371377
uint32 context_id = 1;
372378
uint64 max_concurrent_task_number = 2;
379+
uint32 cpu_core_num = 3;
373380
}
374381

375382
message ValidationTask {
@@ -563,7 +570,7 @@ service HummockManagerService {
563570
rpc TriggerCompactionDeterministic(TriggerCompactionDeterministicRequest) returns (TriggerCompactionDeterministicResponse);
564571
rpc DisableCommitEpoch(DisableCommitEpochRequest) returns (DisableCommitEpochResponse);
565572
rpc ReportCompactionTasks(ReportCompactionTasksRequest) returns (ReportCompactionTasksResponse);
566-
rpc ReportCompactionTaskProgress(ReportCompactionTaskProgressRequest) returns (ReportCompactionTaskProgressResponse);
573+
rpc CompactorHeartbeat(CompactorHeartbeatRequest) returns (CompactorHeartbeatResponse);
567574
rpc PinSnapshot(PinSnapshotRequest) returns (PinSnapshotResponse);
568575
rpc PinSpecificSnapshot(PinSpecificSnapshotRequest) returns (PinSnapshotResponse);
569576
rpc GetEpoch(GetEpochRequest) returns (GetEpochResponse);
@@ -581,6 +588,7 @@ service HummockManagerService {
581588
rpc RiseCtlUpdateCompactionConfig(RiseCtlUpdateCompactionConfigRequest) returns (RiseCtlUpdateCompactionConfigResponse);
582589
rpc InitMetadataForReplay(InitMetadataForReplayRequest) returns (InitMetadataForReplayResponse);
583590
rpc SetCompactorRuntimeConfig(SetCompactorRuntimeConfigRequest) returns (SetCompactorRuntimeConfigResponse);
591+
rpc GetScaleCompactor(GetScaleCompactorRequest) returns (GetScaleCompactorResponse);
584592
rpc PinVersion(PinVersionRequest) returns (PinVersionResponse);
585593
rpc SplitCompactionGroup(SplitCompactionGroupRequest) returns (SplitCompactionGroupResponse);
586594
}
@@ -619,6 +627,15 @@ message HummockVersionStats {
619627
map<uint32, TableStats> table_stats = 2;
620628
}
621629

630+
message GetScaleCompactorRequest {}
631+
632+
message GetScaleCompactorResponse {
633+
uint64 suggest_cores = 1;
634+
uint64 running_cores = 2;
635+
uint64 total_cores = 3;
636+
uint64 waiting_compaction_bytes = 4;
637+
}
638+
622639
message WriteLimits {
623640
message WriteLimit {
624641
repeated uint32 table_ids = 1;

0 commit comments

Comments
 (0)