From: Casey Bodley Date: Wed, 15 Aug 2018 20:04:37 +0000 (-0400) Subject: rgw: incremental data sync uses truncated flag to detect end of listing X-Git-Tag: v14.0.1~470^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=fb2b618658d8ff9c311838f59e396ab24c21e9e8;p=ceph.git rgw: incremental data sync uses truncated flag to detect end of listing we call wait() after incremental sync if we've reached the end of the datalog listing. the existing logic compares our local marker with the remote's high marker, with some extra code to handle the case where the remote log was trimmed all of this can be simplified by using the 'truncated' flag returned with the RGWReadRemoteDataLogShardCR used to list the remote datalog Signed-off-by: Casey Bodley --- diff --git a/src/rgw/rgw_data_sync.cc b/src/rgw/rgw_data_sync.cc index a19dc8c7b06c..49ab5b099c76 100644 --- a/src/rgw/rgw_data_sync.cc +++ b/src/rgw/rgw_data_sync.cc @@ -1511,8 +1511,9 @@ public: } } } - tn->log(20, SSTR("shard_id=" << shard_id << " datalog_marker=" << datalog_marker << " sync_marker.marker=" << sync_marker.marker)); - if (datalog_marker == sync_marker.marker || remote_trimmed == RemoteTrimmed) { + tn->log(20, SSTR("shard_id=" << shard_id << " datalog_marker=" << datalog_marker << " sync_marker.marker=" << sync_marker.marker << " truncated=" << truncated)); + if (!truncated) { + // we reached the end, wait a while before checking for more tn->unset_flag(RGW_SNS_FLAG_ACTIVE); #define INCREMENTAL_INTERVAL 20 yield wait(utime_t(INCREMENTAL_INTERVAL, 0));