Output
A trace, explained
Example
5,000 deleted rows in one partition
SELECT * FROM pf.q WHERE pk = 1
client latency p50 1.11 ms p99 1.95 ms
trace (scylla) server 833 µs, 1 replica targeted
work 10 live row(s), 2990 tombstone(s)
warning [PROF001] scanned 2990 tombstones to return 10 live rowsFindings
from the trace, not from guessing
PROF001 tombstone-scanPROF002 many-sstablesPROF003 large-readPROF004 slow-statementPROF005 tail-latencyPROF006 lightweight-transaction
Engines
trace parsing tested on real traces
ScyllaDBCassandra 5.0Cassandra 4.x
Safe to run
Bounded and read-only by default
SELECT
only reads run; writes need --allow-writes
1 page
a missing LIMIT cannot scan the table
sampled
? markers get values from a real row
p50 / p99
untraced repetitions, first run dropped
Use
One command
cqlprof -e "SELECT * FROM shop.orders WHERE customer = 1"
cqlprof queries/*.cql -k shop --repeat 100 --format json