mirror of
https://github.com/minio/minio.git
synced 2024-12-24 06:05:55 -05:00
Use actual size for buffer selection (#11687)
For compressed inputs, this will be -1, but the object may be small.
This commit is contained in:
parent
f14cc6c943
commit
c3217bd6eb
@ -452,7 +452,14 @@ func (er erasureObjects) PutObjectPart(ctx context.Context, bucket, object, uplo
|
|||||||
switch size := data.Size(); {
|
switch size := data.Size(); {
|
||||||
case size == 0:
|
case size == 0:
|
||||||
buffer = make([]byte, 1) // Allocate atleast a byte to reach EOF
|
buffer = make([]byte, 1) // Allocate atleast a byte to reach EOF
|
||||||
case size == -1 || size >= fi.Erasure.BlockSize:
|
case size == -1:
|
||||||
|
if size := data.ActualSize(); size > 0 && size < fi.Erasure.BlockSize {
|
||||||
|
buffer = make([]byte, data.ActualSize()+256, data.ActualSize()*2+512)
|
||||||
|
} else {
|
||||||
|
buffer = er.bp.Get()
|
||||||
|
defer er.bp.Put(buffer)
|
||||||
|
}
|
||||||
|
case size >= fi.Erasure.BlockSize:
|
||||||
buffer = er.bp.Get()
|
buffer = er.bp.Get()
|
||||||
defer er.bp.Put(buffer)
|
defer er.bp.Put(buffer)
|
||||||
case size < fi.Erasure.BlockSize:
|
case size < fi.Erasure.BlockSize:
|
||||||
|
@ -683,7 +683,14 @@ func (er erasureObjects) putObject(ctx context.Context, bucket string, object st
|
|||||||
switch size := data.Size(); {
|
switch size := data.Size(); {
|
||||||
case size == 0:
|
case size == 0:
|
||||||
buffer = make([]byte, 1) // Allocate atleast a byte to reach EOF
|
buffer = make([]byte, 1) // Allocate atleast a byte to reach EOF
|
||||||
case size == -1 || size >= fi.Erasure.BlockSize:
|
case size == -1:
|
||||||
|
if size := data.ActualSize(); size > 0 && size < fi.Erasure.BlockSize {
|
||||||
|
buffer = make([]byte, data.ActualSize()+256, data.ActualSize()*2+512)
|
||||||
|
} else {
|
||||||
|
buffer = er.bp.Get()
|
||||||
|
defer er.bp.Put(buffer)
|
||||||
|
}
|
||||||
|
case size >= fi.Erasure.BlockSize:
|
||||||
buffer = er.bp.Get()
|
buffer = er.bp.Get()
|
||||||
defer er.bp.Put(buffer)
|
defer er.bp.Put(buffer)
|
||||||
case size < fi.Erasure.BlockSize:
|
case size < fi.Erasure.BlockSize:
|
||||||
|
Loading…
Reference in New Issue
Block a user