From e4e8c378728da595d18d488b438662efc2fea844 Mon Sep 17 00:00:00 2001 From: Aravinda VK Date: Wed, 4 Feb 2015 23:08:31 +0530 Subject: geo-rep: Re Enable ignore_deletes Option If this option is set, Deletes will not be propogated to Slave. This option is applicable for UNLINK and RMDIR. gluster volume geo-replication :: \ config ignore_deletes true Default value is false. PS: Use this option with caution, If you create the file in master with same path then it fails to sync to slave. Old file in Slave will have different GFID compared to New. BUG: 1217929 Change-Id: I1f7816d1ea36460a654873739d3fb1b6c13e0f8d Signed-off-by: Aravinda VK Reviewed-on: http://review.gluster.org/9583 Tested-by: Gluster Build System Reviewed-by: Kotresh HR Reviewed-on: http://review.gluster.org/10498 Tested-by: NetBSD Build System --- geo-replication/syncdaemon/configinterface.py.in | 4 ++++ geo-replication/syncdaemon/master.py | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'geo-replication') diff --git a/geo-replication/syncdaemon/configinterface.py.in b/geo-replication/syncdaemon/configinterface.py.in index 1c174b5b760..f8df49935f1 100644 --- a/geo-replication/syncdaemon/configinterface.py.in +++ b/geo-replication/syncdaemon/configinterface.py.in @@ -60,6 +60,10 @@ CONFIGS = ( "working_dir", "@localstatedir@/run/gluster/${mastervol}/${eSlave}", "${iprefix}/lib/misc/glusterfsd/${mastervol}/${eSlave}"), + ("peersrx . .", + "ignore_deletes", + "true", + "false"), ) diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py index 721ad9c3635..7707efa7cea 100644 --- a/geo-replication/syncdaemon/master.py +++ b/geo-replication/syncdaemon/master.py @@ -940,8 +940,9 @@ class GMasterChangelogMixin(GMasterCommon): if pt in datas: datas.remove(pt) - purge_update() - entries.append(edct(ty, gfid=gfid, entry=en)) + if not boolify(gconf.ignore_deletes): + purge_update() + entries.append(edct(ty, gfid=gfid, entry=en)) elif ty in ['CREATE', 'MKDIR', 'MKNOD']: entry_update() # stat information present in the changelog itself -- cgit