blob: 76b3be3c234b2c1fa9d18a6179be558dc38f34d5 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Apache Cassandra | Apache Cassandra Documentation</title>
<link rel="stylesheet" href="../../assets/css/site.css">
<meta name="description" content="The Apache Cassandra Community">
<link rel="schema.dcterms" href="https://purl.org/dc/terms/">
<meta name="dcterms.subject" content="_">
<meta name="dcterms.identifier" content="master">
<meta name="generator" content="Antora 2.3.4">
<link rel="icon" href="../../assets/img/favicon.ico" type="image/x-icon">
<script>
const script = document.createElement("script");
const domain = window.location.hostname;
script.type = "text/javascript";
script.src = "https://plausible.cassandra.apache.org/js/plausible.js";
script.setAttribute("data-domain",domain);
script.setAttribute("defer",'true');
script.setAttribute("async",'true');
document.getElementsByTagName("head")[0].appendChild(script);
</script> </head>
<body class="single-post">
<div class="container mx-auto relative">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<meta property="og:type" content="website" />
<meta property="og:description" content="" />
<meta property="og:url" content="/" />
<meta property="og:site_name" content="Apache Cassandra" />
<header id="top-nav">
<div class="inner relative">
<div class="header-social-icons text-right">
<a href="https://twitter.com/cassandra?lang=en" target="_blank" styles="margin-left: 20px;"><img src="../../assets/img/twitter-icon-circle-white.svg" alt="twitter icon" width="24"></a>
<a href="https://www.linkedin.com/company/apache-cassandra/" target="_blank" styles="margin-left: 20px;"><img src="../../assets/img/LI-In-Bug.png" alt="linked-in icon" width="24"></a>
<a href="https://www.youtube.com/c/PlanetCassandra" target="_blank" styles="margin-left: 20px;"><img src="../../assets/img/youtube-icon.png" alt="youtube icon" width="24"></a>
</div>
<div class="cf">
<div class="logo left"><a href="/"><img src="../../assets/img/logo-white-r.png" alt="cassandra logo"></a></div>
<div class="mobile-nav-icon right">
<img class="toggle-icon" src="../../assets/img/hamburger-nav.svg">
</div>
<ul class="main-nav nav-links right flex flex-vert-center flex-space-between">
<li>
<a class="nav-link hide-mobile">Get Started</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/cassandra-basics.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-basics.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Cassandra Basics
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/quickstart.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-rocket.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Quickstart
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/ecosystem.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-ecosystem.png" alt="cassandra basics icon">
</div>
<div class="sub-nav-text teal py-small">
Ecosystem
</div>
</a>
</li>
</ul>
</li>
<li><a class="nav-link" href="/doc/latest/">Documentation</a></li>
<li>
<a class="nav-link" href="/_/community.html">Community</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/community.html#code-of-conduct">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-welcome.png" alt="welcome icon">
</div>
<div class="sub-nav-text teal py-small">
Welcome
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#discussions">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-discussions.png" alt="discussions icon">
</div>
<div class="sub-nav-text teal py-small">
Discussions
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#project-governance">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-governance.png" alt="Governance icon">
</div>
<div class="sub-nav-text teal py-small">
Governance
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#how-to-contribute">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-contribute.png" alt="Contribute icon">
</div>
<div class="sub-nav-text teal py-small">
Contribute
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/community.html#meet-the-community">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-community.png" alt="Meet the Community icon">
</div>
<div class="sub-nav-text teal py-small">
Meet the Community
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/cassandra-catalyst-program.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-catalyst.png" alt="Catalyst icon">
</div>
<div class="sub-nav-text teal py-small">
Catalyst Program
</div>
</a>
</li>
<li class="pa-micro hide-mobile">
<a href="/_/events.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-events.png" alt="Events icon">
</div>
<div class="sub-nav-text teal py-small">
Events
</div>
</a>
</li>
</ul>
</li>
<li>
<a class="nav-link hide-mobile">Learn</a>
<ul class="sub-menu bg-white">
<li class="pa-micro">
<a href="/_/Apache-Cassandra-5.0-Moving-Toward-an-AI-Driven-Future.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-basics.png" alt="Basics icon">
</div>
<div class="sub-nav-text teal py-small">
Cassandra 5.0
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/case-studies.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-case-study.png" alt="Case Studies icon">
</div>
<div class="sub-nav-text teal py-small">
Case Studies
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/resources.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-resources.png" alt="Resources icon">
</div>
<div class="sub-nav-text teal py-small">
Resources
</div>
</a>
</li>
<li class="pa-micro">
<a href="/_/blog.html">
<div class="sub-nav-icon">
<img src="../../assets/img/sub-menu-blog.png" alt="Blog icon">
</div>
<div class="sub-nav-text teal py-small">
Blog
</div>
</a>
</li>
</ul>
</li>
<li><a class="nav-link btn btn--filled" href="/_/download.html">Download Now</a></li>
</ul>
</div>
</div>
</header>
<div class="hero hero--home grad">
<div class="eye"></div>
<div id="home-content" class="text-center flex flex-center flex-column relative z2 ma-xlarge">
<h1>Apache Cassandra Changelog #13</h1>
<h3>March 3, 2022 | The Apache Cassandra Community</h3>
</div>
</div>
<div id="blog-post" class="flex-center py-large arrow">
<div class="blog-breadcrumb mb-medium">
<div class="inner inner--narrow">
<a href="/_/blog.html">« Back to the Apache Cassandra Blog</a>
</div>
</div>
<div class="post-content">
<div class="inner inner--narrow">
<div id="preamble">
<div class="sectionbody">
<div class="imageblock">
<div class="content">
<img src="../_images/blog/changelog_header.jpg" alt="Apache Cassandra Changelog">
</div>
</div>
<div class="paragraph">
<p>Our monthly roundup of key activities and knowledge to keep the community informed.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="release-notes"><a class="anchor" href="#release-notes"></a>Release Notes</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="released"><a class="anchor" href="#released"></a>Released</h3>
<div class="paragraph">
<p>The latest release of Apache Cassandra is <a href="https://www.apache.org/dyn/closer.lua/cassandra/4.0.3/apache-cassandra-4.0.3-bin.tar.gz" target="_blank" rel="noopener">4.0.3</a> (<a href="https://downloads.apache.org/cassandra/4.0.3/apache-cassandra-4.0.3-bin.tar.gz.asc" target="_blank" rel="noopener">pgp</a>, <a href="https://downloads.apache.org/cassandra/4.0.3/apache-cassandra-4.0.3-bin.tar.gz.sha256" target="_blank" rel="noopener">sha256</a>, and <a href="https://downloads.apache.org/cassandra/4.0.3/apache-cassandra-4.0.3-bin.tar.gz.sha512" target="_blank" rel="noopener">sha512</a>), which has been available since 17 February 2022. We released new versions of all supported versions of Cassandra (<a href="https://www.apache.org/dyn/closer.lua/cassandra/3.11.12/apache-cassandra-3.11.12-bin.tar.gz" target="_blank" rel="noopener">3.11.12</a>, <a href="https://www.apache.org/dyn/closer.lua/cassandra/3.0.26/apache-cassandra-3.0.26-bin.tar.gz" target="_blank" rel="noopener">3.0.26</a>) to address a vulnerability <a href="https://lists.apache.org/thread/y4nb9s4co34j8hdfmrshyl09lokm7356" target="_blank" rel="noopener">CVE-2021-44521</a>.</p>
</div>
<div class="paragraph">
<p>Essentially, if you&#8217;re running Cassandra in the following non-default configuration, below, it&#8217;s possible for an attacker to execute arbitrary code on the host:</p>
</div>
<div class="listingblock">
<div class="content">
<pre class="highlightjs highlight"><code class="language-asciidoc hljs" data-lang="asciidoc">enable_user_defined_functions: true
enable_scripted_user_defined_functions: true
enable_user_defined_functions_threads: false</code></pre>
</div>
</div>
<div class="paragraph">
<p>The attacker also needs permission to create user-defined functions as well as this configuration arrangement.</p>
</div>
<div class="paragraph">
<p>We suggest 3.0 users should upgrade to 3.0.26; 3.11 users should upgrade to 3.11.12; and 4.0 users should upgrade to 4.0.3.</p>
</div>
<div class="paragraph">
<p>Thanks to Omer Kaspi of the JFrog Security vulnerability research team for the discovery.</p>
</div>
<div class="paragraph">
<p>Please read the <a href="https://github.com/apache/cassandra/blob/cassandra-4.0/NEWS.txt" target="_blank" rel="noopener">release notes</a> and <a href="https://issues.apache.org/jira/browse/CASSANDRA" target="_blank" rel="noopener">let us know</a> if you encounter any problems.</p>
</div>
<div class="paragraph">
<p>Note: As the docs are not yet updated, the bintray location for Debian users is replaced with the <a href="https://apache.jfrog.io/artifactory/cassandra/" target="_blank" rel="noopener">ASF&#8217;s JFrog Artifactory location</a>.</p>
</div>
<div class="paragraph">
<p>See the <a href="../download.html" class="page">download section</a> for the latest stable and older supported versions of source and binary distributions.</p>
</div>
<div class="paragraph">
<p>To stay up-to-date, we recommend joining the Cassandra <a href="../community.html#discussions" class="page">mailing lists</a>.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="community-notes"><a class="anchor" href="#community-notes"></a>Community Notes</h2>
<div class="sectionbody">
<div class="paragraph">
<p><em>Updates on Cassandra Enhancement Proposals (CEPs), how to contribute, and other community activities.</em></p>
</div>
<div class="paragraph">
<p><em>Are you new to the project? We have a handy <a href="../development/index.html" class="page">‘Contributing to Cassandra’</a> page for how to get involved and get started. Additionally, we have established two boards you should take a look at if you are new to the project. One is a kanban board for <a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=496&amp;quickFilter=2252" target="_blank" rel="noopener">“Failing Tests” tickets that are unassigned</a> and the other corresponds to our <a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=484&amp;quickFilter=2162" target="_blank" rel="noopener">Low Hanging Fruit or “Starter Tickets”</a> for 4.0.x and 4.1.x. Feel free to self-select a ticket to work on.</em></p>
</div>
<div class="paragraph">
<p><em>Any of these tickets should be of appropriate complexity for someone new to the project to tackle. Just remember to assign yourself to the ticket and acknowledge the status, such as ‘Work in Progress’ and ‘Needs Comitter/Patch Available’ when you submit your patch. You can also reach out on the <a href="https://the-asf.slack.com/" target="_blank" rel="noopener">ASF Slack</a> in the #cassandra-dev Slack channel. Use @cassandra_mentors to contact our Cassandra mentors!</em></p>
</div>
<div class="paragraph">
<p>Read PMC member Josh McKenzie’s <a href="https://lists.apache.org/thread/dbv16qwhk0xdxot7l30ddcpj1knhc4ty" target="_blank" rel="noopener">latest bi-weekly update</a> for ongoing discussions and the latest on ticket progress.</p>
</div>
<div class="sect2">
<h3 id="discussed"><a class="anchor" href="#discussed"></a>Discussed</h3>
<div class="paragraph">
<p>The vulnerability, detailed above, generated a discussion on the Apache Cassandra’s <a href="https://lists.apache.org/thread/dk7svwpl1bbncsbkwbf35zbqmsoxjdk2" target="_blank" rel="noopener">hotfix release procedure</a>. The current status of the discussion indicates that future hotfixes will likely be based on a branch off the previously released tag so the difference (diff) on any hotfix only includes the changes for that hotfix and nothing else. It is likely this will involve a lazy-consensus wiki update. Details will be confirmed soon.</p>
</div>
</div>
<div class="sect2">
<h3 id="added"><a class="anchor" href="#added"></a>Added</h3>
<div class="paragraph">
<p>The PMC is pleased to announce that <strong>Anthony Grasso</strong>, <strong>Lorina Poland</strong>, and <strong>Erick Ramirez</strong> have accepted the invitation to become committers! This is a big milestone for the project as we branch out from only having core database code contributors as committers and start recognizing and elevating other parts of our ecosystem. Congrats to you all! 👏</p>
</div>
</div>
<div class="sect2">
<h3 id="passed"><a class="anchor" href="#passed"></a>Passed</h3>
<div class="paragraph">
<p>The discussion on <a href="https://lists.apache.org/thread/mhknw77oyt3nc1cjxxvmckp9r0xnj8rg" target="_blank" rel="noopener">Storage Attached Index (SAI)</a> was closed, moved to a vote and <a href="https://lists.apache.org/thread/6h64dry8rkfg0p17oc4pl0ho4vnxgw13" target="_blank" rel="noopener">passed!</a>. <a href="https://cwiki.apache.org/confluence/x/7DZ4CQ" target="_blank" rel="noopener">SAI</a> is designed to replace the original secondary indexing. This will enable users to index multiple columns on the same table without suffering scaling problems, especially at write time.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="../_images/blog/SAI-channel.PNG" alt="The Cassandra SAI channel on Slack">
</div>
<div class="title">Interested in following the SAI feature development or contributing? Join the dedicated Slack channel #cassandra-sai.</div>
</div>
</div>
<div class="sect2">
<h3 id="passed-2"><a class="anchor" href="#passed-2"></a>Passed</h3>
<div class="paragraph">
<p>The discussion for <a href="https://cwiki.apache.org/confluence/x/kYuqCw" target="_blank" rel="noopener">CEP-19 Trie Memtable Implementation</a> has moved to a <a href="https://lists.apache.org/thread/xcz8dt9bgodono949n79951gyt1sxt31" target="_blank" rel="noopener">vote</a>. Memtables can become a pain point for memory management and garbage collection, <strong>Branimir Lambov</strong> is proposing an alternative memtable implementation based on <a href="https://github.com/blambov/cassandra/blob/CASSANDRA-17240/src/java/org/apache/cassandra/db/tries/MemtableTrie.md" target="_blank" rel="noopener">tries</a>. This feature builds on the <a href="https://cwiki.apache.org/confluence/x/0goBCw" target="_blank" rel="noopener">CEP-11: Pluggable memtable implementations</a></p>
</div>
</div>
<div class="sect2">
<h3 id="discussed-2"><a class="anchor" href="#discussed-2"></a>Discussed</h3>
<div class="paragraph">
<p><strong>Chris Thornett</strong> opened up a topic on the <a href="https://lists.apache.org/thread/7925q7qsrkch654wrq789rpvo4s0xrj5" target="_blank" rel="noopener">Apache Cassandra content process</a> on the wiki for discussion. Please take a look and chime in if you have some experience or interest in this area. Here&#8217;s a <a href="https://cwiki.apache.org/confluence/x/-6rkCw" target="_blank" rel="noopener">link</a> to the post on the Confluence wiki.</p>
</div>
</div>
<div class="sect2">
<h3 id="discussed-3"><a class="anchor" href="#discussed-3"></a>Discussed</h3>
<div class="paragraph">
<p>The project has been actively working on fuzz testing Apache Cassandra for the past several years and in February, <strong>Alex Petrov</strong> and other contributors <a href="https://lists.apache.org/thread/t51wnf58wj7wc73krtrfkvn58fnbh3g2" target="_blank" rel="noopener">merged in support for property based fuzz testing</a>. This approach has already surfaced a number of bugs in complex systems with subtle temporal relationships, and there is an ongoing discussion about rewriting some of our existing old tests to use this new framework. This rewrite would be a great benefit to the project in the long run albeit a significant project.</p>
</div>
<div class="paragraph">
<p>Petrov also cut a 0.0.1 release of <a href="https://github.com/apache/cassandra-harry" target="_blank" rel="noopener">Harry</a>, a fuzz testing tool for Apache Cassandra.</p>
</div>
<div class="paragraph">
<p>If you’d like to learn more about Harry, you can read Petrov’s <a href="Harry-an-Open-Source-Fuzz-Testing-and-Verification-Tool-for-Apache-Cassandra.html" class="page">recent overview blog</a>. You can also reach out to Alex Petrov on the #cassandra-dev Slack channel if you have any questions or need assistance writing your tests, or want to help to extend Harry.</p>
</div>
</div>
<div class="sect2">
<h3 id="discussed-4"><a class="anchor" href="#discussed-4"></a>Discussed</h3>
<div class="paragraph">
<p><strong>Caleb Rackliffe</strong> has been continuing the <a href="https://lists.apache.org/thread/tk9rl0qw9byydbyfr25wx6chs05nm7to" target="_blank" rel="noopener">discussion</a> on moving cassandra.yaml toward a more nested structure, and how to restructure our config .yaml in a manner that&#8217;s easier to comprehend, and maintainable for operators. This has major ramifications for anyone administering many large Cassandra clusters, so if you&#8217;re one of those people please take a few minutes to ramp up on the topic and get involved in the discussion.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="user-space"><a class="anchor" href="#user-space"></a>User Space</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="kinetic-data"><a class="anchor" href="#kinetic-data"></a>Kinetic Data</h3>
<div class="paragraph">
<p>Kinetic Data developed a low-code system, a forms and workflow engine built on top of Apache Cassandra, where, for example, users can define a form with drag and drop fields and store the data in Cassandra.</p>
</div>
<div class="quoteblock">
<blockquote>
Once it&#8217;s set up and running it’s hands off. Quite frankly, it&#8217;s easy from an operations perspective [&#8230;&#8203;] so our customers, they&#8217;re using Cassandra, but they don&#8217;t really realize it [&#8230;&#8203;]. But they do say, ‘it&#8217;s always up. It&#8217;s always fast.’ It&#8217;s all these benefits that you really want the end-user to know about.
</blockquote>
<div class="attribution">
&#8212; John Sundberg<br>
<cite>CEO of Kinetic Data</cite>
</div>
</div>
<div class="paragraph">
<p><em>Do you have a Cassandra case study to share? Email <a href="mailto:cassandra@constantia.io">cassandra@constantia.io</a>.</em></p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="in-the-news"><a class="anchor" href="#in-the-news"></a>In the News</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The New Stack:
<a href="https://thenewstack.io/jfrog-finds-rce-issue-in-apache-cassandra/" target="_blank" rel="noopener">JFrog Finds RCE Issue in Apache Cassandra</a></p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="cassandra-tutorials-more"><a class="anchor" href="#cassandra-tutorials-more"></a>Cassandra Tutorials &amp; More</h2>
<div class="sectionbody">
<div class="paragraph">
<p><a href="Apache-Cassandra-and-Java-SE-11-support.html" class="page">Apache Cassandra and Java SE 11</a> - Chris Thornett</p>
</div>
<div class="paragraph">
<p><a href="Behind-the-scenes-of-an-Apache-Cassandra-Release.html" class="page">Behind the Scenes of an Apache Cassandra Release</a> - Josh McKenzie</p>
</div>
<div class="paragraph">
<p><a href="https://www.youtube.com/watch?v=xeQHa3Z-d-A" target="_blank" rel="noopener">Fast General Purpose Transactions in Apache Cassandra</a> - Benedict Elliott Smith</p>
</div>
<div class="paragraph">
<p><a href="https://medium.com/building-the-open-data-stack/leveraging-virtual-tables-in-apache-cassandra-4-0-520059bb96b7" target="_blank" rel="noopener">Leveraging Virtual Tables in Apache Cassandra 4.0</a> - Aaron Ploetz</p>
</div>
</div>
</div>
</div>
</div>
</div>
<footer class="grad grad--two flex-center pb-xlarge">
<div class="inner text-center z2 relative">
<h2 class="white py-small">Get started with Cassandra, fast.</h2>
<a id="footer-cta" href="/_/quickstart.html" class="btn btn--filled ma-medium">Quickstart Guide</a>
</div>
<div class="inner flex flex-distribute-items mt-xlarge z2 relative">
<div class="col-2">
<div id="footer-logo" class="logo logo--footer mb-medium"><img src="../../assets/img/logo-white-r.png" alt="Cassandra Logo"></div>
<p>Apache Cassandra<img src="../../assets/img/registered.svg" alt="®" style="width:18px;"> powers mission-critical deployments with improved performance and unparalleled levels of scale in the cloud.</p>
<div class="footer-social-icons">
<a href="https://twitter.com/cassandra?lang=en" target="_blank"><img src="../../assets/img/twitter-icon-circle-white.svg" alt="twitter icon" width="24"></a>
<a href="https://www.linkedin.com/company/apache-cassandra/" target="_blank"><img src="../../assets/img/LI-In-Bug.png" alt="linked-in icon" width="24"></a>
<a href="https://www.youtube.com/c/PlanetCassandra" target="_blank"><img src="../../assets/img/youtube-icon.png" alt="youtube icon" width="24"></a>
</div>
</div>
<div class="col-2 flex flex-center">
<ul class="columns-2">
<li class="mb-small"><a href="/">Home</a></li>
<li class="mb-small"><a href="/_/cassandra-basics.html">Cassandra Basics</a></li>
<li class="mb-small"><a href="/_/quickstart.html">Quickstart</a></li>
<li class="mb-small"><a href="/_/ecosystem.html">Ecosystem</a></li>
<li class="mb-small"><a href="/doc/latest/">Documentation</a></li>
<li class="mb-small"><a href="/_/community.html">Community</a></li>
<li class="mb-small"><a href="/_/case-studies.html">Case Studies</a></li>
<li class="mb-small"><a href="/_/resources.html">Resources</a></li>
<li class="mb-small"><a href="/_/blog.html">Blog</a></li>
</ul>
</div>
</div>
</footer>
<div class="lower-footer bg-white pa-medium">
<div class="flex flex-row flex-vert-center">
<div class="pr-medium"><img src="../../assets/img//feather-small.png" alt="ASF" width="20"></div>
<div class="pr-medium"><a href="http://www.apache.org/" target="_blank">Foundation</a></div>
<div class="pr-medium"><a href="https://www.apache.org/events/current-event.html" target="_blank">Events</a></div>
<div class="pr-medium"><a href="https://www.apache.org/licenses/" target="_blank">License</a></div>
<div class="pr-medium"><a href="https://www.apache.org/foundation/thanks" target="_blank">Thanks</a></div>
<div class="pr-medium"><a href="https://www.apache.org/security" target="_blank">Security</a></div>
<div class="pr-medium"><a href="https://privacy.apache.org/policies/privacy-policy-public.html" target="_blank">Privacy</a></div>
<div class="pr-medium"><a href="https://www.apache.org/foundation/sponsorship" target="_blank">Sponsorship</a></div>
</div>
<p class="my-medium">© 2009-<script>document.write(new Date().getFullYear())</script> <a href="https://apache.org" target="_blank">The Apache Software Foundation</a> under the terms of the Apache License 2.0. Apache, the Apache feather logo, Apache Cassandra, Cassandra, and the Cassandra logo, are either registered trademarks or trademarks of The Apache Software Foundation.</p>
</div>
<div id="fade" class="hidden"></div>
<div id="modal" class="hidden">
<div id="close-modal" class="cursor-pointer"><svg viewBox="0 0 24 24" width="24" height="24" stroke="currentColor" stroke-width="2" fill="none" stroke-linecap="round" stroke-linejoin="round" class="css-i6dzq1"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></div>
<div id="mod-content" class="vid-mod-content resp-container"></div>
</div>
<script>
jQuery(function(){
var windowW = $(window).width();
$(document)
.on('click','.mobile-nav-icon',function(){
$('.main-nav').fadeIn();
})
.on('click','.main-nav',function(){
if(windowW <= 1000){
$(this).fadeOut();
}
})
.on('click','#version-toggle',function(){
$(this).toggleClass('active');
$(this).next().fadeToggle();
})
.on('click','#mobile-docs-nav-burger', function(){
$(this).toggleClass('active');
$('.docs-nav').toggleClass('active');
});
var url = window.location.pathname;
var isQuickstart = url.includes('quickstart.html');
if(isQuickstart){
var footerCTA = document.getElementById('footer-cta');
footerCTA.innerHTML = 'Get latest updates';
footerCTA.setAttribute('href', '/_/blog.html');
}
});
</script>
</div>
</body>
<script>
jQuery(function(){
});
</script>
</html>