cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dikang Gu (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-13475) First version of pluggable storage engine API.
Date Tue, 31 Oct 2017 03:37:02 GMT


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:
>             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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message