From: Jianpeng Ma Date: Wed, 18 Mar 2015 07:12:08 +0000 (+0800) Subject: osd/ReplicatedPG: For flush object, set the src object with fadvise sequential/nocache. X-Git-Tag: v9.0.1~123^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ad1fd6e151b52cd634c77e7769c621d55ac6a6db;p=ceph.git osd/ReplicatedPG: For flush object, set the src object with fadvise sequential/nocache. Copy data from cache tier is copy whole data of object. So fadvise_sequential can make good readahead. From the base tier point, it don't hope left data in cache tier after copying, so use fadvise_nocache is good method. Signed-off-by: Jianpeng Ma --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index c2fae852bf8a..3967b697e02a 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -7169,7 +7169,8 @@ int ReplicatedPG::start_flush( CEPH_OSD_COPY_FROM_FLAG_IGNORE_OVERLAY | CEPH_OSD_COPY_FROM_FLAG_IGNORE_CACHE | CEPH_OSD_COPY_FROM_FLAG_MAP_SNAP_CLONE, - 0); + LIBRADOS_OP_FLAG_FADVISE_SEQUENTIAL|LIBRADOS_OP_FLAG_FADVISE_NOCACHE); + //mean the base tier don't cache data after this if (agent_state && agent_state->evict_mode != TierAgentState::EVICT_MODE_FULL) o.set_last_op_flags(LIBRADOS_OP_FLAG_FADVISE_DONTNEED);