You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by ag...@apache.org on 2017/05/24 17:26:46 UTC
[02/41] ignite git commit: Results printout for IO latency test
Results printout for IO latency test
(cherry picked from commit 096404d)
Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/992c9767
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/992c9767
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/992c9767
Branch: refs/heads/ignite-5267
Commit: 992c9767e3e5a1c6d1871cf54d4b901f96a7cb84
Parents: 64c5584
Author: Yakov Zhdanov <yz...@gridgain.com>
Authored: Fri May 19 20:33:36 2017 +0300
Committer: Yakov Zhdanov <yz...@gridgain.com>
Committed: Mon May 22 11:13:58 2017 +0300
----------------------------------------------------------------------
.../managers/communication/GridIoManager.java | 30 ++++++++++++++++++--
1 file changed, 27 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ignite/blob/992c9767/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
----------------------------------------------------------------------
diff --git a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
index 800f3cc..147f94d 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/GridIoManager.java
@@ -64,6 +64,7 @@ import org.apache.ignite.internal.managers.eventstorage.GridLocalEventListener;
import org.apache.ignite.internal.processors.platform.message.PlatformMessageFilter;
import org.apache.ignite.internal.processors.pool.PoolProcessor;
import org.apache.ignite.internal.processors.timeout.GridTimeoutObject;
+import org.apache.ignite.internal.util.GridAtomicLong;
import org.apache.ignite.internal.util.GridBoundedConcurrentLinkedHashSet;
import org.apache.ignite.internal.util.StripedCompositeReadWriteLock;
import org.apache.ignite.internal.util.future.GridFinishedFuture;
@@ -469,6 +470,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
final long sleepDuration = 5000;
final byte[] payLoad = new byte[payLoadSize];
final Map<UUID, long[]>[] res = new Map[threads];
+ final ConcurrentMap<UUID, GridAtomicLong> maxLatencies = new ConcurrentHashMap8<>();
boolean failed = true;
@@ -542,7 +544,7 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
}
}
- printIoTestResults(maxLatency / (1000 * rangesCnt), res0);
+ printIoTestResults(maxLatency / (1000 * rangesCnt), res0, maxLatencies);
}
catch (InterruptedException | BrokenBarrierException e) {
U.error(log, "IO test failed.", e);
@@ -593,8 +595,21 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
if (latencies == null)
res0.put(node.id(), latencies = new long[rangesCnt + 1]);
- if (latency >= maxLatency)
+ if (latency >= maxLatency) {
latencies[rangesCnt]++; // Timed out.
+
+ GridAtomicLong maxLatency = maxLatencies.get(node.id());
+
+ if (maxLatency == null) {
+ GridAtomicLong old = maxLatencies.putIfAbsent(node.id(),
+ maxLatency = new GridAtomicLong());
+
+ if (old != null)
+ maxLatency = old;
+ }
+
+ maxLatency.setIfGreater(latency);
+ }
else {
int idx = (int)Math.floor((1.0 * latency) / ((1.0 * maxLatency) / rangesCnt));
@@ -628,8 +643,13 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
/**
* @param binLatencyMcs Bin latency in microseconds.
* @param res Resulting map.
+ * @param maxLatencies Max latency for each node.
*/
- private void printIoTestResults(long binLatencyMcs, Map<UUID, long[]> res) {
+ private void printIoTestResults(
+ long binLatencyMcs,
+ Map<UUID, long[]> res,
+ ConcurrentMap<UUID, GridAtomicLong> maxLatencies
+ ) {
StringBuilder b = new StringBuilder(U.nl())
.append("IO test results (round-trip count per each latency bin) " +
"[binLatency=" + binLatencyMcs + "mcs]")
@@ -667,6 +687,10 @@ public class GridIoManager extends GridManagerAdapter<CommunicationSpi<Serializa
nodeRes[i], (100.0 * nodeRes[i]) / sum,
curSum, (100.0 * curSum) / sum));
}
+
+ GridAtomicLong maxLatency = maxLatencies.get(e.getKey());
+
+ b.append("Max latency (ns): ").append(maxLatency != null ? maxLatency.get() : -1).append(U.nl());
}
if (log.isInfoEnabled())