mirror of https://github.com/apache/cassandra
ninja: revert count output and changed fields in SSTableMetadataViewer
this patch also fixes incorrect visualisation of SSTable min/max local deletion time when no tombstones are present in a SSTable patch by Stefan Miklosovic; reviewed by Marcus Eriksson and Brandon Williams for CASSANDRA-18639
This commit is contained in:
parent
c5ebc2243c
commit
e27ba0ea34
|
|
@ -40,11 +40,11 @@ $ sstablemetadata /var/lib/cassandra/data/keyspace1/standard1-f6845640a6cb11e8b6
|
|||
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: 06/28/2023 15:15:04 (1687979704767589)
|
||||
Maximum timestamp: 06/28/2023 15:15:09 (1687979709601420)
|
||||
Duration: Days: 0 Hours: 0 Minutes: 0 Seconds: 4
|
||||
SSTable min local deletion time: 08/17/292278994 02:12:55 (9223372036854775807)
|
||||
SSTable max local deletion time: 08/17/292278994 02:12:55 (9223372036854775807)
|
||||
Minimum timestamp: 07/08/2023 09:11:52 (1688800312685792)
|
||||
Maximum timestamp: 07/08/2023 09:12:03 (1688800323542149)
|
||||
Duration: Days: 0 Hours: 0 Minutes: 0 Seconds: 10
|
||||
SSTable min local deletion time: 07/08/2023 09:11:52 (1688800312)
|
||||
SSTable max local deletion time: 07/08/2023 09:12:03 (1688800323)
|
||||
Compressor: org.apache.cassandra.io.compress.LZ4Compressor
|
||||
Compression ratio: 0.553999337227618
|
||||
TTL min: 86400
|
||||
|
|
@ -263,6 +263,32 @@ $ sstablemetadata --gc_grace_seconds 5000 /var/lib/cassandra/data/keyspace1/stan
|
|||
Estimated droppable tombstones: 0.0
|
||||
....
|
||||
|
||||
== Scanning of a table
|
||||
|
||||
It is possible to specify `--scan` option to get additional statistics about a table which might be time-consuming.
|
||||
|
||||
Example
|
||||
|
||||
....
|
||||
sstablemetadata -s /var/lib/cassandra/data/data/ks/tb-dbead8501c9511ee805bb3deafc4499b/nc-1-big-Data.db
|
||||
....
|
||||
|
||||
This gives you statistics such as:
|
||||
|
||||
....
|
||||
Size: 120
|
||||
Partitions: 2
|
||||
Rows: 5
|
||||
Tombstones: 0
|
||||
Cells: 5
|
||||
Widest Partitions:
|
||||
[2] 3
|
||||
[1] 2
|
||||
Largest Partitions:
|
||||
[2] 147 (147 B)
|
||||
[1] 98 (98 B)
|
||||
....
|
||||
|
||||
== Explanation of each value printed above
|
||||
|
||||
|===
|
||||
|
|
@ -279,8 +305,7 @@ timestamp of any entry in this sstable, in epoch microseconds
|
|||
|Maximum
|
||||
timestamp |maximum timestamp of any entry in this sstable, in epoch
|
||||
microseconds
|
||||
|Duration |Difference between Maximum timestamp
|
||||
and Minimum timestamp
|
||||
|Duration |Difference between Maximum timestamp and Minimum timestamp
|
||||
|SSTable min local deletion time |minimum timestamp of
|
||||
deletion date, based on TTL, in epoch seconds
|
||||
|SSTable max local deletion
|
||||
|
|
@ -302,10 +327,9 @@ sstable, if leveled compaction (LCS) is used
|
|||
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
|
||||
|Total Columns Cells |number of cells in the table
|
||||
|Total Rows |number of rows in the table
|
||||
|Total Partitions |total number of partitions
|
||||
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
|
||||
|
|
|
|||
|
|
@ -71,8 +71,6 @@ import static org.apache.cassandra.tools.Util.WHITE;
|
|||
import static org.apache.cassandra.utils.Clock.Global.currentTimeMillis;
|
||||
import static org.apache.commons.lang3.time.DurationFormatUtils.formatDurationWords;
|
||||
|
||||
import org.apache.cassandra.io.sstable.KeyIterator;
|
||||
|
||||
/**
|
||||
* Shows the contents of sstable metadata
|
||||
*/
|
||||
|
|
@ -115,7 +113,7 @@ public class SSTableMetadataViewer
|
|||
|
||||
public static String deletion(long time)
|
||||
{
|
||||
if (time == 0 || time == Integer.MAX_VALUE)
|
||||
if (time == 0 || time == Long.MAX_VALUE)
|
||||
{
|
||||
return "no tombstones";
|
||||
}
|
||||
|
|
@ -323,20 +321,6 @@ public class SSTableMetadataViewer
|
|||
CompactionMetadata compaction = statsComponent.compactionMetadata();
|
||||
SerializationHeader.Component header = statsComponent.serializationHeader();
|
||||
Class<? extends ICompressor> compressorClass = null;
|
||||
|
||||
TableMetadata metadata = Util.metadataFromSSTable(descriptor);
|
||||
SSTableReader sstable = SSTableReader.openNoValidation(null, descriptor, TableMetadataRef.forOfflineTools(metadata));
|
||||
int count = 0;
|
||||
|
||||
try (KeyIterator iter = sstable.keyIterator())
|
||||
{
|
||||
while (iter.hasNext())
|
||||
{
|
||||
iter.next();
|
||||
count += 1;
|
||||
}
|
||||
}
|
||||
|
||||
try (CompressionMetadata compression = CompressionInfoComponent.loadIfExists(descriptor))
|
||||
{
|
||||
compressorClass = compression != null ? compression.compressor().getClass() : null;
|
||||
|
|
@ -381,8 +365,8 @@ public class SSTableMetadataViewer
|
|||
field("Originating host id", stats.originatingHostId);
|
||||
field("Pending repair", stats.pendingRepair);
|
||||
field("Replay positions covered", stats.commitLogIntervals);
|
||||
field("Total Column Cells", stats.totalColumnsSet);
|
||||
field("Total Rows", stats.totalRows);
|
||||
field("totalColumnsSet", stats.totalColumnsSet);
|
||||
field("totalRows", stats.totalRows);
|
||||
field("Estimated tombstone drop times", "");
|
||||
|
||||
TermHistogram estDropped = new TermHistogram(stats.estimatedTombstoneDropTime,
|
||||
|
|
@ -394,7 +378,6 @@ public class SSTableMetadataViewer
|
|||
String::valueOf);
|
||||
estDropped.printHistogram(out, color, unicode);
|
||||
field("Partition Size", "");
|
||||
field("Total Partitions", count);
|
||||
TermHistogram rowSize = new TermHistogram(stats.estimatedPartitionSize,
|
||||
"Size (bytes)",
|
||||
offset -> String.format("%d %s",
|
||||
|
|
|
|||
Loading…
Reference in New Issue