= sstablemetadata

Print information about an sstable from the related Statistics.db and
Summary.db files to standard output.

ref: https://issues.apache.org/jira/browse/CASSANDRA-7159 and
https://issues.apache.org/jira/browse/CASSANDRA-10838

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

sstablemetadata <options> <sstable filename(s)>

[cols=",",]
|===
|--gc_grace_seconds <arg> |The gc_grace_seconds to use when calculating
droppable tombstones
|===

== Print all the metadata

Run sstablemetadata against the __Data.db file(s) related to a table. If
necessary, find the__Data.db file(s) using sstableutil.

Example:

....
sstableutil keyspace1 standard1 | grep Data
/var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big-Data.db

sstablemetadata /var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big-Data.db

SSTable: /var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6836d2c86545d91/mc-1-big
Partitioner: org.apache.cassandra.dht.Murmur3Partitioner
Bloom Filter FP chance: 0.010000
Minimum timestamp: 1535025576141000
Maximum timestamp: 1535025604309000
SSTable min local deletion time: 2147483647
SSTable max local deletion time: 2147483647
Compressor: org.apache.cassandra.io.compress.LZ4Compressor
TTL min: 86400
TTL max: 86400
First token: -9223004712949498654 (key=39373333373831303130)
Last token: 9222554117157811897 (key=4f3438394e39374d3730)
Estimated droppable tombstones: 0.9188263888888889
SSTable Level: 0
Repaired at: 0
Replay positions covered: {CommitLogPosition(segmentId=1535025390651, position=226400)=CommitLogPosition(segmentId=1535025390651, position=6849139)}
totalColumnsSet: 100000
totalRows: 20000
Estimated tombstone drop times:
1535039100:     80390
1535039160:      5645
1535039220:     13965
Count               Row Size        Cell Count
1                          0                 0
2                          0                 0
3                          0                 0
4                          0                 0
5                          0             20000
6                          0                 0
7                          0                 0
8                          0                 0
10                         0                 0
12                         0                 0
14                         0                 0
17                         0                 0
20                         0                 0
24                         0                 0
29                         0                 0
35                         0                 0
42                         0                 0
50                         0                 0
60                         0                 0
72                         0                 0
86                         0                 0
103                        0                 0
124                        0                 0
149                        0                 0
179                        0                 0
215                        0                 0
258                    20000                 0
310                        0                 0
372                        0                 0
446                        0                 0
535                        0                 0
642                        0                 0
770                        0                 0
924                        0                 0
1109                       0                 0
1331                       0                 0
1597                       0                 0
1916                       0                 0
2299                       0                 0
2759                       0                 0
3311                       0                 0
3973                       0                 0
4768                       0                 0
5722                       0                 0
6866                       0                 0
8239                       0                 0
9887                       0                 0
11864                      0                 0
14237                      0                 0
17084                      0                 0
20501                      0                 0
24601                      0                 0
29521                      0                 0
35425                      0                 0
42510                      0                 0
51012                      0                 0
61214                      0                 0
73457                      0                 0
88148                      0                 0
105778                     0                 0
126934                     0                 0
152321                     0                 0
182785                     0                 0
219342                     0                 0
263210                     0                 0
315852                     0                 0
379022                     0                 0
454826                     0                 0
545791                     0                 0
654949                     0                 0
785939                     0                 0
943127                     0                 0
1131752                    0                 0
1358102                    0                 0
1629722                    0                 0
1955666                    0                 0
2346799                    0                 0
2816159                    0                 0
3379391                    0                 0
4055269                    0                 0
4866323                    0                 0
5839588                    0                 0
7007506                    0                 0
8409007                    0                 0
10090808                   0                 0
12108970                   0                 0
14530764                   0                 0
17436917                   0                 0
20924300                   0                 0
25109160                   0                 0
30130992                   0                 0
36157190                   0                 0
43388628                   0                 0
52066354                   0                 0
62479625                   0                 0
74975550                   0                 0
89970660                   0                 0
107964792                  0                 0
129557750                  0                 0
155469300                  0                 0
186563160                  0                 0
223875792                  0                 0
268650950                  0                 0
322381140                  0                 0
386857368                  0                 0
464228842                  0                 0
557074610                  0                 0
668489532                  0                 0
802187438                  0                 0
962624926                  0                 0
1155149911                 0                 0
1386179893                 0                 0
1663415872                 0                 0
1996099046                 0                 0
2395318855                 0                 0
2874382626                 0
3449259151                 0
4139110981                 0
4966933177                 0
5960319812                 0
7152383774                 0
8582860529                 0
10299432635                 0
12359319162                 0
14831182994                 0
17797419593                 0
21356903512                 0
25628284214                 0
30753941057                 0
36904729268                 0
44285675122                 0
53142810146                 0
63771372175                 0
76525646610                 0
91830775932                 0
110196931118                 0
132236317342                 0
158683580810                 0
190420296972                 0
228504356366                 0
274205227639                 0
329046273167                 0
394855527800                 0
473826633360                 0
568591960032                 0
682310352038                 0
818772422446                 0
982526906935                 0
1179032288322                 0
1414838745986                 0
Estimated cardinality: 20196
EncodingStats minTTL: 0
EncodingStats minLocalDeletionTime: 1442880000
EncodingStats minTimestamp: 1535025565275000
KeyType: org.apache.cassandra.db.marshal.BytesType
ClusteringTypes: [org.apache.cassandra.db.marshal.UTF8Type]
StaticColumns: {C3:org.apache.cassandra.db.marshal.BytesType, C4:org.apache.cassandra.db.marshal.BytesType, C0:org.apache.cassandra.db.marshal.BytesType, C1:org.apache.cassandra.db.marshal.BytesType, C2:org.apache.cassandra.db.marshal.BytesType}
RegularColumns: {}
....

