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
Bug#35840020 Non distribution aware node selection is imbalanced
Unhinted transactions, or hintable transactions where hinting
is disabled will use a round-robin (RR) algorithm, balancing
the transaction load across a set of candidate data nodes.
The ndb_optimized_node_selection option controls which nodes
are candidates.
ndb_optimized_node_selection & 1
All data nodes 0
Local data nodes 1
Locality is defined or inferred by a number of NdbApi
level concepts such as :
Config : LocationDomain
Api : DataNodeNeighbour
Internal : tryBind remote address->Group
Config : Group
In both cases there can be multiple candidates, so NdbApi
attempts to spread the load across the candidates.
However the state memory required to do this is part of the
Ndb (session) object, and is reset (to the same 'next' position)
in every new Ndb object.
In some use cases new Ndb objects are always used, such as
when a SQL user connects, issues an unhinted query and then
disconnects.
In this case there is no RR balance, resulting in resource
usage imbalances and limiting system scalability and capacity.
This is fixed so that in these cases the first transaction
issued by a connection is also handled in a round-robin
way, avoiding persistent imbalance.
The MTR testcase ndb_optimized_node_selection is extended
to cover this scenario.
Change-Id: Ia491b3bc4ae96e5e57a27baa375d2d84b3068d60
0 commit comments