This is an automated email from the ASF dual-hosted git repository.
Russole pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to refs/heads/master by this push:
new 9d36126a46d HDDS-16311. Avoid the O(n^2) part-number lookup in S3
multipart complete (#11138)
9d36126a46d is described below
commit 9d36126a46d6c6c38abb1d535ed2becdbd67b0f9
Author: KUAN-HAO HUANG <[email protected]>
AuthorDate: Mon Sep 7 22:36:18 2026 +0800
HDDS-16311. Avoid the O(n^2) part-number lookup in S3 multipart complete
(#11138)
---
.../om/request/s3/multipart/S3MultipartUploadCompleteRequest.java | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
index bc4c0c2c873..1eccefccb9a 100644
---
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
+++
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/request/s3/multipart/S3MultipartUploadCompleteRequest.java
@@ -26,9 +26,11 @@
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import java.util.function.BiFunction;
@@ -303,7 +305,7 @@ public OMClientResponse validateAndUpdateCache(OzoneManager
ozoneManager, Execut
}
// First Check for Invalid Part Order.
- List< Integer > partNumbers = new ArrayList<>();
+ Set<Integer> partNumbers = new HashSet<>();
int partsListSize = getPartsListSize(requestedVolume,
requestedBucket, keyName, ozoneKey, partNumbers, partsList);
@@ -620,7 +622,7 @@ private OmMultipartKeyInfo.PartKeyInfoMap getPartKeyInfoMap(
private int getPartsListSize(String requestedVolume,
String requestedBucket, String keyName, String ozoneKey,
- List<Integer> partNumbers,
+ Set<Integer> partNumbers,
List<OzoneManagerProtocolProtos.Part> partsList) throws OMException {
int prevPartNumber = partsList.get(0).getPartNumber();
int partsListSize = partsList.size();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]