mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-21 09:00:35 +00:00
The space calculation counters in column family had two problem: 1. The total bytes is an ever growing counter, which is meaningless for the API. 2. Trying to simply sum the size on all shards, ignores the fact that the same sstable file can be referenced by multiple shards, this is especially noticeable during migration time. To solve this, the implementation was modified so instead of collecting the sizes, the API would collect a map of file name to size and then would do the summing. This removes the duplications and fixes the total bytes calculation Calling cfstats before the change with load after a compaction happend: $ nodetool cfstats keyspace1 Keyspace: keyspace1 Verify write latency 1068253.0 76435 Read Count: 75915 Read Latency: 0.5953986037015082 ms. Write Count: 76435 Write Latency: 0.013975966507490025 ms. Pending Flushes: 0 Table: standard1 SSTable count: 5 Space used (live): 44261215 Space used (total): 219724478 After the fix: $ nodetool cfstats keyspace1 Keyspace: keyspace1 Verify write latency 1863206.0 124219 Read Count: 125401 Read Latency: 0.9381053978835895 ms. Write Count: 124219 Write Latency: 0.01499936402643718 ms. Pending Flushes: 0 Table: standard1 SSTable count: 6 Space used (live): 50402904 Space used (total): 50402904 Space used by snapshots (total): 0 Fixes: #1042 Signed-off-by: Amnon Heiman <amnon@scylladb.com> Message-Id: <1464518757-14666-2-git-send-email-amnon@scylladb.com>