keith-turner commented on PR #5375:
URL: https://github.com/apache/accumulo/pull/5375#issuecomment-2695399461

   > You can see in 
[FrameBuffer.invoke](https://github.com/apache/thrift/blob/0.17.0/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java#L493)
 that the RPC method is called, then the responseReady method.
   
   Following that responseReady() method in AbstractNonBlockingServer it 
eventually calls this 
[code](https://github.com/apache/thrift/blob/60655d2de79e973b89fab52af82f9628d4843b0f/lib/java/src/main/java/org/apache/thrift/server/AbstractNonblockingServer.java#L523)
 which I believe makes the connection available for the selection thread to use 
again.  For the Sync case this is called after the message is processed server 
side.
   
   > I'm not sure what oneway with synchronous processing on the worker thread 
buys us. I don't see how it's any different than a method that returns void. I 
assume that this pattern is in use with the other Thrift server types. I think 
this is consistent with your observation about using multiple clients above, 
except that you may not have been aware that each client won't return until the 
method is done processing on the server side.
   
   The difference seems to be more on the client side.  The [loadFiles 
rpc](https://github.com/apache/accumulo/blob/bd9e67637c3ecc9e8a4e8d1ffbee26b8e7e84370/core/src/main/thrift-gen-java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java#L458)
 only calls send on the client side.  The [splitTablet 
rpc](https://github.com/apache/accumulo/blob/bd9e67637c3ecc9e8a4e8d1ffbee26b8e7e84370/core/src/main/thrift-gen-java/org/apache/accumulo/core/tabletserver/thrift/TabletClientService.java#L476)
 also has a void return type, but is not one way and it calls send and recv.  
The oneway does allow the client to spin up a bunch of work on tservers w/o 
waiting for each tserver, but that seems to have some undesirable side effects. 
 I am going to experiment w/ dropping the oneway on the decleration and calling 
the send and recv methods separately.  
   


-- 
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]

Reply via email to