/** * @param node Node to remove. */ public void removeMappedNode(GridNode node) { if (mappedDhtNodes.contains(node)) mappedDhtNodes = new ArrayList<>(F.view(mappedDhtNodes, F.notEqualTo(node))); if (mappedNearNodes != null && mappedNearNodes.contains(node)) mappedNearNodes = new ArrayList<>(F.view(mappedNearNodes, F.notEqualTo(node))); }
/** * @param nodes Nodes. * @return Backup nodes. */ public static Collection<GridNode> backups(Collection<GridNode> nodes) { if (nodes == null || nodes.size() <= 1) return Collections.emptyList(); return F.view(nodes, F.notEqualTo(F.first(nodes))); }
/** * @param part Partition. * @param topVer Topology version. * @return Backup nodes. */ public Collection<GridNode> backups(int part, long topVer) { List<GridNode> nodes = nodes(part, topVer); assert !F.isEmpty(nodes); if (nodes.size() <= 1) return Collections.emptyList(); return F.view(nodes, F.notEqualTo(nodes.get(0))); }
/** * Adds information about next mapping. * * @param nodes Nodes. */ @SuppressWarnings("ConstantConditions") public void addMapping(List<GridNode> nodes) { GridNode primary = F.first(nodes); Collection<GridNode> backups = F.view(nodes, F.notEqualTo(primary)); if (last == null || !last.primary.equals(primary.id())) { last = new TxMapping(primary, backups); mappings.add(last); } else last.add(backups); Collection<UUID> storedBackups = txNodes.get(last.primary); if (storedBackups == null) txNodes.put(last.primary, storedBackups = new HashSet<>()); storedBackups.addAll(last.backups); }
filteredReaders = F.view(entry.readers(), F.notEqualTo(node.id()));
filteredReaders = F.view(entry.readers(), F.notEqualTo(node.id()));