Package org.jgroups.util

Examples of org.jgroups.util.MutableDigest


        Assert.assertEquals(d.get(a3)[1], 33);
    }


    public void testSetHighestDeliveredAndSeenSeqnoAt() {
        md=new MutableDigest(d);
        Assert.assertEquals(md.get(a1)[0], 500);
        Assert.assertEquals(md.get(a1)[1], 501);
        md.set(a1,10,20);
        Assert.assertEquals(md.get(a1)[0], 10);
        Assert.assertEquals(md.get(a1)[1], 20);
View Full Code Here


    }


    public void testAllSet() {
        Address[] mbrs=Util.createRandomAddresses(5);
        MutableDigest dig=new MutableDigest(mbrs);
        assert !dig.allSet();
        for(int index: Arrays.asList(1,3,4))
            dig.set(mbrs[index], index, index+1);
        System.out.println("dig = " + dig);
        assert !dig.allSet();

        Address[] non_set=dig.getNonSetMembers();
        System.out.println("non_set = " + Arrays.toString(non_set));
        assert non_set != null && non_set.length == 2;
        Assert.assertEquals(non_set, new Address[]{mbrs[0], mbrs[2]});


        for(int index: Arrays.asList(0,2))
            dig.set(mbrs[index], index, index+1);
        System.out.println("dig = " + dig);
        assert dig.allSet();
        non_set=dig.getNonSetMembers();
        assert non_set.length == 0;

        dig=new MutableDigest(members);
        assert !dig.allSet();
        non_set=dig.getNonSetMembers();
        Assert.assertEquals(non_set, members);

        dig.set(d);
        System.out.println("dig = " + dig);
        assert dig.allSet();
        non_set=dig.getNonSetMembers();
        assert non_set.length == 0;
    }
View Full Code Here

        assert non_set.length == 0;
    }


    public void testMerge() {
        MutableDigest digest=new MutableDigest(members)
          .set(a1, 499,502).set(a2, 26,27).set(a3, 26,35);

        System.out.println("d: " + d);
        System.out.println("digest: " + digest);
       
        digest.merge(d);
        System.out.println("merged digest: " + digest);

        Assert.assertEquals(d.capacity(), 3);
        Assert.assertEquals(digest.capacity(), 3);

        Assert.assertEquals(digest.get(a1)[0], 500);
        Assert.assertEquals(digest.get(a1)[1], 502);

        Assert.assertEquals(digest.get(a2)[0], 26);
        Assert.assertEquals(digest.get(a2)[1], 27);

        Assert.assertEquals(digest.get(a3)[0], 26);
        Assert.assertEquals(digest.get(a3)[1], 35);
    }
View Full Code Here


    public void testNonConflictingMerge() {
        Address ip1=Util.createRandomAddress("x"), ip2=Util.createRandomAddress("y");
        View tmp_view=View.create(a1,1,a1,a2,a3,ip1,ip2);
        MutableDigest cons_d=new MutableDigest(tmp_view.getMembersRaw());

        cons_d.set(ip1,10,10);
        cons_d.set(ip2,20,20);
        cons_d.merge(d);

        Assert.assertEquals(cons_d.capacity(), 5);

        Assert.assertEquals(cons_d.get(ip1)[0], 10);
        Assert.assertEquals(cons_d.get(ip2)[0], 20);
        Assert.assertEquals(cons_d.get(a1)[0], 500);
        Assert.assertEquals(cons_d.get(a2)[0], 26);
        Assert.assertEquals(cons_d.get(a3)[0], 25);

        Assert.assertEquals(cons_d.get(ip1)[1], 10);
        Assert.assertEquals(cons_d.get(ip2)[1], 20);
        Assert.assertEquals(cons_d.get(a1)[1], 501);
        Assert.assertEquals(cons_d.get(a2)[1], 26);
        Assert.assertEquals(cons_d.get(a3)[1], 33);
    }
