+++ This bug was initially created as a clone of Bug #1726000 +++ Description of problem: The bz#1694820 addresses issue for RENAME issue when handling RENAME with existing destination. This fix requires some performance tuning considering this issue occurs in heavy rename workload. Version-Release number of selected component (if applicable): master How reproducible: Steps to Reproduce: 1. Run frequent RENAME on master mount and check for sync in slave. Ex - while true; do uuid="`uuidgen`"; echo "some data" > "test$uuid"; mv "test$uuid" "test" -f; done Actual results: Expected results: Additional info:
REVIEW: https://review.gluster.org/23459 (geo-rep: performance improvement while syncing renames with existing gfid) posted (#1) for review on master by Sunny Kumar
REVIEW: https://review.gluster.org/23459 (geo-rep: performance improvement while syncing renames with existing gfid) merged (#2) on master by Kotresh HR
********************* Performance Stat: For this bug we have performed a performance run with arbiter and replica volumes with root geo-rep sessions. Setup details: - Number of Master servers: 3 - Number of slave servers: 3 - Brick size: 50GB - RAM: 8GB - Number of clients used: 1 - Type of volume used: 1. arbiter 1x(2+1) 2. replica 1x3 - Workload used: for i in `seq 1 1000000`;do uuid="`uuidgen`"; date > "test$uuid"; mv "test$uuid" "test" -f; done The results are as follows: 1. With sync type as rsync: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Volume type Configuration number of creates and renames done time taken without fix time taken with fix --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Arbiter 1x(2+1) 1000000 14 hours, 22 minutes, 56 seconds 2 hours, 4 minutes, 6 seconds Replicate 1x3 1000000 20 hours, 13 minutes, 14 seconds 8 hours, 27 minutes, 2 seconds 2. With sync type as tarssh: --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Volume type Configuration number of creates and renames done time taken without fix time taken with fix --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Arbiter 1x(2+1) 1000000 20 hours, 22 minutes, 56 seconds 8 hours, 34 minutes, 20 seconds Replicate 1x3 1000000 22 hours, 49 minutes, 29 seconds 10 hours, 7 minutes, 43 seconds