Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-3610

set TCP_NODELAY true by default in the Java client to improve general performance

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.12
    • Fix Version/s: 0.14
    • Component/s: JMS AMQP 0-x
    • Labels:
      None

      Description

      set TCP_NODELAY true by default in the Java client to improve general performance.

      TCP_NODELAY is currently set false by default. This leads to synchronous commands such as ExecutionSync or TxCommit taking a potentially very long amount of time (~30-40ms observed), which cripples transactional performance, causes consumer creation to take a long time, and generally impedes performance of messaging patterns such as request-response.

      Whilst this change could perhaps cause some falloff in out-the-box peak throughput in situations such as NoAck mode, the observed performance increases in a variety of other situations such as the above is too large (anything from 10% to 1000%, yes 10x throughput, has been observed in select tests) to ignore for our general out-the-box configuration. Users interested in the ultimate throughput will be the ones most likely to tune for it, so we should set default configuration to cater for those who arent/dont.

        Attachments

          Activity

            People

            • Assignee:
              gemmellr Robbie Gemmell
              Reporter:
              gemmellr Robbie Gemmell
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: