This policy maps blockId to several deterministic Alluxio workers. The number of workers a block
can be mapped to can be passed through the constructor. The default is 1. It skips the workers
that do not have enough capacity to hold the block.
Note that the hash function relies on the number of workers in the cluster, so if the number of
workers changes, the workers chosen by the policy for a given block will likely change.
This policy is useful for limiting the amount of replication that occurs when reading blocks from
the UFS with high concurrency. With 30 workers and 100 remote clients reading the same block
concurrently, the replication level for the block would get close to 30 as each workers reads
and caches the block for one or more clients. If the clients use DeterministicHashPolicy with
3 shards, the 100 clients will split their reads between just 3 workers, so that the replication
level for the block will be only 3 when the data is first loaded.
Nested Class Summary
Nested classes/interfaces inherited from interface alluxio.client.block.policy.BlockLocationPolicy