]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commit
osd: keep using cache even if op will invalid cache
authorZengran Zhang <zhangzengran@sangfor.com.cn>
Tue, 11 Dec 2018 11:32:55 +0000 (19:32 +0800)
committerZengran Zhang <zhangzengran@sangfor.com.cn>
Tue, 11 Dec 2018 11:32:55 +0000 (19:32 +0800)
commite2dbb8058261e8cc3a3fb00362e2785f0ac6cf18
treef4591ad7cd3d50525b5e9cd8de29303e608c76bb
parent4e2cb89ff2079449802652ef7727658275e9bfa0
osd: keep using cache even if op will invalid cache

the current wrong process on same obj in ec 4+2 pool with 16K stripe:

obj has 16K~16K with content-0
new op1 will write 8K~32K (16K~16K content-1)
op1 reserve 0K~48K in cache
op1 read 0~16K & 32K~48K from disk
new op2 will write 20K~24K (20K~4K content-2) *** (invalid_cache dur to clone)
op2 read 16K~32K from disk (content-0) ***** dur to not using_cache
op1 write 0~48K to disk (content-1)
op1 present 0~48K to cache (content-1)
op2 write 16~32K to disk (content-0 + content-2) *** here we drop the content1

even if the op will invalid cache, it should do that *after* itself,
the op should use the cache by itself.

Signed-off-by: Zengran Zhang <zhangzengran@sangfor.com.cn>
src/osd/ECBackend.cc