* posix: Avoid using getAllVolumeInfo() in getVolumeDir()
This is necessary compromise to avoid significant slowness this
causes under load. The compromise is also substantial in a way
so that to avoid penalizing common cases v/s special cases.
For buckets with Caps on Unixes, we filter buckets based on the
latest anyways, so this is completely acceptable.
* XL/fs: Change the usage of verification of existance of buckets.
Optimize calling isBucketExists, it is not needed for all call
paths. isBucketExist should be called only for calls which use
temporary volume location for operations, for the rest rely on
the errors returned on their original call path.
Remove usage of filtering as well across all volume names.
This patch brings in the removal of debug logging altogether, instead
we bring in the functionality of being able to trace the errors properly
pointing back to the origination of the problem.
To enable tracing you need to enable "MINIO_TRACE" set to "1" or "true"
environment variable which would print back traces whenever there is an
error which is unhandled or at the handler layer.
By default this tracing is turned off and only user level logging is
provided.
- PutObject()
- PutObjectPart()
- NewMultipartUpload()
- AbortMultipartUpload()
Implementations across both FS and XL object layer
share common implementation.
* XL/Multipart: Use json.NewDecoder to decode read stream.
* XL/Multipart: fix recursive and non-recursive listing.
* XL/Multipart: Create object part with md5sum later using RenameFile.
* XL/Multipart: ListObjectParts should list parts in order.
previously: uploadID.10.md5sum < uploadID.2.md5sum
fix : uploadID.00010.md5sum > uploadID.00002.md5sum
* XL/Multipart: Keep the size of each part in the multipart metadata file to avoid stats on the parts.
* XL/Multipart: fix listing bug which was showing size of the multipart uploaded objects as 0.