Re: Bcache version 9

From: Kent Overstreet
Date: Wed Nov 24 2010 - 01:25:33 EST


On 11/23/2010 03:35 PM, Cédric Villemain wrote:
First I am really happy to see this project appearing here.

2010/11/21 Kent Overstreet<kent.overstreet@xxxxxxxxx>:
Bcache is a patch to use SSDs to transparently cache arbitrary block
devices. Its main claim to fame is that it's designed for the
performance characteristics of SSDs - it avoids random writes and
extraneous IO at all costs, instead allocating buckets sized to your
erase blocks and filling them up seqentially. It uses a hybrid
btree/log, instead of a hash table as some other caches.

Is it its main diff with flashcache ?
https://github.com/facebook/flashcache/blob/master/doc/flashcache-doc.txt

Yeah. It's a more complex approach, but it's capable of significantly higher performance. Performance has regressed some lately (I've been concentrating on other things and don't really have the hardware for performance work), but a month or so ago it was benchmarking around 50% higher than flashcache, with mysql on an X25-E.



It does both writethrough and writeback caching - it can use most of
your SSD for buffering random writes, which are then flushed
sequentially to the backing device. Skips sequential IO, too.

Current status:
Recovering from unclean shutdown has been the main focus, and is now
working magnificantly - I'm having no luck breaking it. This version
looks to be plenty safe enough for beta testing (still, make backups).

Proper discard support is in and enabled by default; bcache won't ever
write to the same location twice without issuing a discard to that
bucket.

Is it relative to Torn Page possible issue outline by flashcache devel ?

Kind of. Bcache isn't subject to that issue, but that's because bcache is cow and always strictly orders writes.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/