/** * @param sndNodeId Sender node ID. * @param msg Message. */ private void processMetricsUpdateMessage(UUID sndNodeId, ClusterMetricsUpdateMessage msg) { byte[] nodeMetrics = msg.nodeMetrics(); if (nodeMetrics != null) { assert msg.allNodesMetrics() == null; allNodesMetrics.put(sndNodeId, nodeMetrics); updateNodeMetrics(ctx.discovery().discoCache(), sndNodeId, nodeMetrics); } else { Map<UUID, byte[]> allNodesMetrics = msg.allNodesMetrics(); assert allNodesMetrics != null; DiscoCache discoCache = ctx.discovery().discoCache(); for (Map.Entry<UUID, byte[]> e : allNodesMetrics.entrySet()) { if (!ctx.localNodeId().equals(e.getKey())) updateNodeMetrics(discoCache, e.getKey(), e.getValue()); } } }
/** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); if (!writer.isHeaderWritten()) { if (!writer.writeHeader(directType(), fieldsCount())) return false; writer.onHeaderWritten(); } switch (writer.state()) { case 0: if (!writer.writeMap("allNodesMetrics", allNodesMetrics, MessageCollectionItemType.UUID, MessageCollectionItemType.BYTE_ARR)) return false; writer.incrementState(); case 1: if (!writer.writeByteArray("nodeMetrics", nodeMetrics)) return false; writer.incrementState(); } return true; }
ClusterMetricsUpdateMessage msg = new ClusterMetricsUpdateMessage(new HashMap<>(allNodesMetrics)); byte[] metricsBytes = U.zip(U.marshal(ctx.config().getMarshaller(), metrics)); ClusterMetricsUpdateMessage msg = new ClusterMetricsUpdateMessage(metricsBytes);
msg = new ClusterMetricsUpdateMessage();
/** {@inheritDoc} */ @Override public boolean writeTo(ByteBuffer buf, MessageWriter writer) { writer.setBuffer(buf); if (!writer.isHeaderWritten()) { if (!writer.writeHeader(directType(), fieldsCount())) return false; writer.onHeaderWritten(); } switch (writer.state()) { case 0: if (!writer.writeMap("allNodesMetrics", allNodesMetrics, MessageCollectionItemType.UUID, MessageCollectionItemType.BYTE_ARR)) return false; writer.incrementState(); case 1: if (!writer.writeByteArray("nodeMetrics", nodeMetrics)) return false; writer.incrementState(); } return true; }
/** * @param sndNodeId Sender node ID. * @param msg Message. */ private void processMetricsUpdateMessage(UUID sndNodeId, ClusterMetricsUpdateMessage msg) { byte[] nodeMetrics = msg.nodeMetrics(); if (nodeMetrics != null) { assert msg.allNodesMetrics() == null; allNodesMetrics.put(sndNodeId, nodeMetrics); updateNodeMetrics(ctx.discovery().discoCache(), sndNodeId, nodeMetrics); } else { Map<UUID, byte[]> allNodesMetrics = msg.allNodesMetrics(); assert allNodesMetrics != null; DiscoCache discoCache = ctx.discovery().discoCache(); for (Map.Entry<UUID, byte[]> e : allNodesMetrics.entrySet()) { if (!ctx.localNodeId().equals(e.getKey())) updateNodeMetrics(discoCache, e.getKey(), e.getValue()); } } }
ClusterMetricsUpdateMessage msg = new ClusterMetricsUpdateMessage(new HashMap<>(allNodesMetrics)); byte[] metricsBytes = U.zip(U.marshal(ctx.config().getMarshaller(), metrics)); ClusterMetricsUpdateMessage msg = new ClusterMetricsUpdateMessage(metricsBytes);