envoyproxy / envoyproxy/envoy

Feature: Queue manager for circuit breaker queue

Open
#9,606 5 comments 0 reactions 0 assignees View on GitHub
design proposal no stalebot
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
437

Description

Currently, circuit breakers enqueue pending requests. A queue manager can be added to manage this queue. For example, algorithms like Adaptive LIFO with CoDel (see links below) have been shown to work well in large systems.

A possible configuration is below.

```
circuit_breakers:
thresholds:
- max_connections: 10
max_pending_requests: 20
max_requests: 10
max_retries: 10
queue_manager: adaptive_lifo_with_codel
config:
queue_size_threshold: 10
low_timeout: 100
high_timeout: 500
```

Links:
[Adaptive LIFO with Codel ACM talk (video)](https://queue.acm.org/detail.cfm?id=2839461)
[Summary of talk](https://blog.acolyer.org/2015/11/19/fail-at-scale-controlling-queue-delay/)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.