I think pluggable commit log is a great idea if we can do it right! 😃 
*Especially* given the intent here seems to be motivated by improving endurance 
and performance on the given storage you're running C* on. We've actually been 
looking at commit log a bunch recently and doing a pretty deep dive -- even 
getting a low level as looking at how commit log interacts with a drive with a 
SATA protocol analyzer and working to understand how this actually impacts the 
underlying NAND and various drives GC algorithms. I totally think we should 
have different implementations of commit log optimized for the storage you're 
running on. Ideally, we would even automatically suggest the implementation 
that we think will work best for your hardware.

Looking forward to seeing your changes on a branch somewhere!

best,
kjellman

On Oct 31, 2017, at 1:09 PM, 大平怜 
<rei.oda...@gmail.com<mailto:rei.oda...@gmail.com>> wrote:

Hello,

We are developing a Cassandra plugin to store CommitLog on our low-latency
Flash device (CAPI-Flash).  To do that, the original CommitLog interface
must be changed to allow plugins.  Anyone has any thoughts about it?  We
have our codebase ready, but we think we should start with high-level
discussion.

The runtime overhead will be minimal.  The only overhead will be changing
method invocations to CommitLog#add(), CommitLog#getCurrentPosition(), etc.
into interface invocations.

Synching to CommitLog is one of the performance bottlenecks in Cassandra
especially with batch commit.  I think the pluggable CommitLog will allow
other interesting alternatives, such as one using SPDK.  Appreciate any
comments.


Regards,
Rei Odaira

Reply via email to