[ https://issues.apache.org/jira/browse/CASSANDRA-13475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16226190#comment-16226190 ]
Dikang Gu commented on CASSANDRA-13475: --------------------------------------- [~bdeggleston], thanks for bring it up, yeah, I thought about that, my concern is that ColumnFamilyStore is widely used in Cassandra source code, if I change it to be an interface like IColumnFamilyStore, then I will end up need to change every usage of ColumnFamilyStore. So instead of inheritance, I choose to use composition, where I keep ColumnFamilyStore class, and delegate the storage engine related calls to the new storage engine API. I think it will have much less impact to current call stack, and it will be easier for me to refactor the code base step by step. Does it make sense? > First version of pluggable storage engine API. > ---------------------------------------------- > > Key: CASSANDRA-13475 > URL: https://issues.apache.org/jira/browse/CASSANDRA-13475 > Project: Cassandra > Issue Type: Sub-task > Reporter: Dikang Gu > Assignee: Dikang Gu > > In order to support pluggable storage engine, we need to define a unified > interface/API, which can allow us to plug in different storage engines for > different requirements. > In very high level, the storage engine interface should include APIs to: > 1. Apply update into the engine. > 2. Query data from the engine. > 3. Stream data in/out to/from the engine. > 4. Table operations, like create/drop/truncate a table, etc. > 5. Various stats about the engine. > I create this ticket to start the discussions about the interface. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org