Motivation
The consistent hashing implementation to uniformly assign keys to consumers
in the context of a KeyShared subscription, was introduced in
#6791, which was released in Pulsar 2.6.0.
While consistent hashing can use slightly more memory in certain cases, it is
more suitable as a general default implementation, as it leads to a fairer
distribution of keys across consumers, and avoiding corner cases that depend
on the sequence of addition/removal of consumers.
Proposed changes
In 2.10 release, for the setting:
# On KeyShared subscriptions, with default AUTO_SPLIT mode, use splitting ranges or
# consistent hashing to reassign keys to new consumers
subscriptionKeySharedUseConsistentHashing=false
Change its default value to true
.
The AUTO_SPLIT
mode will not be removed nor deprecated. Users will still be
able to use the old implementation.