Measure perf impact of per destination contention in TransportFailureRateHealthPolicy
- Dominant language
- C#
- Stars
- 9.6k
- Forks
- 933
- Avg merge
- 12d 18h
- Merged PRs (30d)
- 2
Description
Currently, `TransportFailureRateHealthPolicy` locks on a destination to update the history of failed and succeeded requests. It's believed to become a bottleneck in scenarios with a high destination's RPS. We need to measure the performance to more precisely estimate potential negative impact. If it is proved to be substantial, we should consider ways of changing the algorithm to reduce that contention.
Configuration example that can be use for benchmarking:
```JSON
"Clusters": {
"cluster1": {
"HealthCheck": {
"Passive": {
"Enabled": "true",
"Policy": "TransportFailureRate",
"ReactivationPeriod": "00:02:00"
}
},
"Metadata": {
"TransportFailureRateHealthPolicy.RateLimit": "0.5"
},
"Destinations": {
"cluster1/destination1": {
"Address": "https://localhost:10000/"
}
}
}
```
We need to measure and compare throughput in two scenarios
- `HealthCheck/Passive` is **enabled**
- `HealthCheck/Passive` is **disabled**
Contributor guide
Assessment
This issue has not been assessed yet.