Search in sources :

Example 1 with Buffer

use of org.jgroups.util.Buffer in project JGroups by belaban.

the class MessageDispatcherSpeedTest method sendMessages.

void sendMessages(int num) throws Exception {
    long start, stop;
    int show = num / 10;
    if (show <= 0)
        show = 1;
    start = System.currentTimeMillis();
    RequestOptions opts = new RequestOptions(ResponseMode.GET_ALL, TIMEOUT).flags(Message.Flag.DONT_BUNDLE, Message.Flag.NO_FC);
    byte[] data = "bla".getBytes();
    Buffer buf = new Buffer(data, 0, data.length);
    System.out.println("-- sending " + num + " messages");
    for (int i = 1; i <= num; i++) {
        disp.castMessage(null, buf, opts);
        if (i % show == 0)
            System.out.println("-- sent " + i);
    }
    stop = System.currentTimeMillis();
    printStats(stop - start, num);
}
Also used : Buffer(org.jgroups.util.Buffer) RequestOptions(org.jgroups.blocks.RequestOptions)

Example 2 with Buffer

use of org.jgroups.util.Buffer in project JGroups by belaban.

the class GroupRequestTest method testGetAllWithResponseFilter.

public void testGetAllWithResponseFilter() throws Exception {
    Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b), new Message(null, (long) 3).src(c) };
    MyCorrelator corr = new MyCorrelator(true, responses, 500);
    dests.add(c);
    GroupRequest<Long> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_ALL, 0));
    req.setResponseFilter(new RspFilter() {

        int num_rsps = 0;

        public boolean isAcceptable(Object response, Address sender) {
            boolean retval = response instanceof Long && ((Long) response == 1L || (Long) response == 2L);
            System.out.println("-- received " + response + " from " + sender + ": " + (retval ? "OK" : "NOTOK"));
            if (retval)
                num_rsps++;
            return retval;
        }

        public boolean needMoreResponses() {
            return num_rsps < 2;
        }
    });
    corr.setGroupRequest(req);
    System.out.println("group request is " + req);
    RspList<Long> results = req.execute(new Buffer(buf, 0, buf.length), true);
    assert req.isDone();
    Assert.assertEquals(3, results.size());
    Assert.assertEquals(2, results.numReceived());
}
Also used : Buffer(org.jgroups.util.Buffer)

Example 3 with Buffer

use of org.jgroups.util.Buffer in project JGroups by belaban.

the class GroupRequestTest method testCancel.

public void testCancel() throws Exception {
    MyCorrelator corr = new MyCorrelator(true, null, 0);
    GroupRequest<Integer> req = new GroupRequest<>(corr, Arrays.asList(a, b, c), RequestOptions.SYNC());
    corr.setGroupRequest(req);
    req.cancel(true);
    RspList<Integer> rsps = req.execute(new Buffer(buf, 0, buf.length), true);
    System.out.println("rsps:\n" + rsps);
    assert rsps.size() == 3;
    long num_not_received = rsps.values().stream().filter(rsp -> !rsp.wasReceived()).count();
    assert num_not_received == 3;
    assert req.isCancelled();
    final GroupRequest<Integer> req2 = new GroupRequest<>(corr, Arrays.asList(a, b, c), RequestOptions.SYNC());
    corr.setGroupRequest(req2);
    new Thread(() -> {
        Util.sleep(1000);
        req2.cancel(true);
    }).start();
    rsps = req2.execute(new Buffer(buf, 0, buf.length), true);
    System.out.println("rsps:\n" + rsps);
    assert rsps.size() == 3;
    num_not_received = rsps.values().stream().filter(rsp -> !rsp.wasReceived()).count();
    assert num_not_received == 3;
    assert req2.isCancelled();
}
Also used : Buffer(org.jgroups.util.Buffer) Protocol(org.jgroups.stack.Protocol) UUID(org.jgroups.util.UUID) Arrays(java.util.Arrays) Util(org.jgroups.util.Util) BeforeClass(org.testng.annotations.BeforeClass) Collection(java.util.Collection) BeforeMethod(org.testng.annotations.BeforeMethod) Test(org.testng.annotations.Test) AfterMethod(org.testng.annotations.AfterMethod) UnknownHostException(java.net.UnknownHostException) ArrayList(java.util.ArrayList) SiteUUID(org.jgroups.protocols.relay.SiteUUID) List(java.util.List) Assert(org.testng.Assert) Buffer(org.jgroups.util.Buffer) org.jgroups(org.jgroups) RspList(org.jgroups.util.RspList)

Example 4 with Buffer

use of org.jgroups.util.Buffer in project JGroups by belaban.

the class GroupRequestTest method _testMessageReception.

private void _testMessageReception(boolean async) throws Exception {
    Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b) };
    MyCorrelator corr = new MyCorrelator(async, responses, 0);
    GroupRequest<Object> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_ALL, 0));
    corr.setGroupRequest(req);
    RspList<Object> results = req.execute(new Buffer(buf, 0, buf.length), true);
    System.out.println("group request is " + req);
    assert req.isDone();
    Assert.assertEquals(2, results.size());
}
Also used : Buffer(org.jgroups.util.Buffer)

Example 5 with Buffer

use of org.jgroups.util.Buffer in project JGroups by belaban.

the class GroupRequestTest method testGetFirstWithResponseFilter.

public void testGetFirstWithResponseFilter() throws Exception {
    Object[] responses = { new Message(null, (long) 1).src(a), new Message(null, (long) 2).src(b), new Message(null, (long) 3).src(c) };
    MyCorrelator corr = new MyCorrelator(true, responses, 500);
    dests.add(c);
    GroupRequest<Long> req = new GroupRequest<>(corr, dests, new RequestOptions(ResponseMode.GET_FIRST, 0));
    req.setResponseFilter(new RspFilter() {

        int num_rsps = 0;

        public boolean isAcceptable(Object response, Address sender) {
            boolean retval = response instanceof Long && (Long) response == 2L;
            System.out.println("-- received " + response + " from " + sender + ": " + (retval ? "OK" : "NOTOK"));
            if (retval)
                num_rsps++;
            return retval;
        }

        public boolean needMoreResponses() {
            return num_rsps < 1;
        }
    });
    corr.setGroupRequest(req);
    System.out.println("group request is " + req);
    RspList<Long> results = req.execute(new Buffer(buf, 0, buf.length), true);
    assert req.isDone();
    Assert.assertEquals(3, results.size());
    Assert.assertEquals(1, results.numReceived());
}
Also used : Buffer(org.jgroups.util.Buffer)

Aggregations

Buffer (org.jgroups.util.Buffer)14 Address (org.jgroups.Address)4 ByteBuffer (java.nio.ByteBuffer)3 ArrayList (java.util.ArrayList)3 Message (org.jgroups.Message)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 DataOutputStream (java.io.DataOutputStream)1 UnknownHostException (java.net.UnknownHostException)1 Arrays (java.util.Arrays)1 Collection (java.util.Collection)1 List (java.util.List)1 CompletionStage (java.util.concurrent.CompletionStage)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 Marshaller (org.jboss.marshalling.Marshaller)1 org.jgroups (org.jgroups)1 MessageDispatcher (org.jgroups.blocks.MessageDispatcher)1 RequestOptions (org.jgroups.blocks.RequestOptions)1 GMS (org.jgroups.protocols.pbcast.GMS)1 NAKACK2 (org.jgroups.protocols.pbcast.NAKACK2)1 STABLE (org.jgroups.protocols.pbcast.STABLE)1