Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-8440

Refactor StorageProxy

    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              JoshuaMcKenzie Joshua McKenzie
              Votes:
              1 Vote for this issue
              Watchers:
              10 Start watching this issue

              Dates

                Created:
                Updated: