From 8288d41b313126ce7a9da7b548801a58da98b7ae Mon Sep 17 00:00:00 2001 From: Kishor Patil Date: Tue, 6 Nov 2018 16:58:31 -0500 Subject: [PATCH 1/2] Fix RAS worker count estimation --- .../src/main/java/org/apache/storm/utils/ServerUtils.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java index 37d9c67c2a5..6f65bf75176 100644 --- a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java +++ b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java @@ -691,8 +691,10 @@ public static boolean isRAS(Map conf) { public static int getEstimatedWorkerCountForRASTopo(Map topoConf, StormTopology topology) throws InvalidTopologyException { - return (int) Math.ceil(getEstimatedTotalHeapMemoryRequiredByTopo(topoConf, topology) / - ObjectReader.getDouble(topoConf.get(Config.WORKER_HEAP_MEMORY_MB))); + Double defaultWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.WORKER_HEAP_MEMORY_MB)); + Double topologyWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.TOPOLOGY_WORKER_MAX_HEAP_SIZE_MB)); + Double maxHeapSize = topologyWorkerMaxHeap != null && topologyWorkerMaxHeap != 0 ? topologyWorkerMaxHeap : defaultWorkerMaxHeap; + return (int) Math.ceil(getEstimatedTotalHeapMemoryRequiredByTopo(topoConf, topology) / maxHeapSize); } public static double getEstimatedTotalHeapMemoryRequiredByTopo(Map topoConf, StormTopology topology) From 2ba69e2e4e56bc8207c629d64b1abbe22dccc457 Mon Sep 17 00:00:00 2001 From: Kishor Patil Date: Wed, 7 Nov 2018 11:35:35 -0500 Subject: [PATCH 2/2] Avoid possible illegal Argument --- .../src/main/java/org/apache/storm/utils/ServerUtils.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java index 6f65bf75176..615aead12ab 100644 --- a/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java +++ b/storm-server/src/main/java/org/apache/storm/utils/ServerUtils.java @@ -691,10 +691,9 @@ public static boolean isRAS(Map conf) { public static int getEstimatedWorkerCountForRASTopo(Map topoConf, StormTopology topology) throws InvalidTopologyException { - Double defaultWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.WORKER_HEAP_MEMORY_MB)); - Double topologyWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.TOPOLOGY_WORKER_MAX_HEAP_SIZE_MB)); - Double maxHeapSize = topologyWorkerMaxHeap != null && topologyWorkerMaxHeap != 0 ? topologyWorkerMaxHeap : defaultWorkerMaxHeap; - return (int) Math.ceil(getEstimatedTotalHeapMemoryRequiredByTopo(topoConf, topology) / maxHeapSize); + Double defaultWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.WORKER_HEAP_MEMORY_MB), 768d); + Double topologyWorkerMaxHeap = ObjectReader.getDouble(topoConf.get(Config.TOPOLOGY_WORKER_MAX_HEAP_SIZE_MB), defaultWorkerMaxHeap); + return (int) Math.ceil(getEstimatedTotalHeapMemoryRequiredByTopo(topoConf, topology) / topologyWorkerMaxHeap); } public static double getEstimatedTotalHeapMemoryRequiredByTopo(Map topoConf, StormTopology topology)