Parsercaches are a big offenders of lag causes- when deleting things, they do queries such as :
DELETE /* SqlBagOStuff::deleteObjectsExpiringBefore */ FROM pc141 WHERE (exptime >= '2016-10-31 12:23:30') AND (exptime < '20161106010001') AND keyname IN ('commonswiki:pcache:XXXXXX','commonswiki:pcache:XXXXXX,' + 1000 more items )
Creating lag on the secondary datacenter. This is relatively new, because we didn't use to replicate the parsercache, but I think it threatens cross-dc and dc-failover reliability. It is low impacting, however, because it is a cache- but we should try to fix it for pure performance reasons.
This could be solved with ROW based replication- but doing STATEMENT REPLACEs allows to keep replication running even after being consistent. Maybe we can play with it at application layer? Or maybe we can purge slower, as purging is not critical? Or just purging at infrastructure layer- per server, without replication being involved-, with no application involvement.