Skip to content

sentinel-tools/daisy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

Daisy is a CLI tool for managing Redis daisy-chained slave pools.

Imagine you have a basic Redis pod of a master and a pair of slaves. Now imagine you want to add an additional pool of slaves which are slaved to some combinaton of the main pod members, and you don't want these additional slaves to be eligible for failover promotion. In other words you want a pool of read-only slaves.

You could manage it the manual way, or you could let Daisy configure it the way you want it.

Pool Policies

There are multiple criteria you could use in determining what pool nodes slave to which primary pool. Daisy refers to these as policies. In Daisy we call the slaves in the pod the "primary pool" and the secondary (chained) slaves the "slave pool". By default Daisy will query Sentinel for the slaves of the given pod.

Random

Under this policy the secondary pool nodes are enslaved to random nodes in the primary pool.

One For One

Under this policy every secondary pool node is assigned one primary pool node. For this to work the number of primary pool must be equal to or greater than the number of secondary pool nodes. For example if you have a 4 node read-pool you need four slave nodes in the pod.

Ring Pool

This is similar to One For One, except it treats the primary pool as slots and hashes an index to assign a secondary pool node, assigning them in sequence.

For example say you have three primary pool, and want six secopndary pool nodes. Daisy will iterate over the primary pool, looping back around when it reaches the last one - hence operating in a "ring". In this example it will result in each pod node having a pair of slaves in the pool.