Skip to content

Commit d57c0ac

Browse files
committed
metrics: move Compression to Table
It will be useful to expose separate compression metrics for sstable and blob value data; move `Metrics.Compression` to `Table` and add a TODO to add one for blob files.
1 parent 750fe8c commit d57c0ac

File tree

3 files changed

+23
-21
lines changed

3 files changed

+23
-21
lines changed

db.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2186,7 +2186,7 @@ func (d *DB) Metrics() *Metrics {
21862186
for i := 0; i < numLevels; i++ {
21872187
metrics.Levels[i].Additional.ValueBlocksSize = *valueBlockSizeAnnotator.LevelAnnotation(vers.Levels[i])
21882188
compressionMetrics := compressionStatsAnnotator.LevelAnnotation(vers.Levels[i])
2189-
metrics.Compression.MergeWith(compressionMetrics)
2189+
metrics.Table.Compression.MergeWith(compressionMetrics)
21902190
}
21912191

21922192
metrics.Table.PendingStatsCollectionCount = int64(len(d.mu.tableStats.pending))

metrics.go

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,8 @@ type Metrics struct {
348348
BackingTableCount uint64
349349
// The sum of the sizes of the BackingTableCount sstables that are backing virtual tables.
350350
BackingTableSize uint64
351+
// Compression statistics for sstable data (does not include blob files).
352+
Compression CompressionMetrics
351353

352354
// Local file sizes.
353355
Local struct {
@@ -437,9 +439,9 @@ type Metrics struct {
437439
// ZombieCount is the number of local zombie blob files.
438440
ZombieCount uint64
439441
}
440-
}
441442

442-
Compression CompressionMetrics
443+
// TODO(radu): add compression stats.
444+
}
443445

444446
FileCache FileCacheMetrics
445447

@@ -489,15 +491,16 @@ type Metrics struct {
489491
manualMemory manual.Metrics
490492
}
491493

492-
// CompressionMetrics contains compression metrics for sstables and blob files.
494+
// CompressionMetrics contains compression metrics for sstables or blob files.
493495
type CompressionMetrics struct {
494496
// NoCompressionBytes is the total number of bytes in files that do are not
495497
// compressed. Data can be uncompressed when 1) compression is disabled; 2)
496498
// for certain special types of blocks; and 3) for blocks that are not
497499
// compressible.
498500
NoCompressionBytes uint64
499-
// CompressedBytesWithoutStats is the total number of bytes in files that do not
500-
// encode compression statistics (or for which there are no statistics yet).
501+
// CompressedBytesWithoutStats is the total number of bytes in files that do
502+
// not encode compression statistics (or for which there are no statistics
503+
// yet).
501504
CompressedBytesWithoutStats uint64
502505
Snappy CompressionStatsForSetting
503506
MinLZ CompressionStatsForSetting
@@ -1016,13 +1019,13 @@ func (m *Metrics) String() string {
10161019
cur = cur.WriteString(compressionTableHeader).NewlineReturn()
10171020
compressionContents := []pair[string, CompressionStatsForSetting]{
10181021
{k: "none", v: CompressionStatsForSetting{
1019-
CompressedBytes: m.Compression.NoCompressionBytes,
1020-
UncompressedBytes: m.Compression.NoCompressionBytes,
1022+
CompressedBytes: m.Table.Compression.NoCompressionBytes,
1023+
UncompressedBytes: m.Table.Compression.NoCompressionBytes,
10211024
}},
1022-
{k: "snappy", v: m.Compression.Snappy},
1023-
{k: "minlz", v: m.Compression.MinLZ},
1024-
{k: "zstd", v: m.Compression.Zstd},
1025-
{k: "unknown", v: CompressionStatsForSetting{CompressedBytes: m.Compression.CompressedBytesWithoutStats}},
1025+
{k: "snappy", v: m.Table.Compression.Snappy},
1026+
{k: "minlz", v: m.Table.Compression.MinLZ},
1027+
{k: "zstd", v: m.Table.Compression.Zstd},
1028+
{k: "unknown", v: CompressionStatsForSetting{CompressedBytes: m.Table.Compression.CompressedBytesWithoutStats}},
10261029
}
10271030
compressionContents = slices.DeleteFunc(compressionContents, func(p pair[string, CompressionStatsForSetting]) bool {
10281031
return p.v.CompressedBytes == 0

metrics_test.go

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,14 @@ func exampleMetrics() Metrics {
129129
m.Table.ZombieCount = 18
130130
m.Table.BackingTableCount = 1
131131
m.Table.BackingTableSize = 2 * MB
132+
m.Table.Compression.NoCompressionBytes = 100 * MB
133+
m.Table.Compression.CompressedBytesWithoutStats = 500 * MB
134+
m.Table.Compression.Snappy.CompressedBytes = 1 * GB
135+
m.Table.Compression.Snappy.UncompressedBytes = 2 * GB
136+
m.Table.Compression.MinLZ.CompressedBytes = 1 * GB
137+
m.Table.Compression.MinLZ.UncompressedBytes = 3 * GB
138+
m.Table.Compression.Zstd.CompressedBytes = 10 * GB
139+
m.Table.Compression.Zstd.UncompressedBytes = 50 * GB
132140
m.Table.Local.LiveSize = 28 * GB
133141
m.Table.Local.LiveCount = 10_000
134142
m.Table.Local.ObsoleteSize = 29 * MB
@@ -155,15 +163,6 @@ func exampleMetrics() Metrics {
155163
m.BlobFiles.Local.ZombieSize = 30 * MB
156164
m.BlobFiles.Local.ZombieCount = 14
157165

158-
m.Compression.NoCompressionBytes = 100 * MB
159-
m.Compression.CompressedBytesWithoutStats = 500 * MB
160-
m.Compression.Snappy.CompressedBytes = 1 * GB
161-
m.Compression.Snappy.UncompressedBytes = 2 * GB
162-
m.Compression.MinLZ.CompressedBytes = 1 * GB
163-
m.Compression.MinLZ.UncompressedBytes = 3 * GB
164-
m.Compression.Zstd.CompressedBytes = 10 * GB
165-
m.Compression.Zstd.UncompressedBytes = 50 * GB
166-
167166
m.FileCache.Size = 1 * MB
168167
m.FileCache.TableCount = 180
169168
m.FileCache.BlobFileCount = 181

0 commit comments

Comments
 (0)