mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-14 14:46:53 +00:00
`get_lsm_stats` reported four table-level rollups, three per-bucket derived fields, and two pieces of in-process state. All of it is either arithmetic the caller can do on the per-bucket list (`bucket_count`, `generations_total`, `l0_bytes_total`, `memtable_rows_total`, `l0_bytes`, `wal_lag`) or a value that is true only for the microsecond it was read (`fenced`, `compaction_in_progress`). Drop them. What is left is measured: manifest metadata, one entry per flushed L0 generation, and one entry per in-memory memtable. Three shape changes follow: * `active_memtable` + `frozen_memtables` collapse into `memtables`, ordered oldest first with the active one last. Absent — not empty — for a `Sealed` bucket, whose writer is torn down. * Generation `rows` is unconditional, so `LsmStatsOptions` and its `include_generation_rows` flag are gone. A row count that had to be asked for was routinely absent from the one report that needed it. * `memtable_indexes` becomes a list of names on each memtable, since each carries its own index store and a frozen one predates an index created after it froze. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>