From 19e0395df0e22c353b6c30da17b370ea228d9484 Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 10:30:05 +0530 Subject: [PATCH 1/8] HDDS-14659. Add new proto message for lightweight MutlipartPartInfo --- .../src/main/proto/OmClientProtocol.proto | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 3c0cf9509e9..62126a4fc66 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1718,6 +1718,10 @@ message MultipartKeyInfo { optional uint64 updateID = 7; optional uint64 parentID = 8; optional hadoop.hdds.ECReplicationConfig ecReplicationConfig = 9; + optional uint32 schemaVersion = 10; + optional string volumeName = 11; + optional string bucketName = 12; + optional string keyName = 13; } message PartKeyInfo { @@ -1726,6 +1730,19 @@ message PartKeyInfo { required KeyInfo partKeyInfo = 3; } +message MultipartPartInfo { + required string partName = 1; + required uint32 partNumber = 2; + repeated KeyLocationList keyLocationList = 6; + required uint64 dataSize = 7; + required uint64 modificationTime = 8; + required uint64 objectID = 9; + required uint64 updateID = 10; + repeated hadoop.hdds.KeyValue metadata = 11; + optional FileEncryptionInfoProto fileEncryptionInfo = 12; + optional FileChecksumProto fileChecksum = 13; +} + message MultipartCommitUploadPartRequest { required KeyArgs keyArgs = 1; required uint64 clientID = 2; From de42e6945791df582cea51abbc13719783d50e5f Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 12:56:40 +0530 Subject: [PATCH 2/8] Address review comments --- .../src/main/proto/OmClientProtocol.proto | 13 ------------- .../src/main/proto/OmStorageProtocol.proto | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 62126a4fc66..c19ad215e84 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1730,19 +1730,6 @@ message PartKeyInfo { required KeyInfo partKeyInfo = 3; } -message MultipartPartInfo { - required string partName = 1; - required uint32 partNumber = 2; - repeated KeyLocationList keyLocationList = 6; - required uint64 dataSize = 7; - required uint64 modificationTime = 8; - required uint64 objectID = 9; - required uint64 updateID = 10; - repeated hadoop.hdds.KeyValue metadata = 11; - optional FileEncryptionInfoProto fileEncryptionInfo = 12; - optional FileChecksumProto fileChecksum = 13; -} - message MultipartCommitUploadPartRequest { required KeyArgs keyArgs = 1; required uint64 clientID = 2; diff --git a/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto b/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto index 2381e18d539..e478f1e3d8d 100644 --- a/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto +++ b/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto @@ -30,6 +30,7 @@ option java_generate_equals_and_hash = true; package hadoop.ozone; import "hdds.proto"; +import "OmClientProtocol.proto"; message OzoneAclInfo { enum OzoneAclType { @@ -78,4 +79,17 @@ message FileSizeCountKeyProto { message SnapDiffObjectInfo { optional uint64 objectID = 1; optional string keyName = 2; +} + +message MultipartPartInfo { + required string partName = 1; + required uint32 partNumber = 2; + repeated KeyLocationList keyLocationList = 6; + required uint64 dataSize = 7; + required uint64 modificationTime = 8; + required uint64 objectID = 9; + required uint64 updateID = 10; + required string eTag = 11; + optional FileEncryptionInfoProto fileEncryptionInfo = 12; + optional FileChecksumProto fileChecksum = 13; } \ No newline at end of file From e7575573483e03a3dd9cfc435f74560381f990eb Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 14:15:07 +0530 Subject: [PATCH 3/8] Revert MultipartPartInfo to interface-client --- .../src/main/proto/OmClientProtocol.proto | 13 +++++++++++++ .../src/main/proto/OmStorageProtocol.proto | 14 -------------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index c19ad215e84..febfde038ec 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1730,6 +1730,19 @@ message PartKeyInfo { required KeyInfo partKeyInfo = 3; } +message MultipartPartInfo { + required string partName = 1; + required uint32 partNumber = 2; + repeated KeyLocationList keyLocationList = 6; + required uint64 dataSize = 7; + required uint64 modificationTime = 8; + required uint64 objectID = 9; + required uint64 updateID = 10; + required string eTag = 11; + optional FileEncryptionInfoProto fileEncryptionInfo = 12; + optional FileChecksumProto fileChecksum = 13; +} + message MultipartCommitUploadPartRequest { required KeyArgs keyArgs = 1; required uint64 clientID = 2; diff --git a/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto b/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto index e478f1e3d8d..2381e18d539 100644 --- a/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto +++ b/hadoop-ozone/interface-storage/src/main/proto/OmStorageProtocol.proto @@ -30,7 +30,6 @@ option java_generate_equals_and_hash = true; package hadoop.ozone; import "hdds.proto"; -import "OmClientProtocol.proto"; message OzoneAclInfo { enum OzoneAclType { @@ -79,17 +78,4 @@ message FileSizeCountKeyProto { message SnapDiffObjectInfo { optional uint64 objectID = 1; optional string keyName = 2; -} - -message MultipartPartInfo { - required string partName = 1; - required uint32 partNumber = 2; - repeated KeyLocationList keyLocationList = 6; - required uint64 dataSize = 7; - required uint64 modificationTime = 8; - required uint64 objectID = 9; - required uint64 updateID = 10; - required string eTag = 11; - optional FileEncryptionInfoProto fileEncryptionInfo = 12; - optional FileChecksumProto fileChecksum = 13; } \ No newline at end of file From c0d4c14e7045b862c0d05cd7fa77466c8b759151 Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 15:07:08 +0530 Subject: [PATCH 4/8] Set updateID, objectID, modificationTime as optional --- .../src/main/proto/OmClientProtocol.proto | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index febfde038ec..9be54fbbd85 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1735,10 +1735,10 @@ message MultipartPartInfo { required uint32 partNumber = 2; repeated KeyLocationList keyLocationList = 6; required uint64 dataSize = 7; - required uint64 modificationTime = 8; - required uint64 objectID = 9; - required uint64 updateID = 10; - required string eTag = 11; + required string eTag = 8; + optional uint64 modificationTime = 9; + optional uint64 objectID = 10; + optional uint64 updateID = 11; optional FileEncryptionInfoProto fileEncryptionInfo = 12; optional FileChecksumProto fileChecksum = 13; } From 719f3f503eb05f0757f5d38c61652b4e6a5a78ec Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 15:09:12 +0530 Subject: [PATCH 5/8] Change some fields to optional --- .../interface-client/src/main/proto/OmClientProtocol.proto | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 9be54fbbd85..871c89046b7 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1733,9 +1733,9 @@ message PartKeyInfo { message MultipartPartInfo { required string partName = 1; required uint32 partNumber = 2; - repeated KeyLocationList keyLocationList = 6; - required uint64 dataSize = 7; - required string eTag = 8; + repeated KeyLocationList keyLocationList = 6; + required string eTag = 7; + optional uint64 dataSize = 8; optional uint64 modificationTime = 9; optional uint64 objectID = 10; optional uint64 updateID = 11; From f4390fa5ecfaa5094f4ec7b011e43ac1a7fbb8ef Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Thu, 5 Mar 2026 15:20:16 +0530 Subject: [PATCH 6/8] Set all fields to optional --- .../src/main/proto/OmClientProtocol.proto | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 871c89046b7..6963bbbfbd5 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1731,16 +1731,16 @@ message PartKeyInfo { } message MultipartPartInfo { - required string partName = 1; - required uint32 partNumber = 2; - repeated KeyLocationList keyLocationList = 6; - required string eTag = 7; - optional uint64 dataSize = 8; - optional uint64 modificationTime = 9; - optional uint64 objectID = 10; - optional uint64 updateID = 11; - optional FileEncryptionInfoProto fileEncryptionInfo = 12; - optional FileChecksumProto fileChecksum = 13; + optional string partName = 1; + optional uint32 partNumber = 2; + optional string eTag = 3; + optional KeyLocationList keyLocationList = 4; + optional uint64 dataSize = 5; + optional uint64 modificationTime = 6; + optional uint64 objectID = 7; + optional uint64 updateID = 8; + optional FileEncryptionInfoProto fileEncryptionInfo = 9; + optional FileChecksumProto fileChecksum = 10; } message MultipartCommitUploadPartRequest { From cf0d008beac4bea8606ec16279ce44da6563a3bd Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Fri, 6 Mar 2026 14:48:39 +0530 Subject: [PATCH 7/8] Deprecate partKeyInfoList --- .../interface-client/src/main/proto/OmClientProtocol.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 6963bbbfbd5..092615ef626 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1713,7 +1713,7 @@ message MultipartKeyInfo { required uint64 creationTime = 2; required hadoop.hdds.ReplicationType type = 3; optional hadoop.hdds.ReplicationFactor factor = 4; - repeated PartKeyInfo partKeyInfoList = 5; + repeated PartKeyInfo partKeyInfoList = 5 [deprecated = true]; optional uint64 objectID = 6; optional uint64 updateID = 7; optional uint64 parentID = 8; From 8f1388f9d3ea6f70fc0f86cf815fd5bb8efc3cb9 Mon Sep 17 00:00:00 2001 From: Abhishek Pal Date: Fri, 6 Mar 2026 18:35:55 +0530 Subject: [PATCH 8/8] Add owner and ACL information in MultipartKeyInfo --- .../interface-client/src/main/proto/OmClientProtocol.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto index 092615ef626..94399e942c2 100644 --- a/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto +++ b/hadoop-ozone/interface-client/src/main/proto/OmClientProtocol.proto @@ -1722,6 +1722,8 @@ message MultipartKeyInfo { optional string volumeName = 11; optional string bucketName = 12; optional string keyName = 13; + optional string ownerName = 14; + repeated OzoneAclInfo acls = 15; } message PartKeyInfo {