| CPC G06F 16/2255 (2019.01) [G06F 12/0864 (2013.01)] | 20 Claims |

|
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.
|