Qpid
  1. Qpid
  2. QPID-3610

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

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.12
    • Fix Version/s: 0.14
    • Component/s: Java Client
    • 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.

        Activity

        Hide
        Robbie Gemmell added a comment -

        Update applied

        Show
        Robbie Gemmell added a comment - Update applied
        Hide
        Rajith Attapattu added a comment -

        Robbie, lets make sure we document the change in default.

        Show
        Rajith Attapattu added a comment - Robbie, lets make sure we document the change in default.
        Hide
        Robbie Gemmell added a comment -

        I considered the JIRA title and description sufficient? Do we have documentation that it is false by default that I need top update?

        Show
        Robbie Gemmell added a comment - I considered the JIRA title and description sufficient? Do we have documentation that it is false by default that I need top update?
        Hide
        Rajith Attapattu added a comment -

        I was thinking about including something in the Programming with Apache Qpid doc.
        This is probably something worth mentioning explicitly to avoid any confusion.
        What do you think ?

        Show
        Rajith Attapattu added a comment - I was thinking about including something in the Programming with Apache Qpid doc. This is probably something worth mentioning explicitly to avoid any confusion. What do you think ?
        Hide
        Robbie Gemmell added a comment -

        Seems reasonable, I will take a look over the weekend and see where I can slot something in about it.

        Show
        Robbie Gemmell added a comment - Seems reasonable, I will take a look over the weekend and see where I can slot something in about it.
        Hide
        Justin Ross added a comment -

        Reviewed and approved for 0.14.

        Show
        Justin Ross added a comment - Reviewed and approved for 0.14.
        Hide
        Robbie Gemmell added a comment -

        Merged to 0.14 branch.

        Show
        Robbie Gemmell added a comment - Merged to 0.14 branch.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development