You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a few of interactions about AOF used by Redis slave instances that should be investigated better before the release of Redis 2.6. The fixes should be backported to Redis 2.4 if possible.
When a slave successfully synchs with its master, and AOF is enabled, an AOF rewrite gets triggered. What happens if the AOF rewrite was already in progress? Probably the new rewrite fails to be started. The correct solution is to kill the old child and spawn a new one.
An instance used to be a master with its AOF, or that was a slave with its AOF, and is now performing a synchronization with a new master, or with the same master after a link down. Now the instance just finished to perform the synchronization, and triggers the rewrite, that spawns a child, and so forth. In the meantime write queries will arrive from the master: where they end being written? In the old AOF that is about a different data set entirely? That's completely broken. Once a slave successfully performs a remote sync it should remove the old AOF at all unlinking it and reopening it. Then no new data should be written to the AOF before the rewrite of the AOF is not finished.
Improve logging of what happens when write(2) against the AOF fails.
The text was updated successfully, but these errors were encountered:
@Poincare actually the implementation is trivial, this are not missed features but just overlooked races, I tend to take care of this subtle aspects of the semantics myself given that to review code from another developer would require the same time as implementing it myself. Thanks for the offer.
There are a few of interactions about AOF used by Redis slave instances that should be investigated better before the release of Redis 2.6. The fixes should be backported to Redis 2.4 if possible.
The text was updated successfully, but these errors were encountered: