@Override public void onSessionStarted(String sessionId, Multimap<NodeType, NodeId> nodes) { taskCounter = 0; Namespace namespace = Namespace.of(SESSION, sessionId); Multimap<String, Object> objectsMap = HashMultimap.create(); objectsMap.put(START_TIME, System.currentTimeMillis()); Collection<NodeId> kernels = nodes.get(NodeType.KERNEL); objectsMap.put(KERNELS_COUNT, kernels.size()); for (NodeId nodeId : kernels) { objectsMap.put(AVAILABLE_KERNELS, nodeId.toString()); } keyValueStorage.putAll(namespace, objectsMap); }
private Namespace namespace() { return Namespace.of(sessionId, taskId, "ValidationCollector", kernelContext.getId().toString()); }
private Namespace namespace() { return Namespace.of(sessionId, taskId, "ValidationCollector", kernelContext.getId().toString()); }
private Namespace namespace() { return Namespace.of(sessionId, taskId, "InformationCollector", kernelContext.getId().toString()); }
private void putValues(String sessionId, String taskId, Collection<NodeId> capableNodes, WorkloadTask workload) { Namespace sessionNamespace = Namespace.of(SESSION, sessionId); keyValueStorage.put(sessionNamespace, SCENARIOS, taskId); Namespace scenarioNamespace = Namespace.of(sessionId, taskId); Multimap<String, Object> objectsMap = HashMultimap.create(); objectsMap.put(START_TIME, System.currentTimeMillis() + workload.getStartDelay()); objectsMap.put(CLOCK, workload.getClock().toString()); objectsMap.put(CLOCK_VALUE, workload.getClock().getValue()); objectsMap.put(TERMINATION, workload.getTerminateStrategyConfiguration().toString()); objectsMap.put(KERNEL_COUNT, capableNodes.size()); for (NodeId nodeId : capableNodes) { String nodeStr = nodeId.toString(); log.debug("kernels: {}", nodeStr); objectsMap.put(KERNELS, nodeStr); } keyValueStorage.putAll(scenarioNamespace, objectsMap); }
@Override public void flush() { Namespace namespace = Namespace.of(sessionId, taskId, "DurationCollector", kernelContext.getId().toString()); kernelContext.getService(KeyValueStorage.class).put(namespace, TOTAL_DURATION, totalDuration); log.debug("saved total_duration for namespace {}", namespace); kernelContext.getService(KeyValueStorage.class).put(namespace, TOTAL_SQR_DURATION, totalDurationSqr); log.debug("saved total_sqr_duration for namespace {}", namespace); }
public Map<NodeId,GeneralNodeInfo> getGeneralNodeInfo(String sessionId, Coordinator coordinator) { final String localSessionId = sessionId; Set<NodeId> nodes = new HashSet<NodeId>(); Map<NodeId,GeneralNodeInfo> result = new HashMap<NodeId, GeneralNodeInfo>(); nodes.addAll(coordinator.getAvailableNodes(NodeType.KERNEL)); nodes.addAll(coordinator.getAvailableNodes(NodeType.AGENT)); for (NodeId node : nodes) { try { final GeneralNodeInfo generalNodeInfo = coordinator.getExecutor(node).runSyncWithTimeout(new GetGeneralNodeInfo(sessionId), Coordination.<GetGeneralNodeInfo>doNothing(), nodeCollectInfoTime); generalNodeInfo.setNodeId(node.toString()); log.info("Got node info from node {}:\n {}", node, generalNodeInfo.toString()); getHibernateTemplate().execute(new HibernateCallback<Void>() { @Override public Void doInHibernate(Session session) throws HibernateException, SQLException { session.persist(new NodeInfoEntity(localSessionId,generalNodeInfo)); session.flush(); return null; } }); result.put(node,generalNodeInfo); } catch (Throwable e) { log.error("Get node info failed for node " + node + "\n" + Throwables.getStackTraceAsString(e)); } } return result; }