Skip to content

Commit 40e00eb

Browse files
craig[bot]annrpom
andcommitted
Merge #151669
151669: storage, kvpb: add more separated value iteration stats to ScanStats r=annrpom a=annrpom This patch adds two more stats to `kvpb.ScanStats` regarding value retrieval of separated values during iteration: `SeparatedPointValueCountFetched` and `SeparatedPointValueReaderCacheMisses`. We follow the pattern with existing stats for separated value iteration to add these in for traces. Epic: none Fixes: #149422 Release note: None Co-authored-by: Annie Pompa <[email protected]>
2 parents 3fd72bb + 1b7060d commit 40e00eb

File tree

4 files changed

+30
-18
lines changed

4 files changed

+30
-18
lines changed

pkg/kv/kvpb/api.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2494,10 +2494,14 @@ func (s *ScanStats) SafeFormat(w redact.SafePrinter, _ rune) {
24942494
humanizeCount(s.NumReverseScans),
24952495
)
24962496
if s.SeparatedPointCount != 0 {
2497-
w.Printf(" separated: (count: %s, bytes: %s, bytes-fetched: %s)",
2497+
w.Printf(" separated: (count: %s, bytes: %s, bytes-fetched: %s, "+
2498+
"count-fetched: %s, reader-cache-misses: %s)",
24982499
humanizeCount(s.SeparatedPointCount),
24992500
humanizeutil.IBytes(int64(s.SeparatedPointValueBytes)),
2500-
humanizeutil.IBytes(int64(s.SeparatedPointValueBytesFetched)))
2501+
humanizeutil.IBytes(int64(s.SeparatedPointValueBytesFetched)),
2502+
humanizeCount(s.SeparatedPointValueCountFetched),
2503+
humanizeCount(s.SeparatedPointValueReaderCacheMisses),
2504+
)
25012505
}
25022506
}
25032507

pkg/kv/kvpb/api.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3906,6 +3906,8 @@ message ScanStats {
39063906
uint64 separated_point_count = 14;
39073907
uint64 separated_point_value_bytes = 15;
39083908
uint64 separated_point_value_bytes_fetched = 16;
3909+
uint64 separated_point_value_count_fetched = 23;
3910+
uint64 separated_point_value_reader_cache_misses = 24;
39093911
google.protobuf.Duration block_read_duration = 20 [(gogoproto.nullable) = false,
39103912
(gogoproto.stdduration) = true];
39113913

pkg/sql/execstats/stats.go

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,8 @@ func (l *ScanStatsListener) Notify(event tracing.Structured) tracing.EventConsum
137137
l.mu.ScanStats.separatedPointCount += ss.SeparatedPointCount
138138
l.mu.ScanStats.separatedPointValueBytes += ss.SeparatedPointValueBytes
139139
l.mu.ScanStats.separatedPointValueBytesFetched += ss.SeparatedPointValueBytesFetched
140+
l.mu.ScanStats.separatedPointValueCountFetched += ss.SeparatedPointValueCountFetched
141+
l.mu.ScanStats.separatedPointValueReaderCacheMisses += ss.SeparatedPointValueReaderCacheMisses
140142
l.mu.ScanStats.numGets += ss.NumGets
141143
l.mu.ScanStats.numScans += ss.NumScans
142144
l.mu.ScanStats.numReverseScans += ss.NumReverseScans
@@ -196,22 +198,24 @@ type ScanStats struct {
196198
numInterfaceSeeks uint64
197199
// numInternalSeeks is the number of times that MVCC seek was invoked
198200
// internally, including to step over internal, uncompacted Pebble versions.
199-
numInternalSeeks uint64
200-
blockBytes uint64
201-
blockBytesInCache uint64
202-
keyBytes uint64
203-
valueBytes uint64
204-
pointCount uint64
205-
pointsCoveredByRangeTombstones uint64
206-
rangeKeyCount uint64
207-
rangeKeyContainedPoints uint64
208-
rangeKeySkippedPoints uint64
209-
separatedPointCount uint64
210-
separatedPointValueBytes uint64
211-
separatedPointValueBytesFetched uint64
212-
numGets uint64
213-
numScans uint64
214-
numReverseScans uint64
201+
numInternalSeeks uint64
202+
blockBytes uint64
203+
blockBytesInCache uint64
204+
keyBytes uint64
205+
valueBytes uint64
206+
pointCount uint64
207+
pointsCoveredByRangeTombstones uint64
208+
rangeKeyCount uint64
209+
rangeKeyContainedPoints uint64
210+
rangeKeySkippedPoints uint64
211+
separatedPointCount uint64
212+
separatedPointValueBytes uint64
213+
separatedPointValueBytesFetched uint64
214+
separatedPointValueCountFetched uint64
215+
separatedPointValueReaderCacheMisses uint64
216+
numGets uint64
217+
numScans uint64
218+
numReverseScans uint64
215219
// nodeIDs stores the ordered list of all KV nodes that were used to
216220
// evaluate the KV requests.
217221
nodeIDs []int32

pkg/storage/mvcc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4410,6 +4410,8 @@ func recordIteratorStats(iter iteratorWithStats, scanStats *kvpb.ScanStats) {
44104410
scanStats.SeparatedPointCount += stats.InternalStats.SeparatedPointValue.Count
44114411
scanStats.SeparatedPointValueBytes += stats.InternalStats.SeparatedPointValue.ValueBytes
44124412
scanStats.SeparatedPointValueBytesFetched += stats.InternalStats.SeparatedPointValue.ValueBytesFetched
4413+
scanStats.SeparatedPointValueCountFetched += stats.InternalStats.SeparatedPointValue.CountFetched
4414+
scanStats.SeparatedPointValueReaderCacheMisses += stats.InternalStats.SeparatedPointValue.ReaderCacheMisses
44134415
scanStats.BlockReadDuration += blockReads.BlockReadDuration
44144416
}
44154417

0 commit comments

Comments
 (0)