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