Open-sourcing a 10x reduction in Apache Cassandra tail latency
31–40 of 171 posts
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#32Weird, did they try to use https://www.scylladb.com/ ?
I was going to say the same thing. It seems pretty clear at this point that Java is not a good programming language to build a database on if you care about strong 99% latency guarantees. The engineers in the article came to this conclusion and so did the Scylla people years ago. Scylla is AGPL for the OSS version though so testing it out would not be an option without getting a commercial license first.
The issue isn't so much Java the language, as it is being aware of the GC, and developing with it in mind.
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#33In a similar situation we just adjust the GC and started to use G1GC which resulted in similar numbers.
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#34Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#35Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#36I'm not an expert on these things, but it seems to me if you're implementing a database in Java you wouldn't want to keep your data on the JVM Heap, as this seems to indicate. My understanding is that in most applications (like servers) the average object lives for a very short period of time, and most GC implementations are built from that idea. But, in a database, especially an in-memory database, the majority of t…
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#37Nicely done! Looking forward to the pluggable storage engine.
The JIRA tickets don't really shine with much hope :/ https://issues.apache.org/jira/browse/CASSANDRA-13474 [2 comments from 2017 Apr] https://issues.apache.org/jira/browse/CASSANDRA-13475 [~100 comments, but the last one is from 2017 Nov, by the InstaG engineer] And the Rocksandra fork is already ~3500 commits behind master, so upstreaming this will be interesting. Oh, and the Rocksandra fork is already kind of aban…
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#38Nicely done! Looking forward to the pluggable storage engine.
The JIRA tickets don't really shine with much hope :/ https://issues.apache.org/jira/browse/CASSANDRA-13474 [2 comments from 2017 Apr] https://issues.apache.org/jira/browse/CASSANDRA-13475 [~100 comments, but the last one is from 2017 Nov, by the InstaG engineer] And the Rocksandra fork is already ~3500 commits behind master, so upstreaming this will be interesting. Oh, and the Rocksandra fork is already kind of aban…
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#39I'm not an expert on these things, but it seems to me if you're implementing a database in Java you wouldn't want to keep your data on the JVM Heap, as this seems to indicate. My understanding is that in most applications (like servers) the average object lives for a very short period of time, and most GC implementations are built from that idea. But, in a database, especially an in-memory database, the majority of t…
This hybrid approach gives the benefit of a managed runtime and safety of GC for most of your code, but allows the performance of raw pointers/malloc for key code paths.
Some examples of this pattern on the JVM:
- The Neo4j Page Cache, Muninn, https://github.com/neo4j/neo4j/blob/3.4/community/io/src/mai...
- The Netty projects implementation of jemalloc for the JVM: https://github.com/netty/netty/blob/4.1/buffer/src/main/java...
Re: Open-sourcing a 10x reduction in Apache Cassandra tail latency
#40What I took out of that is that I really feel like something like Cassandra is better suited to implementation in a language like C++ or Rust. And I believe others have since come along and done this.
I really liked the gossip-based federation in Cassandra though.