minio / dsync

A distributed sync package.
Apache License 2.0
400 stars 41 forks source link

Fix and control go-routine creation avoiding memory build-up. #46

Closed harshavardhana closed 7 years ago

harshavardhana commented 7 years ago

Without these changes running for example:

perftest -bucket dicom -c 3000 -h 147.75.193.31:9000 -m 2 5MiB

Leads to minio server reaching OOM and being killed as reported in https://github.com/minio/minio/issues/4139

With this PR running the same example never crashes the server rather also throttles down the request. Especially focussed on

Passes all the tests

codecov-io commented 7 years ago

Codecov Report

Merging #46 into master will decrease coverage by 0.06%. The diff coverage is 77.61%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #46      +/-   ##
==========================================
- Coverage   85.71%   85.65%   -0.07%     
==========================================
  Files           2        3       +1     
  Lines         203      230      +27     
==========================================
+ Hits          174      197      +23     
- Misses         23       27       +4     
  Partials        6        6
Impacted Files Coverage Δ
drwmutex.go 84.93% <66.66%> (+0.61%) :arrow_up:
retry.go 82.6% <82.6%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update e444a2e...b9f8bb7. Read the comment docs.