Back to results
US 2022/0103626 A1Published application
Deterministic mapping and uniform routing of items to physical resources using hash values
AssigneeMicrosoft Technology Licensing, LLC
InventorsDanilo Landucci BENZATTI, Ahmed Hassan MOHAMED
Life of this patent
Estimating the term…
Abstract
A string, identifying an item to be assigned to a physical resource, is hashed to obtain a numeric hash value. The numeric hash value is downscaled to obtain a bucket identifier that identifies a bucket that will hold the numeric hash value. The bucket is then deterministically mapped to a physical resource so that it can be retrieved without accessing a stored data structure representative of the mapping.
Claims20
A computer system, comprising:
- at least one processor;
- and
- memory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computer system to:
- receive a string identifier, identifying an item to be assigned to one of a plurality of physical resources;
- obtain a numeric hash value based on applying a hashing function to the string identifier, the hashing function configured to generate numeric hash values that are distributed over a hash value space comprising a defined range of values;
- downscale the numeric hash value into a reduced value space of bucket identifiers to obtain a downscaled value corresponding to a selected bucket identifier, the reduced value space of bucket identifiers having fewer values than the hash value space;
- deterministically map the selected bucket identifier to one of the plurality of physical resources;
- detect a change in the plurality of physical resources from a first number of physical resources to a second number of physical resources;
- re-assign a bucket identifier from a physical resource in the first number of physical resources to a different physical resource in the second number of physical resources;
- identify a start of a range of numeric hash values corresponding to the re-assigned bucket identifier based on a group index value and a bucket size;
- identify an end of the range of numeric hash values based on the start of the range of numeric hash values and the bucket size;
- retrieve items having numeric hash values in the range of numeric hash values;
- and
- move the retrieved items to the different physical resource.
11 more elements
(canceled)
(canceled)
A computer implemented method, comprising:
- receiving a string identifier, identifying an item to be assigned to one of a plurality of physical resources;
- applying a hashing function to the string identifier to obtain a numeric hash value uniformly distributed over a hash value space comprising a defined range of values;
- downscaling the numeric hash value into a reduced value space of bucket identifiers to obtain a downscaled value corresponding to a selected bucket identifier, each bucket identifier corresponding to a range of numeric hash values, the reduced value space of bucket identifiers having fewer values than the hash value space;
- deterministically mapping the selected bucket identifier to one of the plurality of physical resources;
- detecting a resizing input indicative of a change in the plurality of physical resources from a current number of physical resources to a changed number of physical resources;
- re-assigning a bucket identifier from a physical resource in the current number of physical resources to a different physical resource in the changed number of physical resources;
- identifying a start of a particular range of numeric hash values corresponding to the re-assigned bucket identifier based on a group index value and a bucket size;
- identifying an end of the particular range of numeric hash values based on the start of the particular range of numeric hash values and the bucket size;
- retrieving items having numeric hash values in the particular range of numeric hash values;
- and
- moving the retrieved items to the different physical resource.
8 more elements
(canceled)
(canceled)
A computer system, comprising:
- at least one processor;
- and
- memory storing instructions executable by the at least one processor, wherein the instructions, when executed, cause the computer system to:
- receive a string identifier, identifying an item to be assigned to one of a plurality of physical resources;
- apply a hashing function to the string identifier to obtain a numeric hash value uniformly distributed over a hash value space comprising a defined range of values;
- deterministically downscale the numeric hash value into a reduced value space of bucket identifiers to obtain a downscaled value corresponding to a selected bucket identifier, each bucket identifier corresponding to a range of numeric hash values, the reduced value space of bucket identifiers having fewer values than the hash value space;
- deterministically map the selected bucket identifier to one of the plurality of physical resources;
- detect a resizing input indicative of a change in the plurality of physical resources from a current number of physical resources to a changed number of physical resources;
- re-assign a bucket identifier from a physical resource in the current number of physical resources to a different physical resource in the changed number of physical resources;
- identify a start of a particular range of numeric hash values corresponding to the re-assigned bucket identifier based on a group index value and a bucket size;
- identify an end of the particular range of numeric hash values based on the start of the particular range of numeric hash values and the bucket size;
- retrieve items having numeric hash values in the particular range of numeric hash values;
- and
- move the retrieved items to the different physical resource.
11 more elements
Dependencies are inferred from the claim text.