public inbox for linux-bcache@vger.kernel.org
 help / color / mirror / Atom feed
* Writeback efficiency -- proposal
@ 2017-09-20  8:01 Michael Lyle
  2017-09-20  8:08 ` Vojtech Pavlik
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Michael Lyle @ 2017-09-20  8:01 UTC (permalink / raw)
  To: linux-bcache; +Cc: Kent Overstreet

Hey everyone---

Right now writeback is pretty inefficient.  It lowers the seek
workload some on the disk by doing things in ascending-LBA order, but
there is no prioritization of writing back larger blocks (that is,
doing larger sequential IOs).

At the same time, there is no on-disk index that makes it easy to find
larger sequential pieces.  However, I think it's possible to take a
heuristic approach to make this better.

Proposal--- When gathering dirty chunks--- I would like to track the
median size written back in the last batch of writebacks, and then
skip the first 500 things smaller than the median size.  This still
has the effect of putting all of our writes in LBA order, and has a
relatively minimal cost (having to scan through 1000 dirty things
instead of 500 in the worst case).  Upon reaching the end of the btree
we can revert to accepting all blocks.

Taking a trivial case-- If half of the things to write back are 4k,
and half are 8k, this will make us favor / almost entirely do
writeback of 8k chunks, and will demand 25% fewer seeks to do an
equivalent amount of writeback, in exchange for a small amount of
additional CPU.  (To an extent even this will be mitigated, because we
won't have to scan to find dirty blocks as often).

Does this sound reasonable?

Thanks!

Mike

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2017-09-20 15:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-09-20  8:01 Writeback efficiency -- proposal Michael Lyle
2017-09-20  8:08 ` Vojtech Pavlik
2017-09-20  8:51   ` Michael Lyle
2017-09-20  8:20 ` Coly Li
2017-09-20 14:06 ` Kent Overstreet
2017-09-20 15:42   ` Michael Lyle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox