StackExchange / StackExchange.Redis

General purpose redis client
https://stackexchange.github.io/StackExchange.Redis/
Other
5.85k stars 1.5k forks source link

Adding slave to sentinel results in failed queries #2618

Open epimeth opened 6 months ago

epimeth commented 6 months ago

Hi guys!

I was expecting to be able to add more slaves on the fly when using sentinel, but as soon as I do queries get directed to them. I have verified that the configuration doesn't include min-slaves-max-lag so the default value should be used. Does your library ignore this option and queries all available slaves regardless of status? Please note I am using an older version, 2.6.80 , as we are using the windows port of redis from forever ago. Will upgrading solve this issue?

Thanks in advance!

NickCraver commented 6 months ago

To my knowledge, min-slaves-max-lag has no impact on clients that's purely a server-side mechanism that determines if a primary will accept the right (when a replica gets too far behind, it'll stop accepting writes). As a client, when a node is added and eligible: we'll use it - those are just orthogonal concepts.

If you're use a Windows port, my only advice on the server is: Godspeed and good luck - there's a ton improved in Redis over the years and using an incomplete version from 7.5+ years ago will be a substandard experience.

epimeth commented 6 months ago

Thanks for taking the time to look at my issue. We certainly are looking into migrating off of the windows port, but it seems your reply is implying that this won't actually help me with this.

You used the word "eligible" . I guess I misunderstood and thought that that is exactly what that meant. "Mark the replica as ineligible until it catches up". Is there no setting that does this? How do we add more nodes to a sentinel configuration without taking down the entire application?