]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/ReplicatedPG: For flush object, set the src object with fadvise sequential/nocache.
authorJianpeng Ma <jianpeng.ma@intel.com>
Wed, 18 Mar 2015 07:12:08 +0000 (15:12 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Tue, 24 Mar 2015 02:59:24 +0000 (10:59 +0800)
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 <jianpeng.ma@intel.com>
src/osd/ReplicatedPG.cc

index c2fae852bf8ac465d6e226a99e6767b2a67ea4b8..3967b697e02a54ff2db9879df357016c2817f4f9 100644 (file)
@@ -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);