Examples of LabelVertex


Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

        Assert.assertNotNull(edge);
        Assert.assertNotNull(graph);
        Collection<LabelVertex> allvertices = graph.getVertices();
        Pair<LabelVertex> endpoints = graph.getEndpoints(edge);
        Assert.assertNotNull(endpoints);
        LabelVertex end1 = endpoints.getFirst();
        LabelVertex end2 = endpoints.getSecond();
        boolean ok = false;
        for (LabelVertex v : allvertices) {
            if (v == end1) {
                ok = true;
                break;
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

        Identity identA = new IdentityImpl("A");
        Identity identB = new IdentityImpl("B");
        Identity identC = new IdentityImpl("C");
        Identity identD = new IdentityImpl("D");

        LabelVertex vertA = new LabelVertex(identA);
        LabelVertex vertB = new LabelVertex(identB);
        LabelVertex vertC = new LabelVertex(identC);
        LabelVertex vertD = new LabelVertex(identD);

        ProfileReport report = makeReport(identA);
        AccessedObjectsDetailTest detail = new AccessedObjectsDetailTest();
        detail.addAccess(new String("obj1"));
        detail.addAccess(new String("obj2"));
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

    @Test
    public void testGetVertexNotThere() {
        // Needed for the bipartite version
        builder.getAffinityGraph();
        LabelVertex v = builder.getVertex(new IdentityImpl("None"));
        Assert.assertNull(v);
    }
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

        setAccessedObjectsDetailMethod.invoke(report, detail);
        listener.report(report);

        // Needed for the bipartite version
        builder.getAffinityGraph();
        LabelVertex v = builder.getVertex(identA);
        Assert.assertEquals(identA, v.getIdentity());
        LabelVertex v1 = builder.getVertex(identB);
        Assert.assertNull(v1);

        report = makeReport(identB);
        detail = new AccessedObjectsDetailTest();
        detail.addAccess(new String("obj1"));
        setAccessedObjectsDetailMethod.invoke(report, detail);
        listener.report(report);

        // Needed for the bipartite version
        builder.getAffinityGraph();
        v1 = builder.getVertex(identB);
        Assert.assertEquals(identB, v1.getIdentity());
        // can still find a as well
        v = builder.getVertex(identA);
        Assert.assertEquals(identA, v.getIdentity());
    }
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

        node.shutdown(false);
        Properties p = new Properties();
        p.setProperty(AbstractAffinityGraphBuilder.PERIOD_COUNT_PROPERTY, "2");
        startNewNode(p);

        LabelVertex vertA = new LabelVertex(new IdentityImpl("A"));
        LabelVertex vertB = new LabelVertex(new IdentityImpl("B"));
        LabelVertex vertC = new LabelVertex(new IdentityImpl("C"));
        LabelVertex vertD = new LabelVertex(new IdentityImpl("D"));

        // Each update to the graph is followed by a pruning task run,
        // to simulate a pruning time period.
        testFourReports();
        Method getPruneTaskMethod =
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

            }

            synchronized (affinityGraph) {
                // Add the vertex while synchronized to ensure no interference
                // from the graph pruner.
                LabelVertex vowner = addOrGetVertex(owner);
                // add or update edges between task owner and identities
                for (Map.Entry<Identity, Long> entry : idMap.entrySet()) {
                    Identity ident = entry.getKey();

                    // Our folded graph has no self-loops:  only add an
                    // edge if the identity isn't the owner
                    if (!ident.equals(owner)) {
                        LabelVertex vident = addOrGetVertex(ident);
                        // Check to see if we already have an edge between
                        // the two vertices.  If so, update its weight.
                        WeightedEdge edge =
                                affinityGraph.findEdge(vowner, vident);
                        if (edge == null) {
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

     * @param id the identity
     * @return the graph vertex representing the identity
     */
    private LabelVertex addOrGetVertex(Identity id) {
        assert Thread.holdsLock(affinityGraph);
        LabelVertex v = getVertex(id);
        if (v == null) {
            v = new LabelVertex(id);
            affinityGraph.addVertex(v);
            identMap.put(id, v);
        }
        return v;
    }
View Full Code Here

Examples of com.sun.sgs.impl.service.nodemap.affinity.graph.LabelVertex

        // Separate out the vertex set for our new folded graph.
        for (Object vert : graphCopy.getVertices()) {
            if (vert instanceof Identity) {
                Identity ivert = (Identity) vert;
                LabelVertex v = new LabelVertex(ivert);
                foldedGraph.addVertex(v);
                identMap.put(ivert, v);
            } else {
                objVerts.add(vert);
            }
        }

        for (Object objVert : objVerts) {
            // We know objVert is not an Identity because of the loop above.
            List<Object> neighbors =
                    new ArrayList<Object>(graphCopy.getNeighbors(objVert));
            int length = neighbors.size();
            for (int i = 0; i < length - 1; i++) {
                Object neighbor = neighbors.get(i);
                Identity v1 = (Identity) neighbor;

                for (int j = i + 1; j < length; j++) {
                    neighbor = neighbors.get(j);
                    Identity v2 = (Identity) neighbor;

                    // The weight of the edge representing this use
                    // is the min of the counts of each identity's use
                    // of the object
                    long e1Weight = graphCopy.findEdge(v1, objVert).getWeight();
                    long e2Weight = graphCopy.findEdge(v2, objVert).getWeight();
                    long minWeight = Math.min(e1Weight, e2Weight);

                    LabelVertex label1 = getVertex(v1);
                    LabelVertex label2 = getVertex(v2);
                    WeightedEdge edge = foldedGraph.findEdge(label1, label2);
                    if (edge == null) {
                        foldedGraph.addEdge(new WeightedEdge(minWeight),
                                            label1, label2);
                    } else {
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.