INNER CODE UNIT · Go
srv
bhope/hedge · benchmark/simulate/main.go:103
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
serverHits.Add(1)
d := sampleLatency()
select {
case <-time.After(d):
w.WriteHeader(http.StatusOK)
case <-r.Context().Done():
}
}))
defer srv.Close()
// Estimate RPS: concurrency workers each taking avgLatency per request.
avgLatencyMs := baseMeanMs*(1-stragglerP) + baseMeanMs*stragglerMul*stragglerP
estimatedRPS := float64(concurrency) * 1000.0 / avgLatencyMs
var adaptiveStats *hedge.Stats
adaptiveTransport := hedge.New(http.DefaultTransport,
hedge.WithEstimatedRPS(estimatedRPS),