This is an automated email from the ASF dual-hosted git repository.

mck pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra-website.git


The following commit(s) were added to refs/heads/trunk by this push:
     new ebdfcf2  Added September 2021 blog post: "Reaper: Anti-entropy Repairs 
Made Easy" about running repairs using Reaper
ebdfcf2 is described below

commit ebdfcf2027eefeba75efda3cb61a481b49041e0f
Author: Diogenese Topper <diotop...@gmail.com>
AuthorDate: Tue Sep 14 15:08:54 2021 -0700

    Added September 2021 blog post: "Reaper: Anti-entropy Repairs Made Easy" 
about running repairs using Reaper
    
     patch by Alexander Dejanovski, Diogenese Topper; reviewed by Erick 
Ramirez, Mick Semb Wever for CASSANDRA-16964
---
 .../image1.png                                     | Bin 0 -> 122235 bytes
 .../image2.png                                     | Bin 0 -> 137881 bytes
 .../image3.png                                     | Bin 0 -> 128102 bytes
 .../image4.png                                     | Bin 0 -> 99198 bytes
 .../image5.png                                     | Bin 0 -> 74683 bytes
 .../image6.png                                     | Bin 0 -> 341337 bytes
 .../image7.png                                     | Bin 0 -> 119139 bytes
 .../image8.png                                     | Bin 0 -> 131648 bytes
 site-content/source/modules/ROOT/pages/blog.adoc   |  28 ++++++-
 .../blog/Reaper-Anti-entropy-Repair-Made-Easy.adoc |  82 +++++++++++++++++++++
 10 files changed, 108 insertions(+), 2 deletions(-)

diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image1.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image1.png
new file mode 100644
index 0000000..0b34c65
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image1.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image2.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image2.png
new file mode 100644
index 0000000..2b3faa3
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image2.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image3.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image3.png
new file mode 100644
index 0000000..9d4e8e6
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image3.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image4.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image4.png
new file mode 100644
index 0000000..a0b5b8a
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image4.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image5.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image5.png
new file mode 100644
index 0000000..45b154c
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image5.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image6.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image6.png
new file mode 100644
index 0000000..5666c53
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image6.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image7.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image7.png
new file mode 100644
index 0000000..d79e560
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image7.png
 differ
diff --git 
a/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image8.png
 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image8.png
new file mode 100644
index 0000000..a9aa6b2
Binary files /dev/null and 
b/site-content/source/modules/ROOT/images/blog/blog-post-reaper-anti-entropy-repair/image8.png
 differ
diff --git a/site-content/source/modules/ROOT/pages/blog.adoc 
b/site-content/source/modules/ROOT/pages/blog.adoc
index e73eb44..e190232 100644
--- a/site-content/source/modules/ROOT/pages/blog.adoc
+++ b/site-content/source/modules/ROOT/pages/blog.adoc
@@ -39,9 +39,33 @@ 
xref:blog/Apache-Cassandra-Changelog-10-October-2021.adoc[Read More]
 [openblock,card-header]
 ------
 [discrete]
+=== Reaper: Anti-entropy Repair Made Easy 
+[discrete]
+==== September 28, 2021
+------
+[openblock,card-content]
+------
+Originally designed by Spotify, Reaper is an open source written in Java to 
schedule and orchestrate repairs of Apache Cassandra clusters. It helps make 
repairs as safe and reliable as possible, and with the recent release of Apache 
Cassandra 4.0 that also includes incremental repairs.
+
+[openblock,card-btn card-btn--blog]
+--------
+[.btn.btn--alt]
+xref:blog/Reaper-Anti-entropy-Repair-Made-Easy.adoc[Read More]
+--------
+
+------
+----
+//end card
+
+//start card
+[openblock,card shadow relative test]
+----
+[openblock,card-header]
+------
+[discrete]
 === Join Cassandra at Apachecon 2021
 [discrete]
-==== August 27, 2021
+==== September 20, 2021
 ------
 [openblock,card-content]
 ------
@@ -66,7 +90,7 @@ xref:blog/Join-Cassandra-at-ApacheCon-2021.adoc[Read More]
 [discrete]
 === Cassandra on Kubernetes: A Beginner's Guide 
 [discrete]
-==== August 27, 2021
+==== September 4, 2021
 ------
 [openblock,card-content]
 ------
diff --git 
a/site-content/source/modules/ROOT/pages/blog/Reaper-Anti-entropy-Repair-Made-Easy.adoc
 
b/site-content/source/modules/ROOT/pages/blog/Reaper-Anti-entropy-Repair-Made-Easy.adoc
new file mode 100644
index 0000000..ca14fb1
--- /dev/null
+++ 
b/site-content/source/modules/ROOT/pages/blog/Reaper-Anti-entropy-Repair-Made-Easy.adoc
@@ -0,0 +1,82 @@
+= Reaper: Anti-entropy Repair Made Easy
+:page-layout: single-post
+:page-role: blog-post
+:page-post-date: September 28, 2021
+:page-post-author: Alexander Dejanovski
+:description: The Apache Cassandra Community
+:keywords: 
+
+Reaper is an open source tool written in Java and built with Dropwizard to 
schedule and orchestrate repairs of Apache Cassandra clusters. It was 
originally 
https://www.slideshare.net/planetcassandra/spotify-automating-cassandra-repairs[designed
 and open-sourced by Spotify,window=_blank] in an attempt to automate repairs 
