[ https://issues.apache.org/jira/browse/CASSANDRA-5239?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Sylvain Lebresne updated CASSANDRA-5239: ---------------------------------------- Assignee: (was: Sylvain Lebresne) > Asynchronous (non-blocking) StorageProxy > ---------------------------------------- > > Key: CASSANDRA-5239 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5239 > Project: Cassandra > Issue Type: Improvement > Components: Core > Affects Versions: 2.0 beta 1 > Reporter: Vijay > Labels: performance > Fix For: 3.0 > > > Problem Statement: > Currently we have "rpc_min_threads, rpc_max_threads"/ > "native_transport_min_threads/native_transport_max_threads" all of the > threads in the TPE are blocking and takes resources, the threads are mostly > sleeping. Increasing the Context switch costs. > Details: > We should change StorageProxy methods to provide a callback which contains > the location where the results has to be written. When the response arrive > StorageProxy callback can write the results directly into the connection. > Timeouts can be handled in the same way. > Fixing Netty should be trivial with some refactor in the storage proxy > (currently it is one method call for sending the request and waiting) we need > callback. > Fixing Thrift may be harder because thrift calls the method and expects a > return value. We might need to write a custom Codec on Netty for thrift > support, which can potentially do callbacks (A Custom codec may be similar to > http://engineering.twitter.com/2011/04/twitter-search-is-now-3x-faster_1656.html > but we dont know details about it). Another option is to update thrift to > have a callback. > FYI, The motivation for this ticket is from another project which i am > working on with similar Proxy (blocking Netty transport) and making it Async > gave us 2x throughput improvement. -- This message was sent by Atlassian JIRA (v6.3.4#6332)