bcache: Incremental gc
Big garbage collection rewrite; now, garbage collection uses the same mechanisms as used elsewhere for inserting/updating btree node pointers, instead of rewriting interior btree nodes in place. This makes the code significantly cleaner and less fragile, and means we can now make garbage collection incremental - it doesn't have to hold a write lock on the root of the btree for the entire duration of garbage collection. This means that there's less of a latency hit for doing garbage collection, which means we can gc more frequently (and do a better job of reclaiming from the cache), and we can coalesce across more btree nodes (improving our space efficiency). Signed-off-by: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
@@ -477,7 +477,6 @@ struct gc_stat {
|
||||
|
||||
size_t nkeys;
|
||||
uint64_t data; /* sectors */
|
||||
uint64_t dirty; /* sectors */
|
||||
unsigned in_use; /* percent */
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user