mirror of
https://github.com/ceph/ceph
synced 2025-03-11 02:39:05 +00:00
Consider the following workload: writeA(0, 4096) writeB(0, 512). pwl can makre sure writeA persist to cache before writeB. But when flush to osd, it use async-read to read data from cache and in the callback function they issue write to osd. So although we by order issue aio-read(4096), aio-read(512). But we can't make sure the return order. If aio-read(512) firstly return, the write order to next layer is writeB(0, 512) writeA(0, 4096). This is wrong from the user point. To avoid this occur, we should firstly read all data from cache. And then send write by order. Fiexs: https://tracker.ceph.com/issues/52511 Tested-by: Feng Hualong <hualong.feng@intel.com> Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com> |
||
---|---|---|
.. | ||
arch | ||
auth | ||
bash_completion | ||
blk | ||
blkin@f24ceec055 | ||
c-ares@fd6124c74d | ||
ceph-volume | ||
cephadm | ||
client | ||
cls | ||
common | ||
compressor | ||
crimson | ||
crush | ||
crypto | ||
dmclock@e4ccdcfa82 | ||
doc | ||
dokan | ||
erasure-code | ||
fmt@427b534054 | ||
global | ||
googletest@389cb68b87 | ||
include | ||
isa-l@bee5180a15 | ||
jaegertracing | ||
java | ||
journal | ||
json_spirit | ||
key_value_store | ||
kv | ||
libkmip@b25cde94c9 | ||
librados | ||
libradosstriper | ||
librbd | ||
log | ||
mds | ||
messages | ||
mgr | ||
mon | ||
mount | ||
msg | ||
neorados | ||
objclass | ||
objsync | ||
ocf | ||
os | ||
osd | ||
osdc | ||
perfglue | ||
powerdns | ||
pybind | ||
python-common | ||
rapidjson@f54b0e47a0 | ||
rbd_fuse | ||
rbd_replay | ||
rgw | ||
rocksdb@c540de6f70 | ||
s3select@63129ea4d2 | ||
script | ||
seastar@f43e1b1a41 | ||
spawn@9ee6d12f35 | ||
spdk@1a527e501f | ||
telemetry | ||
test | ||
tools | ||
tracing | ||
xxHash@1f40c6511f | ||
zstd@b706286adb | ||
.gitignore | ||
btrfs_ioc_test.c | ||
ceph_common.sh | ||
ceph_fuse.cc | ||
ceph_mds.cc | ||
ceph_mgr.cc | ||
ceph_mon.cc | ||
ceph_osd.cc | ||
ceph_release | ||
ceph_syn.cc | ||
ceph_ver.c | ||
ceph_ver.h.in.cmake | ||
ceph-clsinfo | ||
ceph-coverage.in | ||
ceph-crash.in | ||
ceph-create-keys | ||
ceph-debugpack.in | ||
ceph-osd-prestart.sh | ||
ceph-post-file.in | ||
ceph-rbdnamer | ||
ceph-run | ||
ceph.conf.twoosds | ||
ceph.in | ||
ckill.sh | ||
cls_acl.cc | ||
cls_crypto.cc | ||
CMakeLists.txt | ||
cmonctl | ||
cstart.sh | ||
etc-rbdmap | ||
init-ceph.in | ||
init-radosgw | ||
krbd.cc | ||
libcephfs.cc | ||
libcephsqlite.cc | ||
librados-config.cc | ||
loadclass.sh | ||
logrotate.conf | ||
mount.fuse.ceph | ||
mrgw.sh | ||
mrun | ||
mstart.sh | ||
mstop.sh | ||
multi-dump.sh | ||
mypy-constrains.txt | ||
mypy.ini | ||
nasm-wrapper | ||
perf_histogram.h | ||
ps-ceph.pl | ||
push_to_qemu.pl | ||
rbd-replay-many | ||
rbdmap | ||
README | ||
sample.ceph.conf | ||
SimpleRADOSStriper.cc | ||
SimpleRADOSStriper.h | ||
stop.sh | ||
TODO | ||
vnewosd.sh | ||
vstart.sh |
Sage Weil <sage@newdream.net> Ceph - scalable distributed storage system