This is an automated email from the ASF dual-hosted git repository.
elek 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 10312fb HDDS-4983. Display key offset for each block in command key
info (#2051)
10312fb is described below
commit 10312fb675dc507301c0aff598db2e0afff2b955
Author: cchenax <[email protected]>
AuthorDate: Thu Apr 29 18:13:54 2021 +0800
HDDS-4983. Display key offset for each block in command key info (#2051)
---
.../org/apache/hadoop/ozone/client/OzoneKeyLocation.java | 15 +++++++++++++--
.../org/apache/hadoop/ozone/client/rpc/RpcClient.java | 13 ++++++++++---
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyLocation.java
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyLocation.java
index 0ff8ba7..7f1df7c 100644
---
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyLocation.java
+++
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/OzoneKeyLocation.java
@@ -39,16 +39,20 @@ public class OzoneKeyLocation {
* Offset of this key.
*/
private final long offset;
-
+ /**
+ * KeyOffset of this key.
+ */
+ private final long keyOffset;
/**
* Constructs OzoneKeyLocation.
*/
public OzoneKeyLocation(long containerID, long localID,
- long length, long offset) {
+ long length, long offset, long keyOffset) {
this.containerID = containerID;
this.localID = localID;
this.length = length;
this.offset = offset;
+ this.keyOffset = keyOffset;
}
/**
@@ -79,4 +83,11 @@ public class OzoneKeyLocation {
return offset;
}
+ /**
+ * Returns the KeyOffset of this Key.
+ */
+ public long getKeyOffset() {
+ return keyOffset;
+ }
+
}
diff --git
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
index f7f9cc7..718e254 100644
---
a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
+++
b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
@@ -85,6 +85,7 @@ import org.apache.hadoop.ozone.om.helpers.OmBucketInfo;
import org.apache.hadoop.ozone.om.helpers.OmDeleteKeys;
import org.apache.hadoop.ozone.om.helpers.OmKeyArgs;
import org.apache.hadoop.ozone.om.helpers.OmKeyInfo;
+import org.apache.hadoop.ozone.om.helpers.OmKeyLocationInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartUploadCompleteInfo;
import org.apache.hadoop.ozone.om.helpers.OmMultipartUploadCompleteList;
@@ -895,9 +896,15 @@ public class RpcClient implements ClientProtocol {
OmKeyInfo keyInfo = ozoneManagerClient.lookupKey(keyArgs);
List<OzoneKeyLocation> ozoneKeyLocations = new ArrayList<>();
- keyInfo.getLatestVersionLocations().getBlocksLatestVersionOnly().forEach(
- (a) -> ozoneKeyLocations.add(new OzoneKeyLocation(a.getContainerID(),
- a.getLocalID(), a.getLength(), a.getOffset())));
+ long lastKeyOffset = 0L;
+ List<OmKeyLocationInfo> omKeyLocationInfos = keyInfo
+ .getLatestVersionLocations().getBlocksLatestVersionOnly();
+ for (OmKeyLocationInfo info: omKeyLocationInfos) {
+ ozoneKeyLocations.add(new OzoneKeyLocation(info.getContainerID(),
+ info.getLocalID(), info.getLength(), info.getOffset(),
+ lastKeyOffset));
+ lastKeyOffset += info.getLength();
+ }
return new OzoneKeyDetails(keyInfo.getVolumeName(),
keyInfo.getBucketName(),
keyInfo.getKeyName(), keyInfo.getDataSize(), keyInfo.getCreationTime(),
keyInfo.getModificationTime(), ozoneKeyLocations, ReplicationType
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]