controller/sharding/consistent was the last minio import here. It is now the
hanzos3 fork at v1.0.0.
The hash output is unchanged, and that is the part worth being sure about: this
is consistent hashing for controller shard assignment, so a different digest
would silently reassign every shard. The fork sits on the SAME commit consumers
already pinned (3f5f724cb5b1) and the release adds a go.mod and nothing else —
zero .go files differ. Same bytes in, same bytes out.
The rename is what makes it requirable at all. Upstream blake2b-simd predates
modules, so it can only be pinned as a pseudo-version; pointing that at a fork
needs a `replace`, which Go ignores in a non-main module and so would not have
travelled to anything depending on this repo.
go directive unchanged at 1.26.5; the fork declares 1.21 precisely so it imposes
no floor.
build passes, and ./controller/sharding/... passes.
* Adds consistent hashing with bound loads sharding algorithm
Signed-off-by: Akram Ben Aissi <[email protected]>
* Make the assignement consistent accross all clusters
- The assignment or running of the algorithm has to be consistent across all the clusters. Changed the function to return a map where the consistent hash will be used to build the map
- Modifications to the createConsistentHashsingWithBoundLoads function. This will create the map for cluster to shard. Note that the list must be consistent across all shards so that is why the cluster list must be sorted before going through the consistent hash algorithm
Signed-off-by: Akram Ben Aissi <[email protected]>
* Extracting constant and simplifying boolean expression
Signed-off-by: Akram Ben Aissi <[email protected]>
* Update docs: consistent-hashing sharding algorithm
Signed-off-by: Akram Ben Aissi <[email protected]>
---------
Signed-off-by: Akram Ben Aissi <[email protected]>