Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-3059

Performance issues of "TThreadedSelectorServer"

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 0.9.2
    • None
    • Java - Library
    • None

    Description

      Let's assume that there is a client or a thread talks with "TThreadedSelectorServer" by a transport. During this period, no other clients or threads could send or receive data via this transport, i.e. the transport is exclusive. As a result, the performance/throughput of the server could not be utilized as much as possible.

      On the other hand, if we don't care about the performance, could these transports be shared by different clients or threads? I am afraid that the answer is negative. Even we suppose that both reading messages from transports and writing messages to transports are atomic operations, transports still could not be multiplexed because clients do not know how to pick up their own responses from the stream.

      We may add queues to hold the calls at both client sides and server sides. I think Hadoop RPC provides a good reference implementation.

      Attachments

        Activity

          People

            Unassigned Unassigned
            in-chief Xiaoshuang LU
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: