Joshua McKenzie created CASSANDRA-8440:
------------------------------------------

             Summary: Refactor StorageProxy
                 Key: CASSANDRA-8440
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8440
             Project: Cassandra
          Issue Type: Improvement
          Components: Core
            Reporter: Joshua McKenzie
             Fix For: 3.0


The StorageProxy is currently a monolithic singleton with a collection of 
static methods.  This ticket will track a multi-phase effort to refactor this 
into appropriate subclasses, convert the internals to asynchronous operations, 
and eventually change the API to being async.
 
See CASSANDRA-7392 for an example of a feature that this change would help 
facilitate.

Broken down into 5 phases:
* Phase 1: Un-singleton and Break static methods down into classes
* Phase 2: Convert StorageProxy classes to futures, keep internal synchronous 
processing so interface doesn't change
* Phase 3: Track count and limits on internal messages within StorageProxy
* Phase 4: Push async interface upstream
* Phase 5: Profile garbage generation from StorageProxy changes and consider 
object pooling

Granularity with the breakdown above is to make reviews less painful and make 
it easier to add unit-testing for this component as we go.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to