Redis driver does not failover to slave when master fails

Bug #1367020 reported by Kurt Griffiths
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
zaqar
Fix Released
High
prashanth raghu

Bug Description

Looks like we just need to do a tiny bit of coding to add support for Sentinel, and this will work great.

* Add the ability to configure Sentinel support in zaqar.conf
* Read that config and use it to construct a Sentinel instance and discover the master in lieu of instantiating StrictRedis directly.
* Test master-slave failover with the above and see if the retry decorator needs to do anything to find the new slave, or if redis-py does it automagically.

Kurt Griffiths (kgriffs)
Changed in zaqar:
status: New → Triaged
importance: Undecided → Critical
assignee: nobody → Fei Long Wang (flwang)
milestone: none → juno-rc1
Kurt Griffiths (kgriffs)
description: updated
Revision history for this message
Flavio Percoco (flaper87) wrote :

I don't think this bug is a release blocker, that said, it's quite important to get it done asap.

I've set the priority to high. As soon as the patch lands, we can backport it to the stable branch.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to zaqar (proposed/juno)

Fix proposed to branch: proposed/juno
Review: https://review.openstack.org/126948

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to zaqar (master)

Reviewed: https://review.openstack.org/121474
Committed: https://git.openstack.org/cgit/openstack/zaqar/commit/?id=9fb04ba99a08819a5c4c23262030909e7ab571cc
Submitter: Jenkins
Branch: master

commit 9fb04ba99a08819a5c4c23262030909e7ab571cc
Author: Prashanth Raghu <email address hidden>
Date: Thu Sep 25 05:25:19 2014 +0530

    Add support for redis-sentinel

    This patch adds the ability to configure Sentinel support in
    zaqar.conf. The code has been tested using one and two sentinels
    managing one master and one slave. Failovers from master to slave
    were intiated and it was verified that clients can continue to
    query the service with no downtime in the case of a lost Redis
    node.

    Co-Authored-By: Kurt Griffiths <email address hidden>
    Closes-Bug: 1367020
    Change-Id: Idcaaab3ba17c84a31b918ad8376f1d5fc105b53a

Changed in zaqar:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
no longer affects: zaqar/juno
Changed in zaqar:
milestone: next → juno-rc2
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to zaqar (proposed/juno)

Reviewed: https://review.openstack.org/126948
Committed: https://git.openstack.org/cgit/openstack/zaqar/commit/?id=be883e25f5de82f726e76e8f863447a3b0b67925
Submitter: Jenkins
Branch: proposed/juno

commit be883e25f5de82f726e76e8f863447a3b0b67925
Author: Prashanth Raghu <email address hidden>
Date: Thu Sep 25 05:25:19 2014 +0530

    Add support for redis-sentinel

    This patch adds the ability to configure Sentinel support in
    zaqar.conf. The code has been tested using one and two sentinels
    managing one master and one slave. Failovers from master to slave
    were intiated and it was verified that clients can continue to
    query the service with no downtime in the case of a lost Redis
    node.

    Co-Authored-By: Kurt Griffiths <email address hidden>
    Closes-Bug: 1367020
    Change-Id: Idcaaab3ba17c84a31b918ad8376f1d5fc105b53a

Changed in zaqar:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in zaqar:
milestone: juno-rc2 → 2014.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.