1. 15 Jan, 2021 2 commits
  2. 13 Jan, 2021 4 commits
  3. 12 Jan, 2021 5 commits
  4. 11 Jan, 2021 3 commits
  5. 10 Jan, 2021 1 commit
  6. 08 Jan, 2021 5 commits
  7. 07 Jan, 2021 3 commits
  8. 06 Jan, 2021 7 commits
    • Harshavardhana's avatar
    • Anis Elleuch's avatar
      heal: Reduce whitespace ticker to 5 seconds (#11234) · 6f781c5e
      Anis Elleuch authored
      30 seconds white spaces is long for some setups which time out when no
      read activity in short time, reduce the subnet health white space ticker
      to 5 seconds, since it has no cost at all.
      6f781c5e
    • Harshavardhana's avatar
      f8ca8597
    • Kanagaraj M's avatar
      b78521cd
    • Harshavardhana's avatar
      fix: use buffers only when necessary for io.Copy() (#11229) · 76e2713f
      Harshavardhana authored
      Use separate sync.Pool for writes/reads
      
      Avoid passing buffers for io.CopyBuffer()
      if the writer or reader implement io.WriteTo or io.ReadFrom
      respectively then its useless for sync.Pool to allocate
      buffers on its own since that will be completely ignored
      by the io.CopyBuffer Go implementation.
      
      Improve this wherever we see this to be optimal.
      
      This allows us to be more efficient on memory usage.
      ```
         385  // copyBuffer is the actual implementation of Copy and CopyBuffer.
         386  // if buf is nil, one is allocated.
         387  func copyBuffer(dst Writer, src Reader, buf []byte) (written int64, err error) {
         388  	// If the reader has a WriteTo method, use it to do the copy.
         389  	// Avoids an allocation and a copy.
         390  	if wt, ok := src.(WriterTo); ok {
         391  		return wt.WriteTo(dst)
         392  	}
         393  	// Similarly, if the writer has a ReadFrom method, use it to do the copy.
         394  	if rt, ok := dst.(ReaderFrom); ok {
         395  		return rt.ReadFrom(src)
         396  	}
      ```
      
      From readahead package
      ```
      // WriteTo writes data to w until there's no more data to write or when an error occurs.
      // The return value n is the number of bytes written.
      // Any error encountered during the write is also returned.
      func (a *reader) WriteTo(w io.Writer) (n int64, err error) {
      	if a.err != nil {
      		return 0, a.err
      	}
      	n = 0
      	for {
      		err = a.fill()
      		if err != nil {
      			return n, err
      		}
      		n2, err := w.Write(a.cur.buffer())
      		a.cur.inc(n2)
      		n += int64(n2)
      		if err != nil {
      			return n, err
      		}
      ```
      76e2713f
    • Harshavardhana's avatar
      b5d291ea
    • Klaus Post's avatar
      Allow Compression + encryption (#11103) · eb9172ee
      Klaus Post authored
      eb9172ee
  9. 05 Jan, 2021 7 commits
    • Klaus Post's avatar
      Add Optimization as a type of change (#11221) · 97a4c120
      Klaus Post authored
      * Add Optimization as a type of change. 
      * Make the checkmark affirmative instead of disaffirming
      97a4c120
    • Poorna Krishnamoorthy's avatar
      Pass deletemarker correctly to replicate opts (#11227) · 64bddf47
      Poorna Krishnamoorthy authored
      fixes: #11180
      64bddf47
    • Harshavardhana's avatar
      fix: healing buckets during pool expansion (#11224) · 4ed45ce5
      Harshavardhana authored
      fixes #11209
      4ed45ce5
    • Klaus Post's avatar
      tests: Fix occasional data race (#11223) · ad511b0e
      Klaus Post authored
      CI tests could trigger a data race.
      
      Servers are generally not expected to reinitialize, so tests could trigger data races when reinitializing and async operations are running.
      
      We add the option to safely reset global vars instead of overwriting.
      
      Fixes races like:
      
      ```
      WARNING: DATA RACE
      Read at 0x00000477ab18 by goroutine 1159:
        github.com/minio/minio/cmd.FileInfo.ToObjectInfo()
            /home/runner/work/minio/minio/cmd/erasure-metadata.go:105 +0x16d
        github.com/minio/minio/cmd.erasureObjects.putObject()
            /home/runner/work/minio/minio/cmd/erasure-object.go:748 +0x13f8
        github.com/minio/minio/cmd.(*erasureObjects).listPath.func3.2()
            /home/runner/work/minio/minio/cmd/metacache-set.go:682 +0x7d3
        github.com/minio/minio/cmd.newMetacacheBlockWriter.func1.2()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:777 +0x1c4
        github.com/minio/minio/cmd.newMetacacheBlockWriter.func1()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:806 +0x614
      
      Previous write at 0x00000477ab18 by goroutine 1269:
        [failed to restore the stack]
      
      Goroutine 1159 (running) created at:
        github.com/minio/minio/cmd.newMetacacheBlockWriter()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:760 +0x112
        github.com/minio/minio/cmd.(*erasureObjects).listPath.func3()
            /home/runner/work/minio/minio/cmd/metacache-set.go:672 +0xe22
      
      Goroutine 1269 (running) created at:
        testing.(*T).Run()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1095 +0x537
        testing.runTests.func1()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1339 +0xa6
        testing.tRunner()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1050 +0x1eb
        testing.runTests()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1337 +0x594
        testing.(*M).Run()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1252 +0x2ff
        github.com/minio/minio/cmd.TestMain()
            /home/runner/work/minio/minio/cmd/test-utils_test.go:120 +0x44e
        main.main()
            _testmain.go:1408 +0x223
      ==================
      ==================
      WARNING: DATA RACE
      Read at 0x00000477aae8 by goroutine 1159:
        github.com/minio/minio/cmd.(*BucketVersioningSys).Enabled()
            /home/runner/work/minio/minio/cmd/bucket-versioning.go:26 +0x52
        github.com/minio/minio/cmd.FileInfo.ToObjectInfo()
            /home/runner/work/minio/minio/cmd/erasure-metadata.go:105 +0x197
        github.com/minio/minio/cmd.erasureObjects.putObject()
            /home/runner/work/minio/minio/cmd/erasure-object.go:748 +0x13f8
        github.com/minio/minio/cmd.(*erasureObjects).listPath.func3.2()
            /home/runner/work/minio/minio/cmd/metacache-set.go:682 +0x7d3
        github.com/minio/minio/cmd.newMetacacheBlockWriter.func1.2()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:777 +0x1c4
        github.com/minio/minio/cmd.newMetacacheBlockWriter.func1()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:806 +0x614
      
      Previous write at 0x00000477aae8 by goroutine 1269:
        [failed to restore the stack]
      
      Goroutine 1159 (running) created at:
        github.com/minio/minio/cmd.newMetacacheBlockWriter()
            /home/runner/work/minio/minio/cmd/metacache-stream.go:760 +0x112
        github.com/minio/minio/cmd.(*erasureObjects).listPath.func3()
            /home/runner/work/minio/minio/cmd/metacache-set.go:672 +0xe22
      
      Goroutine 1269 (running) created at:
        testing.(*T).Run()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1095 +0x537
        testing.runTests.func1()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1339 +0xa6
        testing.tRunner()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1050 +0x1eb
        testing.runTests()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1337 +0x594
        testing.(*M).Run()
            /opt/hostedtoolcache/go/1.14.13/x64/src/testing/testing.go:1252 +0x2ff
        github.com/minio/minio/cmd.TestMain()
            /home/runner/work/minio/minio/cmd/test-utils_test.go:120 +0x44e
        main.main()
            _testmain.go:1408 +0x223
      ==================
      ```
      ad511b0e
    • Harshavardhana's avatar
    • Minio Trusted's avatar
    • Harshavardhana's avatar
      do not use large buffers if not necessary (#11220) · d0027c3c
      Harshavardhana authored
      without this change, there is a performance
      regression for small objects GETs, this makes
      the overall speed to go back to pre '59d363'
      commit days.
      d0027c3c
  10. 04 Jan, 2021 3 commits