Apache Cassandra 4.0 Comes in Ready for Production
After nearly six years since the release of Apache Cassandra 3.0, the community behind the distributed NoSQL database has released Apache Cassandra 4.0, touting the project’s readiness for production. While being production-ready may be a given for other software hitting .0 milestones, the same could not be said for Cassandra — until now.
“The goal of Cassandra 4.0, since the beginning, has been very simple: to be able to run it in production from day one of the release,” said Vinay Chella, an engineering manager at Netflix and Apache Cassandra committer. “Even though it sounds simple to start with, to achieve this as a Cassandra developer community, we had really strict guidelines to not compromise on the quality of major releases. This particularly has resulted in over 1,000 bugs being identified and fixed. Many of these only surfaced when we were running Apache Cassandra in the largest scale production workloads in the world, which are notoriously hard to find.”
Patrick McFadin, vice president of developer relations at DataStax, which builds on top of Apache Cassandra, echoed the sentiment, saying that Cassandra 4.0 should be considered a long-term release (LTR).
“It marks an important milestone for operators looking for the most stable version of Cassandra to deploy,” he said. “Even at .0 which is completely unheard of in the database world. Many large operators have already been deploying release candidates into production and are amazed at the difference this makes for them in operational overhead.”
Apache Cassandra 4.0 goes GA. This is a huge milestone. Congratulations and celebration are in order for the whole community! https://t.co/6WXoPX6aLK
— Sam Ramji (@sramji) July 26, 2021
According to a press release, Apache Cassandra was three years in the making since the last 3.x release and “reflects more than 1,000 bug fixes, improvements, and new features.” Meanwhile, a related blog post emphasized the multiple types of testing, including fuzz testing, replay testing, upgrade/diff testing, performance testing, unit/dtest coverage expansion, and fault injection, all purpose-built to cover the “enormous surface area for potential bugs or data corruption.”
InstaClustr Chief Technology Officer Ben Bromhead wrote in an email that they had been running Cassandra 4.0 for the past several months already and that it was “the most tested, mature, and feature-rich release of Cassandra we’ve seen.” He further explained that previous versions of Apache Cassandra experienced “stability difficulties” in early major version releases and that many users previously had to devote engineering resources to simply operating the database itself.
“Given the types of folk who used Apache Cassandra at the time (very large organizations/very large databases) where they could burn engineering cycles on stabilizing production, folks put up with it for a time — but it obviously was not ideal,” wrote Bromhead. “This focus on getting everything tested and improved before the major version release reflects a much broader community and much deeper adoption where new releases need to be rock-solid for everyone and not just those that can afford it. Of course, the larger operators also greatly appreciate the ability to spend engineering cycles on other areas.”
Beyond testing, bug fixes, and stability, Apache Cassandra also introduces a number of features and improvements to improve its speed, reliability, and ability to serve enterprise customers. For example, the new version enables native audit logging and full-query logging, which previously required third-party libraries, and helps to ensure regulatory and security compliance with SOX, PCI, GDPR, or other requirements. Cassandra 4.0 also improves consistency by keeping data replicas in sync to optimize incremental repairs, adds new configuration settings, improves compression efficiency, and minimizes latency by reducing garbage collector pause times.
When asked about the new features, Chella emphasized the speed of Apache Cassandra 4.0, saying simply that “it is fast.”
“When I say fast, it is a single word, but there’s so much involved,” he said. “Node-to-node, internode streaming is more than four to five times faster. And within the node, when we are looking at the throughput, when we are looking at latencies, that’s at least 25% faster, in terms of throughput, in terms of reads and writes. And latencies are much faster than the previous releases, so that helps reduce the cost for all these companies who are running a big fleet of Cassandra.”
Bromhead further summarized the changes, focusing on the operator experience.
“The incredible time and effort put into improving the operator experience sets Cassandra 4.0 apart from previous versions,” he wrote. “This is evident from the extensive testing performed to eliminate more bugs and issues, to the move to zero-copy streaming, to supporting new JVM versions with access to better [garbage collection] strategies. All messages are now governed by enforced resource limits at per-connection, per-endpoint, and global levels, meaningfully bolstering system stability. Thanks to the new zero-copy streaming network framework and improved usage of Netty, Cassandra 4.0 promises better client p99 latencies and node recovery times five times quicker than previous versions, making clusters that much more available and responsive,” wrote Bromhead.
Finally, McFadin pointed to a change in process that he sees improving Cassandra moving forward.
“This also marks the beginning of some amazing changes in the Cassandra ecosystem. The project management committee has made some significant changes in how new features are added to Cassandra called the Cassandra Enhancement Process (CEP),” wrote McFadin. “New features being proposed are only on the 4.x version to maintain stability in the 4.0 release. Now that it has shipped, we’ll see the proposals already put forward added to the project in the next few months. Some of the most exciting are around making Cassandra truly cloud native. You can see the beginning of that now in the K8ssandra project.”
For Chella, the future for Apache Cassandra is “bright,” he said.
“Since we focused heavily on the quality and introduced all of those system tools and techniques as part of our release cycle, from now on, we would be able to release Apache Cassandra much faster, with the confidence that it can be run in production from day one of any major release,” said Chella.