US 12,105,691 B1
Distributable hash filter for nonprobabilistic set inclusion
Ashton Hudson, Cape Town (ZA); Pierre Hugo, Cape Town (ZA); Charl Cater, Cape Town (ZA); and Leonard Botha, Johannesburg (ZA)
Assigned to Hewlett Packard Enterprise Development LP, Spring, TX (US)
Filed by Hewlett Packard Enterprise Development LP, Spring, TX (US)
Filed on Sep. 5, 2023, as Appl. No. 18/461,128.
Int. Cl. G06F 16/22 (2019.01); H03M 7/30 (2006.01)
CPC G06F 16/2255 (2019.01) [H03M 7/702 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A device, comprising:
one or more processors; and
one or more non-transitory computer readable media storing instructions which, when executed by the one or more processors, cause the one or more processors to:
obtain an allowed set comprising a first plurality of identifiers corresponding to a plurality of objects;
obtain, according to the allowed set and a total set of identifiers, a disallowed set comprising a second plurality of identifiers;
generate an initial bit array comprising a first value at each position of a plurality of positions in the initial bit array;
obtain a first set of index values corresponding to a subset of positions of the plurality of positions using the first plurality of identifiers and a first hash function of a plurality of hash functions;
set each of the subset of positions in the initial bit array to a second value to obtain an updated initial bit array;
perform a first collision check using the first hash function, the disallowed set, and the updated initial bit array to obtain a first bit array and a new allowed set comprising a subset of the identifiers of the allowed set;
obtain a new set of index values using the new allowed set and a new hash function of the plurality of hash functions;
set, using the new set of index values, a new subset of positions of a new initial bit array to the second value;
perform a second collision check using the disallowed set, the new hash function, and the new initial bit array to obtain a second bit array;
generate, when the second collision check results in no collisions, a data structure comprising the first bit array; and
compress the data structure to obtain a compressed data structure.