blob: 7e5d8c698ac1bfbd9e5f6ac98b2e3c4c6f560ffd [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="Interview with Aleksandr Sorokoumov">
<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>Inside Cassandra: An Interview with Project Contributor, Aleksandr Sorokoumov</h1>
<h3>April 21, 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="paragraph">
<p>If communities are the heart of a project, contributors are the lifeblood that keeps open source development pumping away. This time we introduce Aleksandr Sorokoumov. If his volunteer work on the Apache Cassandra project inspires you to get involved, try reading our guide <a href="../development/index.html" class="page">‘Contributing to Cassandra’</a>.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="../_images/blog/inside-Cassandra-Aleksandr-Sorokoumov.png" alt="Aleksandr Sorokoumov">
</div>
</div>
</div>
</div>
<div class="sect2">
<h3 id="about-our-contributor"><a class="anchor" href="#about-our-contributor"></a>About Our Contributor</h3>
<div class="paragraph">
<p>Based in Germany, Aleksandr Sorokoumov is a software engineer at Confluent, where he works on ksqlDB, a database purpose-built for stream processing applications. Previously, he was employed at DataStax working on DSE storage engine and AstraDB, a cloud-native database built on top of Apache Cassandra. As well as contributing code to the project, he’s also begun contributing technical write-ups to share some of his hard-fought-for experience with users and contributors.</p>
</div>
</div>
<div class="sect2">
<h3 id="contributor-questions"><a class="anchor" href="#contributor-questions"></a>Contributor Questions</h3>
<div class="paragraph">
<p><strong>Question:</strong> What are you currently working on, or have worked on, in the past for the Apache Cassandra project?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> I am currently working on an article about the internals of CommitLog. This is a component in Apache Cassandra responsible for durability. I worked on several projects at my previous job that required an in-depth understanding of how CommitLog works. It took me some time to find out the details as I had to dig into old JIRA issues and ask experts clarifying questions. I believe this information will benefit DBAs and new contributors; therefore, I felt it would be good to share it.</p>
</div>
<div class="paragraph">
<p>Previously, I worked on improving serialization efficiency (<a href="https://issues.apache.org/jira/browse/CASSANDRA-15215" target="_blank" rel="noopener">CASSANDRA-15215</a>). <a href="https://developers.google.com/protocol-buffers/docs/encoding#varints" target="_blank" rel="noopener">VInt</a> (or Varints) is an encoding used to serialize integers, so that smaller numbers occupy less space. With my patch, the serialization throughput increased by up to 30%.</p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> What’s been the most rewarding aspect of being part of the Apache Cassandra community?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> There are two important aspects I would like to mention. First of all, it is interaction with the community members. People working on Apache Cassandra are among the most supportive and experienced professionals I have had a chance to work with. Collaborating with them creates a ton of learning opportunities. The second aspect is the impact of the work you do. Apache Cassandra is a database running at a massive scale that powers the infrastructure of many well-known companies. It just feels great to know that my work is deployed at that scale.</p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> For someone reading this and can help, what types of contributions or support do you think the Cassandra community needs, or is there anything they can do to help you?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> In my opinion, one of the areas the Cassandra community will always appreciate help is work on quality. Cassandra 4.0 was a great breakthrough for the project in paying back the technical debt.</p>
</div>
<div class="paragraph">
<p>With many upcoming exciting features in-flight, it takes constant effort from everyone to maintain the high bar. In my opinion, fixing a failing test is one of the best ways to get started. Such issues are often well-scoped, and the community always welcomes patches in this area.</p>
</div>
<div class="paragraph">
<p><strong>Note:</strong> <em>If you’d like to try fixing some failing tests, you can find unassigned tickets on <a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=496&amp;quickFilter=2252" target="_blank" rel="noopener">this kanban board</a>.</em></p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> What areas of interest and fields are you passionate about in your career?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> I am passionate about distributed databases and streaming systems. One of the aspects I love about these fields is the bi-directional feedback loop between industry and academia. On the one hand, concepts behind systems like Apache Cassandra were first described in research publications. For example, <a href="/doc/latest/cassandra/new/transientreplication.html">Transient Replication</a> implements an algorithm published in <a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.146.3429&amp;rep=rep1&amp;type=pdf" target="_blank" rel="noopener">a paper in 1986</a>. How cool is that? On the other hand, the communities working on production systems contribute back new theoretical approaches. A recent example is <a href="https://cwiki.apache.org/confluence/x/FQRACw" target="_blank" rel="noopener">Accord</a>, which is a leaderless protocol for distributed transactions.</p>
</div>
<div class="paragraph">
<p>Successful projects in these areas often live for a long time and have a massive impact on the entire industry. Apache Cassandra is 13 years old, an impressive age for a piece of software, yet we have an energetic community and so many exciting upcoming features.</p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> How were you introduced to open source software development, and what was your first contribution to an open source project?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> I was fortunate to participate in <a href="https://summerofcode.withgoogle.com/" target="_blank" rel="noopener">Google Summer of Code in 2014</a> during my Master&#8217;s studies. I worked on <a href="https://github.com/incanter/incanter" target="_blank" rel="noopener">Incanter</a>, a data-science library for Clojure and its integration with <a href="https://github.com/mikera/core.matrix" target="_blank" rel="noopener">core.matrix</a> - a pluggable backend for array programming.</p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> What advice would you give to someone getting started with open source projects?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> Don&#8217;t be shy to reach out to the community. I know from personal experience that it might feel scary at first to ask questions in public mediums, such as mailing lists or Slack. However, there are many fantastic open source communities, such as Apache Cassandra, where people will be happy to help you find a starting issue, answer questions, and review patches.</p>
</div>
<div class="paragraph">
<p><strong>Question:</strong> What do you like to do with your spare time when you&#8217;re not volunteering on the project?</p>
</div>
<div class="paragraph">
<p><strong>Answer:</strong> I like to learn new skills in my free time. I am currently learning how to play an electric guitar.</p>
</div>
</div>
<div class="sect2">
<h3 id="how-to-contribute"><a class="anchor" href="#how-to-contribute"></a>How to contribute</h3>
<div class="paragraph">
<p>As well as the diving into failing tests, as mentioned above, a good starting point for anyone wanting to help with code is our unassigned “Starter Tickets” for versions 4.0.x and 4.1.x, which you’ll find listed on <a href="https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=484&amp;quickFilter=2162&amp;quickFilter=2160" target="_blank" rel="noopener">this kanban board</a>. Just remember to assign yourself to the ticket and acknowledge the status, such as ‘Work in Progress’ and ‘Needs Committer/Patch Available’ when you submit your patch.</p>
</div>
<div class="paragraph">
<p>You can also introduce yourself to active developers on the <a href="https://the-asf.slack.com/" target="_blank" rel="noopener">ASF Slack</a> in the #cassandra-dev Slack channel. If you use <code>@cassandra_mentors</code>, that will put you in touch with our Cassandra mentors.</p>
</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>