[ 
https://issues.apache.org/jira/browse/CASSANDRA-13475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16247935#comment-16247935
 ] 

Dikang Gu commented on CASSANDRA-13475:
---------------------------------------

I agree it's a huge task, and there will be significant effort needed to 
refactor existing storage engine. IMO, this is the cost we need to pay, in 
order to make Cassandra a world class database. It helps us to estimate the 
resources and timeline of this project, but should be not the excuse that we 
can not do it.

RocksDB is not within the scope of this particular "pluggable storage engine" 
project, it's the motivation why we want the pluggable storage engine so much. 
Cassandra's read performance, especially P99 read latency is not great, while 
RocksDB is a solid and well tuned LSM engine. We have put multiple engineers, 
spent 6+ months to prove that we can get huge performance gains, by leveraging 
RocksDB as the storage engine. And we have deployed it in our production 
environment, under real traffic. So we are committed to the pluggable storage 
engine project, to avoid a fork of Cassandra within Instagram/Facebook.

Back to step 1, the scope/expectation/guideline of the project, I agree with 
Blake, Aleksey and Sylvain, we want to do it in right way, definitely not a 
hack in the database. I think we are on the same page of the high quality of 
the refactoring, and I'm very happy to discuss more details on step 1.  

I chatted with Nate, Blake and Jon offline, I will convert the design quip to a 
more formal design doc, and we can discuss there.

Also, I will change the title of this jira, the "First version of pluggable 
storage engine API." is probably a bit mis-leading at this moment.


> 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. 
> Here is a design quip we are currently working on:  
> https://quip.com/bhw5ABUCi3co
> 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