[
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: [email protected]
For additional commands, e-mail: [email protected]