Thanks Mick! Nice performance section and numbers. Paul
From: Mick <[email protected]> Date: Tuesday, 30 December 2025 at 10:43 pm To: [email protected] <[email protected]>, [email protected] <[email protected]> Subject: Cassandra 2025 Year in Review & Gratitudes EXTERNAL EMAIL - USE CAUTION when clicking links or attachments Hi Cassandra community, With the close of 2025 here, here’s my reflection and thanks to the community. Feel free to pile on and add anything I’ve missed (more than likely :) This year felt notably more grounded: more regular releases, a more diverse contributor base, and a lot of the unglamorous, detail-oriented improvements and maintenance work that make a distributed database trustworthy. The small stuff— the patch releases, the reviews, maintaining CI, IP hygiene and ASF processes, doc fixes, and clear, constructive communication with a bias toward action—are not just “details.” They are the cohesion and sustainability of the project. To sum up the year, here is my selection of a few fun stats and milestones: • 26 releases shipped across 5 release branches (3 maintained), including 11 subproject releases¹ • Test growth: 62k tests added² in trunk, from 135k in cassandra-5.0 to 197k in trunk, an increase of ~45% • Release-train commitment is back³: we aim for an annual major release each April, with quarterly trunk alphas (Jul/Oct/Jan) • Drivers++ donated to the project: Java, GoCQL, C/C++, Python, Spark Connector; NodeJS in progress; CCM and Easy-Cass-Stress were also donated⁴ • A steady increase in CEP activity across core, ops, and ecosystem integration • 57% more posts, 21% more threads, and 6% more people posting on the dev mailing list⁵ If I were to break it up into a few themes, it would go like… Shipping with confidence, Performance economics, Platform surface area, 2026 and 6.0, and Community and communication hygiene. ** Shipping with confidence ** We maintained three active release branches with regular patch versions, and continued to support older branches when security concerns warranted it. Ecosystem artifacts: drivers, Sidecar, and Analytics; also shipped. The maintenance load feels sustainable, and the release cadence should give operators clear expectations going into 2026. Tip for operators: if you’re waiting for a release due to a particular ticket/commit, reach out on #cassandra-dev⁶ and let it be known. We also saw Cassandra’s operational “surface area” strengthen in a number ways: • Repairs becoming an automated capability in-tree⁷ • Sidecar discussions increasingly framed as “control plane” building blocks (rolling restarts, diagnostics, CLI ergonomics) • 160+ nodetool commands converted from Airline to Picocli— simplifying the code, improving safety and maintainability, and preserving compatibility⁸ • Increased continuation of security and safety fixes across configuration, tooling, and dependencies • Comments and security labels on schema elements (CEP-52)⁹ • Constraints Framework (CEP-42)¹⁰ merged, and CQL Management API (CEP-38)¹¹ in progress On the contributor-experience front, we saw a healthy increase in tests and continued CI stabilization. The CI pipeline and Jenkins infrastructure is now repeatable¹² on any Kubernetes cluster. Building on that, AWS has donated substantial capacity in pre-ci.cassandra.apache.org — an important step toward unblocking and accelerating contributors, and a catalyst for expanding contributor diversity. Local development also got easier: running individual tests is simpler now with our testing scripts¹³. *** Performance economics (big TCO wins) *** Cassandra 5.0 has been GA for 16 months¹⁴ and is delivering major performance and TCO gains – You crazy if you’re not now on it. Tip for operators: look at cassandra_latest.yaml¹⁵ for the best “defaults” reference. The settings there are production-safe; they are not in cassandra.yaml because we’re conservative about changing defaults for existing production clusters during upgrades. This aligns with the project’s approach of reducing surface-change risk during upgrades and introducing new capabilities for a cycle in experimental (or not-enabled-by-default) mode. Some key performance improvements: • Density improvements via UCS¹⁶ + Tries¹⁷ + JDK17 (lower tail latencies and 2–6× denser nodes) • Separated compaction buffer read-ahead for compaction (CASSANDRA-15452) • Zero Copy Streams proving a successful combination¹⁸ with UCS (important for running denser nodes) • ZSTD with dictionary SSTable compression¹⁹ • Ongoing work reducing object allocations on hot paths (e.g., writing 2 million rows/sec)²⁰ • Cursor-based compactions (CASSANDRA-20918) • JDK21 support (CASSANDRA-18831) • Finishing Transient Replication/Witnesses (CEP-46)²¹ • Mutation repairs (CEP-45)²² • Flat keys and trie interfaces (CEP-57)²³ And some performance numbers: • 5.0 with UCS + Tries + JDK17 gives 3–8× node density increase over 4.1 • 38% better write perf²⁴ and 12% better read perf over 4.1 • an independent benchmark comparing 5.0 against 3.0/3.11 reported: • up to 3× throughput on KeyValue workloads • up to 10× latency reduction on saturated IoT/time-series workloads • up to 2× LWT throughput contention ceiling (Paxosv2) • up to 4× TCO reduction As always: validate your specific workload. Different data models behave very differently, and anti-patterns in particular can shift materially as performance fixes land. *** Platform surface area (ecosystem & integration) *** Sidecar + Analytics shipped²⁵, enabling practical integration with analytics and ML/AI ecosystems and operational workflows. This includes seamless import+export of big data in standard formats (e.g., Parquet or any Spark-supported format) and point-in-time (snapshot-based) Spark jobs that don’t impact Cassandra’s performance or latencies. Personally, this is one of the most exciting product improvements I’ve seen from Cassandra, a foundational step for building HTAP capabilities off a low-latency OLTP database. Drivers in the project now include Java, Go, C/C++, Python—and soon NodeJS. Onboarding these codebases takes real work (releases, docs, CI, etc.), and we are always looking for extra hands. Drivers are often a user’s first point of code contact with the project, and it is one of the best ways to get introduced and involved (let’s keep spreading the word). *** 2026 and 6.0 *** Looking into 2026 and 6.0, our “biggest rocks” are: • TCM as an explicit direction for cluster metadata– a foundation for many new features and improvements²⁶ • Accord continuing as a major line of investment and now merged in trunk; it’s a significant industry-first milestone toward strict serializability in open source²⁷ • Building on Accord, Jeff’s quick remarkably simple prototype for SQL/Postgres compatibility²⁸ By LOC some of the largest patches that have landed in trunk were: • Automated Repair Inside Cassandra (CEP-37)⁷ • Cursor-based optimized compaction path (CASSANDRA-20918) • ZSTD dictionary compression support¹⁹ • Migration of all nodetool commands from Airline to Picocli⁸ *** Community and communication hygiene *** One of the healthiest signals this year wasn’t code or benchmarks (despite some jaw-dropping ones). It was the community and communication hygiene. On the community front, a big thank you to Paulo and everyone involved in organizing and presenting this year’s Cassandra track at Community Over Code in Minneapolis. Fun fact: Cassandra was the most mentioned technology at the conference²⁹. All the videos from the talks are found on youtube³⁰. We also saw a resurgence of Cassandra meetups across the USA. Hopefully we’ll see more of that outside the US as well, as well as efforts to move past meetups from meetups.com to luma.com On communication hygiene: the dev mailing list has become much easier to only partly follow while still staying informed and included. Better threading and conclusions, the CEP process, and the monthly-style community updates are all useful for digesting and onboarding, tracking releases, spotting high-leverage discussions, and understanding CI/velocity without reading every thread end-to-end. Special thanks to Himanshu Jindal and Josh McKenzie for the digests along the way— these efforts become increasingly important as the project expands across subprojects and ecosystem surface area. All of this has also made it easy to run our socials on BlueSky, LinkedIn, and X. I’ve been using Buffer.com to schedule posts across channels and I only need to spend a handful of minutes every few weeks to queue up content. Reach out if you’d like to help out here too. And if you’re not already on BlueSky³¹, join us there—there’s a strong database crowd and healthy engagement but we could use more from C* peeps. To wrap up, here are a few examples of the big discussion threads from this year: • Roadmap to Cassandra Analytics 1.0³² • CEP-48: First-Class Materialized View Support³³ • CEP-50: Authentication Negotiation³⁴ • JDK support policy clarification (modernizing baselines by aligning GA branches with current JDK LTS expectations)³⁵ • How we version our releases (sticking to major versions for annual major versions)³⁶ • CEP-49: Hardware-Accelerated Compression (strong interest in keeping vendor-specific logic out of core and staying pluggable)³⁷ • Release cadence commitment: April-to-April major-branch rhythm and quarterly alphas, with a stated transition plan as 6.0 approaches³ Hope you all got a decent break, a quiet moment with people you care about, and of course a little time to ponder what Cassandra holds for 2026. Thanks for the awesome year. Mick ––––––––– References: 1 – Downloads archive https://urldefense.com/v3/__https://archive.apache.org/dist/cassandra/__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sRO_bETA$ 2 – Tests increase https://urldefense.com/v3/__https://ci-cassandra.apache.org/job/Cassandra-trunk/__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sa6fiYJw$ 3 – April Major Releases https://urldefense.com/v3/__https://lists.apache.org/api/source.lua?id=nr39vc5t357pd8cjlshxb5nxb95zmdsx__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6utyFxAQg$ 4 – IP donations https://urldefense.com/v3/__https://incubator.apache.org/ip-clearance/__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6t_GMGIDg$ 5 – dev@ ML stats https://urldefense.com/v3/__https://demo.kibble.apache.org/dashboard.html?page=mail&view=7b60f3612e40b043f4024665a1e4b8e73fff74f7ef38c41f04d2d1a7&from=1735426800&to=1767049199__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tUEuvwsg$ 6 – Slack #cassandra-dev https://urldefense.com/v3/__https://the-asf.slack.com/archives/CK23JSY2K__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6uht0AC2Q$ 7 – Automated Repairs (CEP-37) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-37*3A*2BApache*2BCassandra*2BUnified*2BRepair*2BSolution__;JSUlJSUl!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6v1x8Qk2g$ 8 – Migrate nodetool from airline to picocli https://urldefense.com/v3/__https://issues.apache.org/jira/browse/CASSANDRA-17445__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6twiCYXcw$ 9 – Schema Annotations (CEP-52) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-52*3A*Schema*Annotations*for*ApacheCassandra__;JSsrKys!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tkXZbRXg$ 10 – Constraints Framework (CEP-42) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-42*3A*Constraints*Framework__;JSsr!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6vxAYatzw$ 11 – CQL Management API (CEP-38) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-38*3A*CQL*Management*API__;JSsrKw!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6t9eYc-pQ$ 12 – Repeatable ci-cassandra – https://urldefense.com/v3/__https://issues.apache.org/jira/browse/CASSANDRA-18137__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tdTzXkNg$ 13 – Test scripts – https://urldefense.com/v3/__https://github.com/apache/cassandra/blob/cassandra-5.0/.build/README.md__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6uXIctK-Q$ 14 – Announcing 5.0 GA https://urldefense.com/v3/__https://cassandra.apache.org/_/blog/Apache-Cassandra-5.0-Announcement.htm__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tVFfjt8A$ 15 – cassandra_latest.yaml https://urldefense.com/v3/__https://github.com/apache/cassandra/blob/cassandra-5.0/conf/cassandra_latest.yam__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6s45lDoAA$ 16 – UCS https://urldefense.com/v3/__https://cassandra.apache.org/doc/5.0/cassandra/managing/operating/compaction/ucs.html__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sztT33lA$ 17 – Tries https://urldefense.com/v3/__https://cassandra.apache.org/_/blog/Apache-Cassandra-5.0-Features-Trie-Memtables-and-Trie-Indexed-SSTables.html__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6s1Macnbw$ 18 – UCS + ZCS https://urldefense.com/v3/__https://the-asf.slack.com/archives/CK23JSY2K/p1765991829139219__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6umnrBUPQ$ 19 – ZSTD with Dictionary (CEP-54) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-54*3A*ZSTD*with*Dictionary*SSTable*Compression__;JSsrKysr!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tl4FkWkw$ 20 – 2.2M rows per second https://urldefense.com/v3/__https://www.linkedin.com/feed/update/urn:li:activity:7398115300140896256/__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6s4_sIKiw$ 21 – Finishing Transient Replication/Witnesses https://urldefense.com/v3/__https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=353601959__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sMwAtXmQ$ 22 – Mutation Tracking https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-45*3A*Mutation*Tracking__;JSsr!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6t-ssq-dA$ 23 – Flat keys and trie interfaces https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-57*3A*Flat*keys*and*trie*interfaces__;JSsrKysr!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6v6RAr1kQ$ 24 – perf comparison between 4.1 and 5 – https://urldefense.com/v3/__https://www.linkedin.com/pulse/performance-comparison-between-cassandra-version-41-5-jiri-steuer-pxbtf__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tgCDCBGg$ 25 – Spark Bulk (CEP-28) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-28*3A*2BReading*2Band*2BWriting*2BCassandra*2BData*2Bwith*2BSpark*2BBulk*2BAnalytics__;JSUlJSUlJSUlJQ!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6vUEotEfg$ 26 – TCM (CEP-21) https://urldefense.com/v3/__https://cwiki.apache.org/confluence/display/CASSANDRA/CEP-21*3A*2BTransactional*2BCluster*2BMetadata__;JSUlJQ!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6u3qZeCmw$ 27 – Accord & Strict Serializability https://urldefense.com/v3/__https://cwiki.apache.org/confluence/x/FQRACw__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6utKhAQ5A$ 28 – Jeff’s Postgres demo https://urldefense.com/v3/__https://lists.apache.org/thread/3ronbmprckk2897yw94v3lc1lqggf872__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6vxNCdLAg$ 29 – Cassandra @ CoC – https://urldefense.com/v3/__https://www.linkedin.com/pulse/community-over-code-apache-software-foundation-na-2025-paul-brebner-irznc__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6vhIvlCYQ$ 30 – Community Over Code videos https://urldefense.com/v3/__https://www.youtube.com/playlist?list=PLqcm6qE9lgKKvJ456OBZzcvMZ6YFpCyUg__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6vfSY-SlA$ 31 – BlueSky https://urldefense.com/v3/__https://bsky.app/profile/cassandra.apache.org__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sUAEC62Q$ 32 – Cassandra Analytics 1.0 https://urldefense.com/v3/__https://lists.apache.org/thread/r29nskkc3j183fl0k1sd91tp7z051zwt__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6sJpUnv_Q$ 33 – CEP-48: First-Class Materialized View Support https://urldefense.com/v3/__https://lists.apache.org/thread/wbn1kvz8yshcf1z0ozjf7wpsgmvmkwvj__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6v4ppXNZw$ 34 – CEP-50: Authentication Negotiation https://urldefense.com/v3/__https://lists.apache.org/thread/cdx4fttq72j4dz7cyhxp14pt7k6rd6bc__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6t77wX_5g$ 35 – How we handle JDK support https://urldefense.com/v3/__https://lists.apache.org/thread/vr7j2ob92k6fbcwvlfo60l3scylzdbft__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tR3h_mfQ$ 36 – How we version our releases https://urldefense.com/v3/__https://lists.apache.org/thread/jy6vodbkh64plhdfwqz3l3364gsmh2lq__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6tTMUBrWA$ 37 – Hardware-accelerated compression CEP-49) https://urldefense.com/v3/__https://lists.apache.org/thread/t766stj07rb9vgrg2cyyd5s7n3g2zdgt__;!!Nhn8V6BzJA!TDHlHsca7qETlaDovAsiDA9Ic83GUZah_B_QrKUyu5RR_8bBczfIYvLsVFhN54p-glz3F6s0w6OUNQ$
