[ 
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

Reply via email to