while applying best practices from their solid production experience.
+
+=== Repair Challenges
+
+Anti-entropy repair is traditionally performed using the nodetool repair 
command. It can be performed in two ways, full or incremental, and configured 
to repair various token ranges: all, primary range, or sub-range. Add to this 
different validation compaction orchestration settings (sequential, parallel, 
and data center aware), the fact that anti-compaction may trigger in some 
cases, and you're down a rabbit hole of complexity. All this for an operation 
that is mandatory and should be s [...]
+In the 1.x/2.x days of Cassandra (and probably after that), some operators 
simply gave up on repairing their clusters due to the difficulties involved in 
completing the operation successfully without impacting SLAs.
+The main problems encountered during repairs were:
+
+* A high number of pending compactions and SSTables on disk
+* Repairs taking longer than the tombstones GC grace period
+* High cluster load due to repair pressure
+* Blocked/never-ending repairs
+* A repair that isn't resumable in case of failure
+* vnodes made the operation very long and challenging to perform
+
+==== Reaper performs safe repairs
+
+Reaper was built to address those issues and make repairs as safe and reliable 
as possible. It splits the repair operations into evenly sized subranges and 
schedules them so that:
+
+* All nodes are kept busy repairing small units of data if possible
+* A single segment is running on a node at once
+* Segments lasting too long are terminated and re-scheduled
+* Failed segments get replayed in case of a transient failure
+* Pending compactions are monitored to pause segment scheduling, preventing 
overload
+* Repairs can be paused
+
+The tool also supports incremental repair, which should be safely usable 
starting with Cassandra 4.0. Since Cassandra 3.0, Reaper can create segments 
with several token ranges to reduce the overhead of vnodes on repairs. Such 
ranges will be repaired in a single job by Cassandra as segments will only 
contain ranges that are replicated on the same set of nodes.
+
+=== Reaper Features
+
+Reaper ships with a http://cassandra-reaper.io/docs/api/[REST 
API,window=_blank], a command-line tool (spreaper) and a Web UI:
+
+image::blog/blog-post-reaper-anti-entropy-repair/image5.png[cluster view]
+
+It collects and displays runtime Cassandra metrics, running compactions and 
ongoing streaming sessions: 
+
+image::blog/blog-post-reaper-anti-entropy-repair/image6.png[node metrics]
+
+Reaper ships with a scheduler for recurring repairs but can also perform 
on-demand one-off repairs:
+
+image::blog/blog-post-reaper-anti-entropy-repair/image7.png[scheduler]
+
+image::blog/blog-post-reaper-anti-entropy-repair/image4.png[repair]
+ 
+It's easy to install as a 
http://cassandra-reaper.io/docs/download/install/[tarball,window=_blank], a 
https://hub.docker.com/r/thelastpickle/cassandra-reaper/[Docker 
container,window=_blank], or 
https://cloudsmith.io/%7Ethelastpickle/repos/reaper/packages/[deb/rpm 
packages,window=_blank] and can be deployed in various ways to accommodate your 
http://cassandra-reaper.io/docs/usage/multi_dc_distributed/[cluster's 
architecture,window=_blank]. A single Reaper instance is capable of managing  
[...]
+
+image::blog/blog-post-reaper-anti-entropy-repair/image8.png[singlereaper 
multidc]
+
+image::blog/blog-post-reaper-anti-entropy-repair/image3.png[multireaper 
multidc]
+
+image::blog/blog-post-reaper-anti-entropy-repair/image2.png[ha reaper setup]
+
+If JMX is restricted to local access, Reaper can even be deployed as a sidecar:
+
+image::blog/blog-post-reaper-anti-entropy-repair/image1.png[reaper sidecar]
+ 
+Reaper also can listen and display live Cassandra’s emitted Diagnostic Events.
+
+In Cassandra 4.0 internal system “diagnostic events” have become available via 
the work done in 
https://issues.apache.org/jira/browse/CASSANDRA-12944[CASSANDRA-12944,window=_blank].
 These allow us to observe internal Cassandra events, for example, in unit 
tests, and with external tools. These diagnostic events provide operational 
monitoring and troubleshooting beyond logs and metrics.
+
+Reaper can use Postgres and Cassandra itself as a storage backend for its data 
and can repair all Cassandra versions since 1.2 up to the latest 4.0.
+
+To make Reaper more efficient, segment orchestration was recently revamped and 
modernized. It opened for a long-awaited feature: fully concurrent repairs for 
different keyspaces and tables.
+These changes also introduced a long-awaited feature by allowing fully 
concurrent repairs for different keyspaces/tables.
+
+You can find more details on these changes in the 
https://thelastpickle.com/blog/2021/02/22/reaper-for-apache-cassandra-2-2-release.html[2.2
 release blog post,window=_blank].
+
+Note: the latest release is 
https://github.com/thelastpickle/cassandra-reaper/releases/tag/2.3.1[2.3.1,window=_blank].
+
+=== Eager to try Reaper?
+
+Head over to the 
http://cassandra-reaper.io/[cassandra-reaper.io,window=_blank] website, which 
contains all information you'll need to get started, install Reaper and stop 
worrying about repairs!
+
+This article by Alexander Dejanovski was previously published on 
https://jaxenter.com/reaper-anti-entropy-174878.html[JAXEnter.com,window=_blank].

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to