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]
