The partition shift value is known internally to the
Ring class as _part_shift
. This value
is used to shift an MD5 hash to calculate the partition
where the data for that hash should reside. Only the top
four bytes of the hash is used in this process. For
example, to compute the partition for the
/account/container/object
path, the
Python code might look like the following code:
partition = unpack_from('>I', md5('/account/container/object').digest())[0] >> self._part_shift
For a ring generated with part_power P, the partition
shift value is 32 - P
.