Search in sources :

Example 26 with Node

use of com.ms.silverking.cloud.topology.Node in project SilverKing by Morgan-Stanley.

the class RingMapState method getTargetsByAncestorClass.

private Set<IPAndPort> getTargetsByAncestorClass(String nodeClassName) {
    Node ancestor;
    ancestor = rawRingTree.getTopology().getAncestor(nodeID.getIPAsString(), NodeClass.forName(nodeClassName));
    return nodeListToIPAndPortSet(ancestor.getAllDescendants(NodeClass.server));
}
Also used : Node(com.ms.silverking.cloud.topology.Node)

Example 27 with Node

use of com.ms.silverking.cloud.topology.Node in project SilverKing by Morgan-Stanley.

the class RingMapState method nodeListToIPAndPortSet.

// /////////////
private Set<IPAndPort> nodeListToIPAndPortSet(List<Node> replicaNodes) {
    ImmutableSet.Builder<IPAndPort> replicaSet;
    replicaSet = ImmutableSet.builder();
    for (Node replicaNode : replicaNodes) {
        if (!replicaNode.getNodeClass().equals(NodeClass.server)) {
            throw new RuntimeException("Unexpected non-server node class: " + replicaNode);
        }
        replicaSet.add(new IPAndPort(replicaNode.getIDString(), nodeID.getPort()));
    }
    return replicaSet.build();
}
Also used : IPAndPort(com.ms.silverking.net.IPAndPort) ImmutableSet(com.google.common.collect.ImmutableSet) Node(com.ms.silverking.cloud.topology.Node)

Example 28 with Node

use of com.ms.silverking.cloud.topology.Node in project SilverKing by Morgan-Stanley.

the class RingTree method getStorageReplicas.

public Set<IPAndPort> getStorageReplicas(long coordinate) {
    Set<Node> nodes;
    Set<IPAndPort> replicas;
    if (debug) {
        System.out.println("getStorageReplicas");
    }
    nodes = getStorageNodes(coordinate);
    if (debug) {
        System.out.println("nodes.size()" + nodes.size());
    }
    replicas = new HashSet<>();
    for (Node node : nodes) {
        if (debug) {
            System.out.println(node);
        }
        replicas.add(new IPAndPort(node.getIDString() + ":" + DHTNode.getServerPort()));
    }
    return ImmutableSet.copyOf(replicas);
}
Also used : IPAndPort(com.ms.silverking.net.IPAndPort) DHTNode(com.ms.silverking.cloud.dht.daemon.DHTNode) Node(com.ms.silverking.cloud.topology.Node)

Example 29 with Node

use of com.ms.silverking.cloud.topology.Node in project SilverKing by Morgan-Stanley.

the class RingTree method getStorageNodes.

// Slow/proof-of-concept implementation
// replace, possibly pre-compute when concept is
// decided on
// (Precomputation is now in place)
private Set<Node> getStorageNodes(Node parent, long coordinate) {
    TopologyRing ring;
    RingEntry ringEntry;
    Set<Node> children;
    Set<Node> storageNodes;
    long normalizedCoordinate;
    ring = getNodeRing(parent);
    ringEntry = ring.getOwner(coordinate);
    normalizedCoordinate = LongRingspace.mapRegionPointToRingspace(ringEntry.getRegion(), coordinate);
    children = ringEntry.getPrimaryOwnersSet();
    storageNodes = new HashSet<>();
    for (Node child : children) {
        if (child.hasChildren()) {
            storageNodes.addAll(getStorageNodes(child, normalizedCoordinate));
        } else {
            storageNodes.add(child);
        }
    }
    return storageNodes;
}
Also used : DHTNode(com.ms.silverking.cloud.dht.daemon.DHTNode) Node(com.ms.silverking.cloud.topology.Node)

Example 30 with Node

use of com.ms.silverking.cloud.topology.Node in project SilverKing by Morgan-Stanley.

the class RingTreeRecipe method nonExcludedChildren.

public Set<Node> nonExcludedChildren(String nodeID) {
    ImmutableSet.Builder<Node> builder;
    Node node;
    node = topology.getNodeByID(nodeID);
    builder = ImmutableSet.builder();
    for (Node child : node.getChildren()) {
        if (!exclusionList.contains(child.getIDString())) {
            if (hasDescendantInHostGroups(child)) {
                builder.add(child);
            }
        }
    }
    return builder.build();
}
Also used : ImmutableSet(com.google.common.collect.ImmutableSet) Node(com.ms.silverking.cloud.topology.Node)

Aggregations

Node (com.ms.silverking.cloud.topology.Node)50 GenericNode (com.ms.silverking.cloud.topology.GenericNode)17 DHTNode (com.ms.silverking.cloud.dht.daemon.DHTNode)10 ImmutableSet (com.google.common.collect.ImmutableSet)6 IPAndPort (com.ms.silverking.net.IPAndPort)5 NodeClass (com.ms.silverking.cloud.topology.NodeClass)4 SubPolicy (com.ms.silverking.cloud.storagepolicy.SubPolicy)2 SubPolicyMember (com.ms.silverking.cloud.storagepolicy.SubPolicyMember)2 RingInteger (com.ms.silverking.numeric.RingInteger)2 ImmutableList (com.google.common.collect.ImmutableList)1 HostGroupTable (com.ms.silverking.cloud.config.HostGroupTable)1 PolicyParser (com.ms.silverking.cloud.storagepolicy.PolicyParser)1 StoragePolicy (com.ms.silverking.cloud.storagepolicy.StoragePolicy)1 StoragePolicyGroup (com.ms.silverking.cloud.storagepolicy.StoragePolicyGroup)1 Topology (com.ms.silverking.cloud.topology.Topology)1 WeightSpecifications (com.ms.silverking.cloud.toporing.meta.WeightSpecifications)1 SimpleStopwatch (com.ms.silverking.time.SimpleStopwatch)1 Stopwatch (com.ms.silverking.time.Stopwatch)1 File (java.io.File)1 BigDecimal (java.math.BigDecimal)1