We have dual masters each incrementally indexing from our MySQL database and sit behind a virtual hostname in our load balancer. As such, it's possible that the generation numbers between the masters for a given index are not in sync. Slaves are configured to replicate from this virtual host (and pin based on source/dest IP hash) so we can add and remove masters as necessary (great for maintenance).
For the most part this works but we've seen the following happen:
- Slave has been pulling from master A
- Master A goes down for maint and now will pull from master B (which has a lower generation number for some reason than master A).
- Slave now tries to pull from master B (has higher index version than slave but lower generation).
- Slave downloads index files, moves them to the index/ directory but these files are deleted during the doCommit() phase (looks like older generation data is deleted).
- Index remains as-is and no change.