View Full Code Here

    }



    public void testConflictingMerge() {
        MutableDigest new_d=new MutableDigest(members);
        new_d.set(a1,450,501);
        new_d.set(a3,28,35);
        md=new MutableDigest(d);
        md.merge(new_d);

        Assert.assertEquals(md.capacity(), 3);

        Assert.assertEquals(md.get(a1)[0], 500);
View Full Code Here

    protected void createPartition(JChannel ... channels) {
        List<Address> members=getMembers(channels);
        Collections.sort(members);
        Address coord=members.get(0);
        View view=new View(coord, 2, members);
        MutableDigest digest=new MutableDigest(view.getMembersRaw());
        for(JChannel ch: channels) {
            NAKACK2 nakack=(NAKACK2)ch.getProtocolStack().findProtocol(NAKACK2.class);
            digest.merge(nakack.getDigest(ch.getAddress()));
        }
        for(JChannel ch: channels) {
            GMS gms=(GMS)ch.getProtocolStack().findProtocol(GMS.class);
            gms.installView(view, digest);
        }
View Full Code Here

        View coord_view=new View(coord, 4, members);
        System.out.println("coord_view: " + coord_view);
        Channel coord_channel = findChannel(coord);
        System.out.println("coord_channel: " + coord_channel.getAddress());
       
        MutableDigest digest=new MutableDigest(coord_view.getMembersRaw());
        NAKACK2 nakack=(NAKACK2)coord_channel.getProtocolStack().findProtocol(NAKACK2.class);
        digest.merge(nakack.getDigest(coord));
       
        GMS gms=(GMS)coord_channel.getProtocolStack().findProtocol(GMS.class);
        gms.installView(coord_view, digest);
        System.out.println("gms.getView() " + gms.getView());
       
View Full Code Here

    protected void createPartition(JChannel ... channels) {
        List<Address> members=getMembers(channels);
        Collections.sort(members);
        Address coord=members.get(0);
        View view=new View(coord, 0, members);
        MutableDigest digest=new MutableDigest(view.getMembersRaw());
        for(JChannel ch: channels) {
            NAKACK2 nakack=(NAKACK2)ch.getProtocolStack().findProtocol(NAKACK2.class);
            digest.merge(nakack.getDigest(ch.getAddress()));
        }
        for(JChannel ch: channels) {
            GMS gms=(GMS)ch.getProtocolStack().findProtocol(GMS.class);
            System.out.println("Injecting view " + view + " into " + ch.getAddress());
            gms.installView(view, digest);
View Full Code Here

            gms.up(evt);
        }
    }

    protected static Digest getDigest(final View view, JChannel ... channels) {
        MutableDigest digest=new MutableDigest(view.getMembersRaw());
        for(JChannel ch: channels) {
            Protocol nak=ch.getProtocolStack().findProtocol(NAKACK.class, NAKACK2.class);
            Digest tmp=(Digest)nak.down(new Event(Event.GET_DIGEST, ch.getAddress()));
            if(tmp != null)
                digest.set(tmp);
        }
        return digest;
    }
View Full Code Here

        nak.down(new Event(Event.SET_LOCAL_ADDRESS, local_addr));
        nak.down(new Event(Event.BECOME_SERVER));
        View view=View.create(local_addr, 1, local_addr, sender);
        nak.down(new Event(Event.VIEW_CHANGE, view));

        MutableDigest digest=new MutableDigest(view.getMembersRaw());
        digest.set(local_addr,0,0);
        digest.set(sender,0,0);
        nak.down(new Event(Event.SET_DIGEST, digest));

        final CountDownLatch latch=new CountDownLatch(1);
        Sender[] adders=new Sender[num_threads];
        for(int i=0; i < adders.length; i++) {
View Full Code Here

TOP

Related Classes of org.jgroups.util.MutableDigest

Copyright © 2018 www.massapicom. 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.