fix: simplify obd how we calculate transferred bytes (#10617)

master
Harshavardhana 4 years ago committed by GitHub
parent e0cb814f3f
commit f28d02b7f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 32
      cmd/peer-rest-client.go

@ -114,19 +114,6 @@ func (n networkOverloadedErr) Error() string {
return "network overloaded"
}
type progressReader struct {
r io.Reader
progressChan chan int64
}
func (p *progressReader) Read(b []byte) (int, error) {
n, err := p.r.Read(b)
if n >= 0 {
p.progressChan <- int64(n)
}
return n, err
}
type nullReader struct{}
func (r *nullReader) Read(b []byte) (int, error) {
@ -141,15 +128,7 @@ func (client *peerRESTClient) doNetOBDTest(ctx context.Context, dataSize int64,
buflimiter := make(chan struct{}, threadCount)
errChan := make(chan error, threadCount)
totalTransferred := int64(0)
transferChan := make(chan int64, threadCount)
defer close(transferChan)
go func() {
for v := range transferChan {
atomic.AddInt64(&totalTransferred, v)
}
}()
var totalTransferred int64
// ensure enough samples to obtain normal distribution
maxSamples := int(10 * threadCount)
@ -188,16 +167,14 @@ func (client *peerRESTClient) doNetOBDTest(ctx context.Context, dataSize int64,
}
go func(i int) {
progress := &progressReader{
r: io.LimitReader(&nullReader{}, dataSize),
progressChan: transferChan,
}
start := time.Now()
before := atomic.LoadInt64(&totalTransferred)
ctx, cancel := context.WithTimeout(innerCtx, 10*time.Second)
defer cancel()
progress := io.LimitReader(&nullReader{}, dataSize)
// Turn off healthCheckFn for OBD tests to cater for higher load on the peers.
clnt := newPeerRESTClient(client.host)
clnt.restClient.HealthCheckFn = nil
@ -216,8 +193,9 @@ func (client *peerRESTClient) doNetOBDTest(ctx context.Context, dataSize int64,
}
http.DrainBody(respBody)
after := atomic.LoadInt64(&totalTransferred)
finish()
atomic.AddInt64(&totalTransferred, dataSize)
after := atomic.LoadInt64(&totalTransferred)
end := time.Now()
latency := end.Sub(start).Seconds()

Loading…
Cancel
Save