Removes RLock/RUnlock for updating metadata, since we already take a write lock to update metadata, this change removes reading of xl.meta as well as an additional lock, the performance gain should increase 3x theoretically for - PutObjectRetention - PutObjectLegalHold This optimization is mainly for Veeam like workloads that require a certain level of iops from these API calls, we were losing iops.
Showing the changes to cmd/api-errors.go (1 of 7 files). Show all
Unified · Split
| @@ -1956,6 +1956,8 @@ func toAPIErrorCode(ctx context.Context, err error) (apiErr APIErrorCode) { · 1955 unmodified lines | |||
| 1956 | apiErr = ErrNoSuchKey | 1956 | apiErr = ErrNoSuchKey |
| 1957 | case MethodNotAllowed: | 1957 | case MethodNotAllowed: |
| 1958 | apiErr = ErrMethodNotAllowed | 1958 | apiErr = ErrMethodNotAllowed |
| 1959 | case ObjectLocked: | ||
| 1960 | apiErr = ErrObjectLocked | ||
| 1959 | case InvalidVersionID: | 1961 | case InvalidVersionID: |
| 1960 | apiErr = ErrInvalidVersionID | 1962 | apiErr = ErrInvalidVersionID |
| 1961 | case VersionNotFound: | 1963 | case VersionNotFound: |