== Specify gc grace seconds

To see the ratio of droppable tombstones given a configured gc grace
seconds, use the gc_grace_seconds option. Because the sstablemetadata
tool doesn't access the schema directly, this is a way to more
accurately estimate droppable tombstones -- for example, if you pass in
gc_grace_seconds matching what is configured in the schema. The
gc_grace_seconds value provided is subtracted from the curent machine
time (in seconds).

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

Example:

....
sstablemetadata /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated tombstone drop times" -A4
Estimated tombstone drop times:
1536599100:         1
1536599640:         1
1536599700:         2

echo $(date +%s)
1536602005

# if gc_grace_seconds was configured at 100, all of the tombstones would be currently droppable 
sstablemetadata --gc_grace_seconds 100 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones"
Estimated droppable tombstones: 4.0E-5

# if gc_grace_seconds was configured at 4700, some of the tombstones would be currently droppable 
sstablemetadata --gc_grace_seconds 4700 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones"
Estimated droppable tombstones: 9.61111111111111E-6

# if gc_grace_seconds was configured at 100, none of the tombstones would be currently droppable 
sstablemetadata --gc_grace_seconds 5000 /var/lib/cassandra/data/keyspace1/standard1-41b52700b4ed11e896476d2c86545d91/mc-12-big-Data.db | grep "Estimated droppable tombstones"
Estimated droppable tombstones: 0.0
....

== Explanation of each value printed above

|===
|Value |Explanation


|SSTable |prefix of the sstable filenames related to this sstable
|Partitioner |partitioner type used to distribute data across nodes;
defined in cassandra.yaml 
|Bloom Filter FP |precision of Bloom filter used
in reads; defined in the table definition 
|Minimum timestamp |minimum
timestamp of any entry in this sstable, in epoch microseconds 
|Maximum
timestamp |maximum timestamp of any entry in this sstable, in epoch
microseconds 
|SSTable min local deletion time |minimum timestamp of
deletion date, based on TTL, in epoch seconds 
|SSTable max local deletion
time |maximum timestamp of deletion date, based on TTL, in epoch seconds
|Compressor |blank (-) by default; if not blank, indicates type of
compression enabled on the table 
|TTL min |time-to-live in seconds;
default 0 unless defined in the table definition 
|TTL max |time-to-live in
seconds; default 0 unless defined in the table definition 
|First token |lowest token and related key found in the sstable summary 
|Last token |highest token and related key found in the sstable summary 
|Estimated
droppable tombstones |ratio of tombstones to columns, using configured gc
grace seconds if relevant 
|SSTable level |compaction level of this
sstable, if leveled compaction (LCS) is used 
|Repaired at |the timestamp
this sstable was marked as repaired via sstablerepairedset, in epoch
milliseconds 
|Replay positions covered |the interval of time and commitlog
positions related to this sstable 
|totalColumnsSet |number of cells in the
table 
|totalRows |number of rows in the table 
|Estimated tombstone drop
times |approximate number of rows that will expire, ordered by epoch
seconds 
|Count Row Size Cell Count |two histograms in two columns; one
represents distribution of Row Size and the other represents
distribution of Cell Count 
|Estimated cardinality an estimate of unique
values, used for compaction 
|EncodingStats* minTTL |in epoch milliseconds
|EncodingStats* minLocalDeletionTime |in epoch seconds 
|EncodingStats*
minTimestamp |in epoch microseconds 
|KeyType |the type of partition key,
useful in reading and writing data from/to storage; defined in the table
definition 
|ClusteringTypes |the type of clustering key, useful in reading
and writing data from/to storage; defined in the table definition
|StaticColumns |a list of the shared columns in the table 
|RegularColumns |a
list of non-static, non-key columns in the table
|===

`*` For the encoding stats values, the delta of this and the current epoch
time is used when encoding and storing data in the most optimal way.
