Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't expire keys when loading an RDB after a SYNC #296

Merged
merged 1 commit into from Jan 16, 2012

Commits on Jan 14, 2012

  1. Don't expire keys when loading an RDB after a SYNC

    The cron is responsible for expiring keys. When keys are expired at
    load time, it is possible that the snapshot of a master node gets
    modified. This can in turn lead to inconsistencies in the data set.
    
    A more concrete example of this behavior follows. A user reported a
    slave that would show an monotonically increase input buffer length,
    shortly after completing a SYNC. Also, `INFO` output showed a single
    blocked client, which could only be the master link. Investigation
    showed that indeed the `BRPOP` command was fed by the master. This
    command can only end up in the stream of write operations when it did
    NOT block, and effectively executed `RPOP`. However, when the key
    involved in the `BRPOP` is expired BEFORE the command is executed, the
    client executing it will block. The client in this case, is the master
    link.
    pietern committed Jan 14, 2012
    Configuration menu
    Copy the full SHA
    aa794ac View commit details
    Browse the repository at this point in the history