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
Is your feature request related to a problem? Please describe.
In RabbitMQ some components do their own, offline quorum availability calculations (MGMT API, health check commands, etc) outside of the Ra cluster itself, typically due to performance reasons. Right now the only information that is readily available on all nodes is the nodes key in the amqqueue record queue type state map. This list of member nodes include both voters and non voters and thus in the case where a quorum queue has non voters the quorum calculations are likely to be even more inaccurate than otherwise.
Describe the solution you'd like
To assist in these offline calculations we can persist the list of voter nodes in the queue type state field also in a new key called voters.
This field can be updated in the quorum queue's tick handler as from Ra 2.9 we can use the new ra:member_info/1 API to get more detailed information on the current member set.
The voters field only needs to be part of the queue type state map when there are non voters in the system and it is thus different from the set in nodes.
Describe alternatives you've considered
Right now we either need to ignore the potential for non voters in the quorum calculations or perform potentially performance impacting queries of the Ra leader to get this information.
Additional context
No response
The text was updated successfully, but these errors were encountered:
The first step is to improve the Ra handle_aux API such that the QQ tick handler can gain access to current member/voter information without calling back into the ra process. rabbitmq/ra#414
Is your feature request related to a problem? Please describe.
In RabbitMQ some components do their own, offline quorum availability calculations (MGMT API, health check commands, etc) outside of the Ra cluster itself, typically due to performance reasons. Right now the only information that is readily available on all nodes is the
nodes
key in theamqqueue
record queue type state map. This list of member nodes include both voters and non voters and thus in the case where a quorum queue has non voters the quorum calculations are likely to be even more inaccurate than otherwise.Describe the solution you'd like
To assist in these offline calculations we can persist the list of voter nodes in the queue type state field also in a new key called
voters
.This field can be updated in the quorum queue's tick handler as from Ra 2.9 we can use the new
ra:member_info/1
API to get more detailed information on the current member set.The
voters
field only needs to be part of the queue type state map when there are non voters in the system and it is thus different from the set innodes
.Describe alternatives you've considered
Right now we either need to ignore the potential for non voters in the quorum calculations or perform potentially performance impacting queries of the Ra leader to get this information.
Additional context
No response
The text was updated successfully, but these errors were encountered: