[ 
https://issues.apache.org/jira/browse/CASSANDRA-14118?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16400659#comment-16400659
 ] 

Blake Eggleston edited comment on CASSANDRA-14118 at 3/15/18 5:48 PM:
----------------------------------------------------------------------

I figure I should explain what I meant by my last comment without making you 
wait for the review of CASSANDRA-14117. In the case of this ticket, I'd avoid 
hollowing out ColumnFamilyStore. I spoke with [~jasobrown] about this in person 
earlier this week, and the general structure we were thinking of would keep the 
core storage components that are used by multiple systems and operations in CFS 
(so sstables, View, etc). The CFS would also instantiate and return 
implementation specific "Handler" classes. StreamHandler, ReadHandler, 
WriteHandler, etc. Those classes would implement the logic specific to those 
operations by interacting with the storage components contained in CFS. Once 
the other tickets are completed, if we've done a good enough job of abstracting 
things, we should be able to move CFS to  CassandraColumnFamilyStore or 
something, and replace it with an interface that just provides those handler 
classes.

So in the case of this ticket, you probably just need to create a write handler 
class that implements {{apply}}, and do the same for {{Keyspace}}. WDYT?


was (Author: bdeggleston):
I figure I should explain what I meant by my last comment without making you 
wait for the review of CASSANDRA-14117. In the case of this ticket, I'd avoid 
hollowing out ColumnFamilyStore. I spoke with [~jasobrown] about this in person 
earlier this week, and the general structure we were thinking of would keep the 
core storage components that are used by multiple systems and operations in CFS 
(so sstables, View, etc). The CFS would also instantiate and return 
implementation specific "Handler" classes. StreamHandler, ReadHandler, 
WriteHandler, etc. Those classes would implement the logic specific to those 
operations by interacting with the storage components contained in CFS. Once 
the other tickets are completed, if we've done a good enough job of abstracting 
things, we should be able to move CFS to  CassandraColumnFamilyStore or 
something, and be replace it with an interface that just provides those handler 
classes.

So in the case of this ticket, you probably just need to create a write handler 
class that implements {{apply}}, and do the same for {{Keyspace}}. WDYT?

> Refactor write path
> -------------------
>
>                 Key: CASSANDRA-14118
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14118
>             Project: Cassandra
>          Issue Type: Sub-task
>          Components: Core
>            Reporter: Dikang Gu
>            Assignee: Dikang Gu
>            Priority: Major
>
> As part of the pluggable storage engine effort, we'd like to modularize the 
> write path related code, make it to be independent from existing storage 
> engine implementation details.
> For now, refer to 
> https://docs.google.com/document/d/1suZlvhzgB6NIyBNpM9nxoHxz_Ri7qAm-UEO8v8AIFsc
>  for high level designs.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to