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 self-adaptive rate limit in self protection #7167

Open
2 of 12 tasks
CabinfeverB opened this issue Sep 27, 2023 · 0 comments
Open
2 of 12 tasks

Tracking issue for self-adaptive rate limit in self protection #7167

CabinfeverB opened this issue Sep 27, 2023 · 0 comments
Assignees
Labels
type/development The issue belongs to a development tasks

Comments

@CabinfeverB
Copy link
Member

CabinfeverB commented Sep 27, 2023

Development Task

Summary:
Refer to #4373.
We have implemented gRPC rate-limit and HTTP rate-limit by manually setting the rate-limiting parameters.
But it's hard to set a speed limit. Because the carrying capacity of different clusters is different, and the carrying capacity of different interfaces in different loads is also different.

So we should provide a mechanism to set rate limit adaptively.

Here are some references for applying the tcp BBR algorithm to system traffic limiting scenarios.
https://github.com/alibaba/Sentinel/wiki/%E7%B3%BB%E7%BB%9F%E8%87%AA%E9%80%82%E5%BA%94%E9%99%90%E6%B5%81
https://github.com/go-kratos/aegis/blob/main/ratelimit/bbr/bbr.go

Goal

  1. Adaptive rate limiting for a single API: For the hot path API, when the processing speed of an API reaches the bottleneck, speed-limiting measures are taken to prevent the OOM/CPU overload caused by request accumulation.
  2. Adaptive service degradation. Carding API priority, when achieving the bottleneck of high priority API drop low priority API with tighter speed limit configurations to improve overall availability PD.

Tasks:

mics

@CabinfeverB CabinfeverB added the type/development The issue belongs to a development tasks label Sep 27, 2023
@CabinfeverB CabinfeverB self-assigned this Sep 27, 2023
This was referenced Oct 19, 2023
@rleungx rleungx pinned this issue Oct 19, 2023
ti-chi-bot bot added a commit that referenced this issue Oct 20, 2023
ref #7167, close #7230

Signed-off-by: Cabinfever_B <cabinfeveroier@gmail.com>

Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
ti-chi-bot bot added a commit that referenced this issue Dec 13, 2023
ref #7167

Signed-off-by: Cabinfever_B <cabinfeveroier@gmail.com>

Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
ti-chi-bot bot pushed a commit that referenced this issue Dec 28, 2023
ref #7167

Signed-off-by: Cabinfever_B <cabinfeveroier@gmail.com>
pingandb pushed a commit to pingandb/pd that referenced this issue Jan 18, 2024
ref tikv#7167

Signed-off-by: Cabinfever_B <cabinfeveroier@gmail.com>
Signed-off-by: pingandb <songge102@pingan.com.cn>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/development The issue belongs to a development tasks
Projects
None yet
Development

No branches or pull requests

1 participant