Skip to content

Commit 06e5c72

Browse files
committed
extend stats structure support
1 parent ed70ad4 commit 06e5c72

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

src/tidesdb/tidesdb.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,13 @@ class _CStats(Structure):
219219
("level_sizes", POINTER(c_size_t)),
220220
("level_num_sstables", POINTER(c_int)),
221221
("config", POINTER(_CColumnFamilyConfig)),
222+
("total_keys", c_uint64),
223+
("total_data_size", c_uint64),
224+
("avg_key_size", c_double),
225+
("avg_value_size", c_double),
226+
("level_key_counts", POINTER(c_uint64)),
227+
("read_amp", c_double),
228+
("hit_rate", c_double),
222229
]
223230

224231

@@ -457,6 +464,13 @@ class Stats:
457464
memtable_size: int
458465
level_sizes: list[int]
459466
level_num_sstables: list[int]
467+
total_keys: int
468+
total_data_size: int
469+
avg_key_size: float
470+
avg_value_size: float
471+
level_key_counts: list[int]
472+
read_amp: float
473+
hit_rate: float
460474
config: ColumnFamilyConfig | None = None
461475

462476

@@ -705,6 +719,7 @@ def get_stats(self) -> Stats:
705719

706720
level_sizes = []
707721
level_num_sstables = []
722+
level_key_counts = []
708723

709724
if c_stats.num_levels > 0:
710725
if c_stats.level_sizes:
@@ -713,6 +728,9 @@ def get_stats(self) -> Stats:
713728
if c_stats.level_num_sstables:
714729
for i in range(c_stats.num_levels):
715730
level_num_sstables.append(c_stats.level_num_sstables[i])
731+
if c_stats.level_key_counts:
732+
for i in range(c_stats.num_levels):
733+
level_key_counts.append(c_stats.level_key_counts[i])
716734

717735
config = None
718736
if c_stats.config:
@@ -745,6 +763,13 @@ def get_stats(self) -> Stats:
745763
memtable_size=c_stats.memtable_size,
746764
level_sizes=level_sizes,
747765
level_num_sstables=level_num_sstables,
766+
total_keys=c_stats.total_keys,
767+
total_data_size=c_stats.total_data_size,
768+
avg_key_size=c_stats.avg_key_size,
769+
avg_value_size=c_stats.avg_value_size,
770+
level_key_counts=level_key_counts,
771+
read_amp=c_stats.read_amp,
772+
hit_rate=c_stats.hit_rate,
748773
config=config,
749774
)
750775

0 commit comments

Comments
 (0)