US 12,229,101 B2
Processing and storing data using a hash table data structure
Michael Jeffrey Evans, Enfield (GB); and Matthew Ian Ronald Williams, Enfield (GB)
Assigned to Metaswitch Networks Ltd., Enfield (GB)
Appl. No. 18/248,105
Filed by METASWITCH NETWORKS LTD., Enfield (GB)
PCT Filed Oct. 8, 2021, PCT No. PCT/US2021/054303
§ 371(c)(1), (2) Date Apr. 6, 2023,
PCT Pub. No. WO2022/076911, PCT Pub. Date Apr. 14, 2022.
Claims priority of application No. 2015972 (GB), filed on Oct. 8, 2020.
Prior Publication US 2024/0020289 A1, Jan. 18, 2024
Int. Cl. G06F 12/0864 (2016.01); G06F 16/22 (2019.01)
CPC G06F 16/2255 (2019.01) [G06F 12/0864 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method of processing key data representative of a key using a hash table data structure, wherein the hash table data structure comprises a plurality of control data storage locations corresponding to a plurality of key data storage locations, wherein each of the plurality of control data storage locations has a write-availability indicated by a first write-availability state which indicates that the control data storage location is available to be written to, and a second write-availability state, which indicates that the control data storage location is not available to be written to, the method comprising:
receiving the key data;
applying a hash function to at least part of the key data to determine a hash value;
based on the determined hash value, determining a temporary label value, wherein the temporary label value has at least one bit which is different from a read-out label value usable to identify a key data storage location based on the key;
selecting a control data storage location of the plurality of control data storage locations having the first write-availability state;
storing the temporary label value in the selected control data storage location to render both the selected control data storage location and a corresponding key data storage location inactive for read-out, wherein the write-availability of the selected control data storage location is caused to be changed to the second write-availability state in response to the storage of the temporary label value in the selected control data storage location;
writing the key data to the key data storage location corresponding to the selected control data storage location;
performing a predetermined operation on the temporary label value stored in the selected control data storage location to determine a new read-out label value; and
overwriting the temporary label value stored in the selected control data storage location with the new read-out label value to render both the selected control data storage location and corresponding key data storage location active for read-out; wherein the determination of the new read-out label value and overwriting the temporary label value are performed atomically.