This is an automated email from the ASF dual-hosted git repository.

bharat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hadoop-ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 69a7588  HDDS-3742. Improve OM performance with 5.29% by avoid 
stream.collect (#1030)
69a7588 is described below

commit 69a7588aa2c25e18029c5e48bd4895770c9c6f9c
Author: runzhiwang <[email protected]>
AuthorDate: Sat Jun 6 12:30:42 2020 +0800

    HDDS-3742. Improve OM performance with 5.29% by avoid stream.collect (#1030)
---
 .../apache/hadoop/ozone/om/helpers/ServiceInfo.java   | 19 ++++++++++---------
 .../ozone/protocolPB/OzoneManagerRequestHandler.java  | 13 ++++++++++---
 2 files changed, 20 insertions(+), 12 deletions(-)

diff --git 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/ServiceInfo.java
 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/ServiceInfo.java
index 77bd803..71d977c 100644
--- 
a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/ServiceInfo.java
+++ 
b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/helpers/ServiceInfo.java
@@ -23,7 +23,6 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.stream.Collectors;
 
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeType;
 import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
@@ -143,16 +142,18 @@ public final class ServiceInfo {
   public OzoneManagerProtocolProtos.ServiceInfo getProtobuf() {
     OzoneManagerProtocolProtos.ServiceInfo.Builder builder =
         OzoneManagerProtocolProtos.ServiceInfo.newBuilder();
+
+    List<ServicePort> servicePorts = new ArrayList<>();
+    for (Map.Entry<ServicePort.Type, Integer>
+        entry : ports.entrySet()) {
+      servicePorts.add(ServicePort.newBuilder()
+          .setType(entry.getKey())
+          .setValue(entry.getValue()).build());
+    }
+
     builder.setNodeType(nodeType)
         .setHostname(hostname)
-        .addAllServicePorts(
-            ports.entrySet().stream()
-                .map(
-                    entry ->
-                        ServicePort.newBuilder()
-                            .setType(entry.getKey())
-                            .setValue(entry.getValue()).build())
-                .collect(Collectors.toList()));
+        .addAllServicePorts(servicePorts);
     if (nodeType == NodeType.OM && omRoleInfo != null) {
       builder.setOmRole(omRoleInfo);
     }
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
index e7b0265..3183aa1 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/protocolPB/OzoneManagerRequestHandler.java
@@ -45,6 +45,7 @@ import 
org.apache.hadoop.ozone.om.ratis.utils.OzoneManagerRatisUtils;
 import org.apache.hadoop.ozone.om.request.OMClientRequest;
 import org.apache.hadoop.ozone.om.request.util.OmResponseUtil;
 import org.apache.hadoop.ozone.om.response.OMClientResponse;
+import org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.AllocateBlockRequest;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.AllocateBlockResponse;
 import 
org.apache.hadoop.ozone.protocol.proto.OzoneManagerProtocolProtos.CheckVolumeAccessRequest;
@@ -448,9 +449,15 @@ public class OzoneManagerRequestHandler implements 
RequestHandler {
     ServiceListResponse.Builder resp = ServiceListResponse.newBuilder();
 
     ServiceInfoEx serviceInfoEx = impl.getServiceInfo();
-    resp.addAllServiceInfo(serviceInfoEx.getServiceInfoList().stream()
-        .map(ServiceInfo::getProtobuf)
-        .collect(Collectors.toList()));
+
+    List<OzoneManagerProtocolProtos.ServiceInfo> serviceInfoProtos =
+        new ArrayList<>();
+    List<ServiceInfo> serviceInfos = serviceInfoEx.getServiceInfoList();
+    for (ServiceInfo info : serviceInfos) {
+      serviceInfoProtos.add(info.getProtobuf());
+    }
+
+    resp.addAllServiceInfo(serviceInfoProtos);
     if (serviceInfoEx.getCaCertificate() != null) {
       resp.setCaCertificate(serviceInfoEx.getCaCertificate());
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to