[ 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