The database replicator will resort to "rsync+merge" mode too often. The code I noticed is in swift/common/db_replicator.py:
# if the difference in rowids between the two differs by
# more than 50%, rsync then do a remote merge.
if rinfo['max_row'] / float(info['max_row']) < 0.5:
So, in the case where one database has 1 row, and the other 3 rows, an rsync+merge is done when it could've just sent the rows over.
Might not be a big deal as both methods should be pretty quick, but I thought dropping to rsync was less desirable. I'm not sure, so I figured I'd post a bug and let someone else take a look.
My thought is that it should only resort to rsync+merge when the difference is great (say, greater than per_diff * max_diff) and more than 50% different.