Let's try to make this actionable. Long time contributors/committers/members of the PMC (especially you guys who have been working on internals for 4-8 years):
Setting aside details of the implementation, does anyone feel that pluggable storage in itself is inherently a bad idea (so much so that you'd -1 it if someone else did the work)? If we can establish loose consensus on it being something generally acceptable (assuming someone can come up with an interface/abstraction upon which everyone can agree), then it seems like the next step is working on defining the proper interface. - Jeff On Wed, Apr 19, 2017 at 9:21 AM, Dikang Gu <dikan...@gmail.com> wrote: > Hi Cassandra developers, > > This is Dikang from Instagram, I'd like to share you some experiment > results we did recently, to use RocksDB as Cassandra's storage engine. In > the experiment, I built a prototype to integrate Cassandra 3.0.12 and > RocksDB on single column (key-value) use case, shadowed one of our > production use case, and saw about 4-6X P99 read latency drop during peak > time, compared to 3.0.12. Also, the P99 latency became more predictable as > well. > > Here is detailed note with more metrics: > > https://docs.google.com/document/d/1Ztqcu8Jzh4USKoWBgDJQw82DBurQm > sV-PmfiJYvu_Dc/edit?usp=sharing > > Please take a look and let me know your thoughts. I think the biggest > latency win comes from we get rid of most Java garbages created by current > read/write path and compactions, which reduces the JVM overhead and makes > the latency to be more predictable. > > We are very excited about the potential performance gain. As the next step, > I propose to make the Cassandra storage engine to be pluggable (like Mysql > and MongoDB), and we are very interested in providing RocksDB as one > storage option with more predictable performance, together with community. > > Thanks. > > -- > Dikang >