minio/pkg/dsync
Harshavardhana febe9cc26a
fix: avoid timer leaks in dsync/lsync (#9781)
At a customer setup with lots of concurrent calls
it can be observed that in newRetryTimer there
were lots of tiny alloations which are not
relinquished upon retries, in this codepath
we were only interested in re-using the timer
and use it wisely for each locker.

```
(pprof) top
Showing nodes accounting for 8.68TB, 97.02% of 8.95TB total
Dropped 1198 nodes (cum <= 0.04TB)
Showing top 10 nodes out of 79
      flat  flat%   sum%        cum   cum%
    5.95TB 66.50% 66.50%     5.95TB 66.50%  time.NewTimer
    1.16TB 13.02% 79.51%     1.16TB 13.02%  github.com/ncw/directio.AlignedBlock
    0.67TB  7.53% 87.04%     0.70TB  7.78%  github.com/minio/minio/cmd.xlObjects.putObject
    0.21TB  2.36% 89.40%     0.21TB  2.36%  github.com/minio/minio/cmd.(*posix).Walk
    0.19TB  2.08% 91.49%     0.27TB  2.99%  os.statNolog
    0.14TB  1.59% 93.08%     0.14TB  1.60%  os.(*File).readdirnames
    0.10TB  1.09% 94.17%     0.11TB  1.25%  github.com/minio/minio/cmd.readDirN
    0.10TB  1.07% 95.23%     0.10TB  1.07%  syscall.ByteSliceFromString
    0.09TB  1.03% 96.27%     0.09TB  1.03%  strings.(*Builder).grow
    0.07TB  0.75% 97.02%     0.07TB  0.75%  path.(*lazybuf).append
```
2020-06-08 11:28:40 -07:00
..
.gitignore Support MinIO to be deployed on more than 32 nodes (#8492) 2019-11-13 12:17:45 -08:00
drwmutex.go fix: avoid timer leaks in dsync/lsync (#9781) 2020-06-08 11:28:40 -07:00
drwmutex_test.go enable full linter across the codebase (#9620) 2020-05-18 09:59:45 -07:00
dsync-server_test.go fix: Speed up multi-object delete by taking bulk locks (#8974) 2020-02-21 11:29:57 +05:30
dsync.go Implement bucket expansion (#8509) 2019-11-19 17:42:27 -08:00
dsync_test.go Reduce Mutex test runs (#9345) 2020-04-14 18:39:03 -07:00
rpc-client-impl_test.go Add lock expiry handler to expire state locks (#8562) 2019-11-25 16:39:43 -08:00
rpc-client-interface.go fix: Speed up multi-object delete by taking bulk locks (#8974) 2020-02-21 11:29:57 +05:30