On 16.05.2016 16:20, Sage Weil wrote:
I merged your last two PRs and pushed an updated branch. The test fails
now due to an operation like transaction(write 0~5, write 10~5) where the
second write wants to read the block in order to write a full block/chunk,
but the first write's data obviously isn't off to disk yet. The missing
piece is a buffer cache, which we want anyway so that we can
- handle cases like this
- drop the hacky tail_cache code
- cache data in ram (when we have an fadvise hint, or for some other
reason decide it's a good idea)
I have a really basic initial version pushed that just handles the write
path (buffers initalling in writing state, then clean once io hits
device). We just need to make _do_read use it (Igor?) and add some basic
OK, will extend _do_read method to perform a read from the buffer cache
if possible...
trimming. (And eventually decide how we want to do trimming in general..
presumably we want a global LRU instead of the simple per-object thing
that's there now.)
Once that is working, I think the write path will be pretty complete, and
we can turn our attention to the compression/checksum decisions (when to
compress, how big should the chunks be, etc.) and performance. See this
PR:
https://github.com/ceph/ceph/pull/6208
I also coded up a new _clone that'll do COW, but I haven't tested it yet.
sage
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html