You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ozone.apache.org by sw...@apache.org on 2022/03/15 18:28:00 UTC
[ozone] branch master updated: HDDS-6439. Minor perf optimization in the version enums (#3189)
This is an automated email from the ASF dual-hosted git repository.
swagle 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 5a1babf HDDS-6439. Minor perf optimization in the version enums (#3189)
5a1babf is described below
commit 5a1babfd455d6e595c4c9eec4a90df137a0c3ba1
Author: Doroszlai, Attila <64...@users.noreply.github.com>
AuthorDate: Tue Mar 15 19:27:36 2022 +0100
HDDS-6439. Minor perf optimization in the version enums (#3189)
---
.../java/org/apache/hadoop/hdds/DatanodeVersion.java | 16 +++++++++++-----
.../main/java/org/apache/hadoop/ozone/ClientVersion.java | 16 +++++++++++-----
.../org/apache/hadoop/ozone/OzoneManagerVersion.java | 16 +++++++++++-----
3 files changed, 33 insertions(+), 15 deletions(-)
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/DatanodeVersion.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/DatanodeVersion.java
index a9d0c0e..30f9df5 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/DatanodeVersion.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/DatanodeVersion.java
@@ -17,6 +17,12 @@
*/
package org.apache.hadoop.hdds;
+import java.util.Arrays;
+import java.util.Map;
+
+import static java.util.function.Function.identity;
+import static java.util.stream.Collectors.toMap;
+
/**
* Versioning for datanode.
*/
@@ -32,6 +38,10 @@ public enum DatanodeVersion implements ComponentVersion {
public static final DatanodeVersion CURRENT = latest();
public static final int CURRENT_VERSION = CURRENT.version;
+ private static final Map<Integer, DatanodeVersion> BY_PROTO_VALUE =
+ Arrays.stream(values())
+ .collect(toMap(DatanodeVersion::toProtoValue, identity()));
+
private final int version;
private final String description;
@@ -51,11 +61,7 @@ public enum DatanodeVersion implements ComponentVersion {
}
public static DatanodeVersion fromProtoValue(int value) {
- DatanodeVersion[] versions = DatanodeVersion.values();
- if (value >= versions.length || value < 0) {
- return FUTURE_VERSION;
- }
- return versions[value];
+ return BY_PROTO_VALUE.getOrDefault(value, FUTURE_VERSION);
}
private static DatanodeVersion latest() {
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/ClientVersion.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/ClientVersion.java
index e915cab..ec00ca2 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/ClientVersion.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/ozone/ClientVersion.java
@@ -19,6 +19,12 @@ package org.apache.hadoop.ozone;
import org.apache.hadoop.hdds.ComponentVersion;
+import java.util.Arrays;
+import java.util.Map;
+
+import static java.util.function.Function.identity;
+import static java.util.stream.Collectors.toMap;
+
/**
* Versioning for protocol clients.
*/
@@ -35,6 +41,10 @@ public enum ClientVersion implements ComponentVersion {
public static final ClientVersion CURRENT = latest();
public static final int CURRENT_VERSION = CURRENT.version;
+ private static final Map<Integer, ClientVersion> BY_PROTO_VALUE =
+ Arrays.stream(values())
+ .collect(toMap(ClientVersion::toProtoValue, identity()));
+
private final int version;
private final String description;
@@ -54,11 +64,7 @@ public enum ClientVersion implements ComponentVersion {
}
public static ClientVersion fromProtoValue(int value) {
- ClientVersion[] versions = ClientVersion.values();
- if (value >= versions.length || value < 0) {
- return FUTURE_VERSION;
- }
- return versions[value];
+ return BY_PROTO_VALUE.getOrDefault(value, FUTURE_VERSION);
}
private static ClientVersion latest() {
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 93fb34f..060c865 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
@@ -19,6 +19,12 @@ package org.apache.hadoop.ozone;
import org.apache.hadoop.hdds.ComponentVersion;
+import java.util.Arrays;
+import java.util.Map;
+
+import static java.util.function.Function.identity;
+import static java.util.stream.Collectors.toMap;
+
/**
* Versioning for Ozone Manager.
*/
@@ -31,6 +37,10 @@ public enum OzoneManagerVersion implements ComponentVersion {
public static final OzoneManagerVersion CURRENT = latest();
public static final int CURRENT_VERSION = CURRENT.version;
+ private static final Map<Integer, OzoneManagerVersion> BY_PROTO_VALUE =
+ Arrays.stream(values())
+ .collect(toMap(OzoneManagerVersion::toProtoValue, identity()));
+
private final int version;
private final String description;
@@ -50,11 +60,7 @@ public enum OzoneManagerVersion implements ComponentVersion {
}
public static OzoneManagerVersion fromProtoValue(int value) {
- OzoneManagerVersion[] versions = OzoneManagerVersion.values();
- if (value >= versions.length || value < 0) {
- return FUTURE_VERSION;
- }
- return versions[value];
+ return BY_PROTO_VALUE.getOrDefault(value, FUTURE_VERSION);
}
private static OzoneManagerVersion latest() {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@ozone.apache.org
For additional commands, e-mail: commits-help@ozone.apache.org