ceph/src
Jianpeng Ma 1fc3be2480 librbd/cache/pwl: fix reorder when flush cache-data to osd.
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>
2021-11-01 09:25:52 +08:00
..
arch
auth auth: drop unused get_supported_con_modes() from AuthServer. 2021-10-27 16:08:08 +00:00
bash_completion
blk
blkin@f24ceec055
c-ares@fd6124c74d
ceph-volume cephadm/box: add no-tmpfs flag prepare osd bluestore 2021-10-28 09:25:28 +02:00
cephadm Merge pull request #41325 from rhcs-dashboard/wip-cephadm_box-master 2021-10-28 16:59:47 +02:00
client Merge PR #40183 into master 2021-10-20 22:25:58 -04:00
cls Merge pull request #41696 from MrFreezeex/fix-rbd-mirror-remove 2021-10-25 18:12:38 +03:00
common Merge pull request #43503 from mkogan1/wip-fips-md5 2021-10-21 17:35:53 +03:00
compressor
crimson Merge pull request #43539 from orozery/ms-nocrc 2021-10-28 18:37:26 -07:00
crush
crypto
dmclock@e4ccdcfa82
doc
dokan
erasure-code
fmt@427b534054
global
googletest@389cb68b87
include common/bl: mark bl::prepare_iovs() const 2021-10-16 08:31:08 +08:00
isa-l@bee5180a15
jaegertracing
java
journal
json_spirit
key_value_store
kv
libkmip@b25cde94c9
librados
libradosstriper
librbd librbd/cache/pwl: fix reorder when flush cache-data to osd. 2021-11-01 09:25:52 +08:00
log
mds Merge PR #43508 into master 2021-10-20 22:27:40 -04:00
messages
mgr
mon crimson, monmap: add more debugs around building initial monmap. 2021-10-25 13:09:22 +00:00
mount
msg Merge pull request #43539 from orozery/ms-nocrc 2021-10-28 18:37:26 -07:00
neorados
objclass
objsync
ocf
os Merge PR #43583 into master 2021-10-28 16:13:32 -04:00
osd Merge pull request #43239 from trociny/wip-48959 2021-10-14 22:43:16 +08:00
osdc
perfglue
powerdns
pybind Merge pull request #43693 from batrick/i53074 2021-10-29 00:25:59 +02:00
python-common
rapidjson@f54b0e47a0
rbd_fuse
rbd_replay
rgw Merge pull request #43581 from cbodley/wip-52800 2021-10-27 09:33:08 -04:00
rocksdb@c540de6f70
s3select@63129ea4d2
script
seastar@f43e1b1a41
spawn@9ee6d12f35
spdk@1a527e501f
telemetry
test Merge pull request #43539 from orozery/ms-nocrc 2021-10-28 18:37:26 -07:00
tools rbd-nbd: allow user to specify cookie at map 2021-10-26 19:24:13 +05:30
tracing rgw/tracing: unify SO version numbers within librgw2 package 2021-10-20 13:39:15 +02:00
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 mgr/dashboard: NFS exports: API + UI: integration with mgr/nfs; cleanups 2021-10-18 12:58:54 +02:00

Sage Weil <sage@newdream.net>
Ceph - scalable distributed storage system