Sync metadata in 'rsync_then_merge' in db_replicator
In previous 'rsync_then_merge' remote objects are merged with
rsync'ed local objects, but remote metadata is not merged with local
one. Account/Container replicator sometimes uses rsync for db sync if
there is a big difference of record history in db files between 'local'
and 'remote' servers. If replicator needs to rsync local db to remote
but metadata in local db is older, older info of metadata can be
distributed then some metadata values can be missing or go back to older.
This patch fixes this problem by merging 'remote' metadata with
rsync'ed local db file.
Reviewed: https:/ /review. openstack. org/302494 /git.openstack. org/cgit/ openstack/ swift/commit/ ?id=843184f3fea 18db367e40cb5f4 6fc0cb8f2432f6
Committed: https:/
Submitter: Jenkins
Branch: master
commit 843184f3fea18db 367e40cb5f46fc0 cb8f2432f6
Author: Daisuke Morita <email address hidden>
Date: Wed Apr 6 19:02:28 2016 -0700
Sync metadata in 'rsync_then_merge' in db_replicator
In previous 'rsync_then_merge' remote objects are merged with
rsync'ed local objects, but remote metadata is not merged with local
one. Account/Container replicator sometimes uses rsync for db sync if
there is a big difference of record history in db files between 'local'
and 'remote' servers. If replicator needs to rsync local db to remote
but metadata in local db is older, older info of metadata can be
distributed then some metadata values can be missing or go back to older.
This patch fixes this problem by merging 'remote' metadata with
rsync'ed local db file.
Closes-Bug: #1570118
Change-Id: Icdf0a936fc456c 5462471938cbc36 5bd012b05d4