This is an automated email from the ASF dual-hosted git repository.
adoroszlai pushed a commit to branch HDDS-10656-atomic-key-overwrite
in repository https://gitbox.apache.org/repos/asf/ozone.git
The following commit(s) were added to
refs/heads/HDDS-10656-atomic-key-overwrite by this push:
new 70df306f7d HDDS-10865. Check OM version before making rewrite key
request (#6689)
70df306f7d is described below
commit 70df306f7d12ed3ef4ed352e7c77e50a3e83aa14
Author: Doroszlai, Attila <[email protected]>
AuthorDate: Fri May 17 12:51:25 2024 +0200
HDDS-10865. Check OM version before making rewrite key request (#6689)
---
.../src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java | 2 ++
.../src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java | 4 ++++
2 files changed, 6 insertions(+)
diff --git
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
index 985c238fd7..f5031a1265 100644
---
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
+++
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/OzoneManagerVersion.java
@@ -40,6 +40,8 @@ public enum OzoneManagerVersion implements ComponentVersion {
LIGHTWEIGHT_LIST_KEYS(4, "OzoneManager version that supports lightweight"
+ " listKeys API."),
+ ATOMIC_REWRITE_KEY(5, "OzoneManager version that supports rewriting key as
atomic operation"),
+
FUTURE_VERSION(-1, "Used internally in the client when the server side is "
+ " newer and an unknown server version has arrived to the client.");
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 000a194150..45f6e238e3 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
@@ -1416,6 +1416,10 @@ public class RpcClient implements ClientProtocol {
public OzoneOutputStream rewriteKey(String volumeName, String bucketName,
String keyName,
long size, long existingKeyGeneration, ReplicationConfig
replicationConfig,
Map<String, String> metadata) throws IOException {
+ if (omVersion.compareTo(OzoneManagerVersion.ATOMIC_REWRITE_KEY) < 0) {
+ throw new IOException("OzoneManager does not support atomic key
rewrite.");
+ }
+
createKeyPreChecks(volumeName, bucketName, keyName, replicationConfig);
String ownerName = getRealUserInfo().getShortUserName();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]