| CPC G06F 16/2456 (2019.01) [G06F 16/221 (2019.01)] | 21 Claims |

|
1. A method of storing data from a row of a first database table for joining with a second database table, comprising:
selecting the row from the first database table comprising a key column;
hashing the key column from the selected row to produce a hash result containing hash bits;
using a first subset of the hash bits to assign the selected row to one of a plurality of hardware processor engines that manages storage of an independently addressable memory bank of a plurality of independently accessible memory banks; and
by the one of the plurality of hardware processor engines assigned:
using a second subset of the hash bits to identify one of a plurality of components of a first data structure stored in the independently addressable memory bank managed by the assigned hardware processor engine, the plurality of components each having a fixed size;
determining whether the identified one of the plurality of components is already being used to store data from an additional row of the first database table, the additional row being different than the row selected;
responsive to the identified one of the plurality of components determined not already being used to store data from the additional row of the first database table:
storing as much of the key column of the row as will fit in one of a plurality of components of a first section of the first data structure, at an address corresponding to the second subset of the hash bits; and
storing a set of one or more join columns from the row selected into some or all of any remaining space of the one of the plurality of components.
|