Class RoundTrip

  • All Implemented Interfaces:
    RtReceiver

    public class RoundTrip
    extends java.lang.Object
    implements RtReceiver
    Class that measure RTT for multicast messages between 2 cluster members. See RpcDispatcherSpeedTest for RPCs. Note that request and response times are measured using System.nanoTime() which might yield incorrect values when run on different cores, so these numbers may not be reliable.

    Running this on different nodes will not yield correct results for request- and response-latencies, but should be ok for round-trip times. *If* times across nodes are synchronized, flag -use-wall-clock can switch to currentTimeMillis() which gives more meaningful results for request- and response-latency across boxes.

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  RoundTrip.Sender  
    • Constructor Summary

      Constructors 
      Constructor Description
      RoundTrip​(boolean use_ms)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected static java.lang.String availableTransports()  
      protected static RtTransport create​(java.lang.String transport)  
      protected static void help​(java.lang.String transport)  
      protected void loop()  
      static void main​(java.lang.String[] args)  
      protected java.lang.String print​(AverageMinMax avg)  
      protected static java.lang.String printOptions​(java.lang.String[] opts)  
      void receive​(java.lang.Object sender, byte[] req_buf, int offset, int length)
      On the server: receive a request, send a response.
      protected void sendRequests()  
      protected void start​(java.lang.String transport, java.lang.String[] args)  
      protected static long time​(boolean use_ms)  
      protected java.lang.String unit()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • RoundTrip

        public RoundTrip​(boolean use_ms)
    • Method Detail

      • start

        protected void start​(java.lang.String transport,
                             java.lang.String[] args)
                      throws java.lang.Exception
        Throws:
        java.lang.Exception
      • receive

        public void receive​(java.lang.Object sender,
                            byte[] req_buf,
                            int offset,
                            int length)
        On the server: receive a request, send a response. On the client: send a request, wait for the response
        Specified by:
        receive in interface RtReceiver
        Parameters:
        sender - The address of the sender
        req_buf - The buffer
        offset - The offset of the data in the buffer
        length - The length (bytes) of the data
      • loop

        protected void loop()
      • sendRequests

        protected void sendRequests()
                             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • print

        protected java.lang.String print​(AverageMinMax avg)
      • time

        protected static long time​(boolean use_ms)
      • unit

        protected java.lang.String unit()
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • help

        protected static void help​(java.lang.String transport)
      • create

        protected static RtTransport create​(java.lang.String transport)
                                     throws java.lang.Exception
        Throws:
        java.lang.Exception
      • availableTransports

        protected static java.lang.String availableTransports()
      • printOptions

        protected static java.lang.String printOptions​(java.lang.String[] opts)