= sstablescrub

Fix a broken sstable. The scrub process rewrites the sstable, skipping
any corrupted rows. Because these rows are lost, follow this process
with a repair.

ref: https://issues.apache.org/jira/browse/CASSANDRA-4321

Cassandra must be stopped before this tool is executed, or unexpected
results will occur. Note: the script does not verify that Cassandra is
stopped.

== Usage

sstablescrub <options> <keyspace> <table>

[cols=",",]
|===
|--debug |display stack traces

|-h,--help |display this help message

|-m,--manifest-check |only check and repair the leveled manifest,
without actually scrubbing the sstables

|-n,--no-validate |do not validate columns using column validator

|-r,--reinsert-overflowed-ttl |Rewrites rows with overflowed expiration
date affected by CASSANDRA-14092 with the maximum supported expiration
date of 2038-01-19T03:14:06+00:00. The rows are rewritten with the
original timestamp incremented by one millisecond to override/supersede
any potential tombstone that may have been generated during compaction
of the affected rows.

|-s,--skip-corrupted |skip corrupt rows in counter tables

|-v,--verbose |verbose output
|===

== Basic Scrub

The scrub without options will do a snapshot first, then write all
non-corrupted files to a new sstable.

Example:

....
sstablescrub keyspace1 standard1
Pre-scrub sstables snapshotted into snapshot pre-scrub-1534424070883
Scrubbing BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-6365332094dd11e88f324f9c503e4753/mc-5-big-Data.db') (17.142MiB)
Scrub of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-6365332094dd11e88f324f9c503e4753/mc-5-big-Data.db') complete: 73367 rows in new sstable and 0 empty (tombstoned) rows dropped
Checking leveled manifest
....

== Scrub without Validation

ref: https://issues.apache.org/jira/browse/CASSANDRA-9406

Use the --no-validate option to retain data that may be misrepresented
(e.g., an integer stored in a long field) but not corrupt. This data
usually doesn not present any errors to the client.

Example:

....
sstablescrub --no-validate keyspace1 standard1
Pre-scrub sstables snapshotted into snapshot pre-scrub-1536243158517
Scrubbing BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-bc9cf530b1da11e886c66d2c86545d91/mc-2-big-Data.db') (4.482MiB)
Scrub of BigTableReader(path='/var/lib/cassandra/data/keyspace1/standard1-bc9cf530b1da11e886c66d2c86545d91/mc-2-big-Data.db') complete; looks like all 0 rows were tombstoned
....

== Skip Corrupted Counter Tables

ref: https://issues.apache.org/jira/browse/CASSANDRA-5930

If counter tables are corrupted in a way that prevents sstablescrub from
completing, you can use the --skip-corrupted option to skip scrubbing
those counter tables. This workaround is not necessary in versions 2.0+.

Example:

....
sstablescrub --skip-corrupted keyspace1 counter1
....

== Dealing with Overflow Dates

ref: https://issues.apache.org/jira/browse/CASSANDRA-14092

Using the option --reinsert-overflowed-ttl allows a rewriting of rows
that had a max TTL going over the maximum (causing an overflow).

Example:

....
sstablescrub --reinsert-overflowed-ttl keyspace1 counter1
....

== Manifest Check

As of Cassandra version 2.0, this option is no longer relevant, since
level data was moved from a separate manifest into the sstable metadata.
