dlmarion commented on PR #5375: URL: https://github.com/apache/accumulo/pull/5375#issuecomment-2694756475
> The reminders about the select thread were helpful. I was assuming that the thrift code would read frames per RPC into memory and queue those frames on a thread pool. It may instead queue the connection and the frame on thread pool, returning the connection for selection when the task completes on the pool. If so that would mean only one thing will ever execute per connection, even if the message is oneway and no response is needed. Going to look into this a bit more and see if that is the case. I think that in the case of the other threaded server implementations (TnonBlockingServer, for example), there is one select thread that reads the request from the connection, then hands it off to a thread in the worker thread pool. I don't think that the accept threads wait for the worker thread to complete in this case, so it's somewhat asynchronous. I could be wrong about this, but it makes sense on the surface. There could be cases where the accept thread could take a long time though to complete the task of reading the request and assigning it to a worker thread. For example, if only some of the packets have arrived on the interface for the request and the client has not sent them all yet. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
