Technologies for structured database query for finding unique element values
Abstract
Technologies for determining unique values include a computing device that further includes one or more accelerator devices. Each accelerator device is to receive input data and query configuration data, the input data including a packed array of unsigned integers of column data from a database and the query configuration data including an element width of the input data, and generate, in response to receiving the query configuration data, a bit-map output table based on the query configuration data, generate a write request for each element of the input data to set a corresponding bit-map output bit of the bit-map output table which corresponds to an element value of the corresponding element. Subsequently, the accelerator device is further to set the corresponding bit-map output bit to indicate a presence of the corresponding element and output the bit-map output table indicative of unique elements that are present in the input data.
Claims
exact text as granted — not AI-modified1 . A computing device for determining unique values, the computing device comprising one or more accelerator devices, each accelerator device is to:
receive input data and query configuration data, the input data including a packed array of unsigned integers of column data from a database and the query configuration data including an element width of the input data; generate, in response to receiving the query configuration data, a bit-map output table based on the query configuration data; generate a write request for each element of the input data to set a corresponding bit-map output bit of the bit-map output table which corresponds to an element value of the corresponding element; set the corresponding bit-map output bit to indicate a presence of the corresponding element in response to generation of the write request; and output the bit-map output table indicative of unique elements that are present in the input data in response to setting of the corresponding bit-map output bit.
2 . The computing device of claim 1 , wherein the each accelerator is further to:
decompress, in response to importation of the input data, the input data; and pre-process, in response to decompression of the input data, the decompressed input data.
3 . The computing device of claim 2 , wherein to pre-process the decompressed input data comprises to align elements of the packed bit vector of the input data based on a width of elements of the decompressed input data and prepend zeroes to match a data path width.
4 . The computing device of claim 1 , wherein the query configuration data further includes a hash width.
5 . The computing device of claim 4 , wherein the each accelerator is further to:
determine whether the element width is greater than the hash width; program, in response to a determination that the element width is greater than the hash width, a hash function to generate a hash value that corresponds to the element value of the corresponding element; and generate, in response to programming of the hash function, a hash value for each element value by performing the hash function on the input data.
6 . The computing device of claim 4 , wherein to generate the write request comprises to generate a write request address based on a hash value of the corresponding element.
7 . The computing device of claim 1 , wherein to generate the write request comprises to determine a write request address based on an element value of the corresponding element.
8 . The computing device of claim 1 , wherein to generate the bit-map output table based on the query configuration data comprises to:
determine whether the element width of the input data exceeds a threshold; construct, in response to a determination that the element width exceeds the threshold, a large bit-map output table to store the bit-map output bits; and construct, in response to a determination that the element width does not exceed the threshold, a small bit-map output table to store the bit-map output bits.
9 . The computing device of claim 8 , wherein the large bit-map output table supports parallel accesses by duplication of the bit-map output table and the small-sized table supports multiple accesses via multiple write ports and duplication of the bit-map output table.
10 . The computing device of claim 8 , wherein to set the corresponding bit-map output bit comprises to:
determine whether the element width exceeds a threshold; access, in response to a determination that the element width exceeds the threshold, the large bit-map output table to set the corresponding bit-map output bit; and access, in response to a determination that the element width does not exceed the threshold, the small bit-map output table to set the corresponding bit-map output bit.
11 . The computing device of claim 10 , wherein to output the bit-map output table comprises to generate a population count indicating a number of unique elements based on the bit-map output table.
12 . The computing device of claim 10 , wherein the each accelerator is further to accumulate the bit-map output table until a width of the bit-map output table matches a data path width.
13 . One or more machine-readable storage media comprising a plurality of instructions stored thereon that, when executed by a compute device cause an accelerator of the compute device to:
receive input data and query configuration data, the input data including a packed array of unsigned integers of column data from a database and the query configuration data including an element width of the input data; generate, in response to receiving the query configuration data, a bit-map output table based on the query configuration data; generate a write request for each element of the input data to set a corresponding bit-map output bit of the bit-map output table which corresponds to an element value of the corresponding element; set the corresponding bit-map output bit to indicate a presence of the corresponding element in response to generation of the write request; and output the bit-map output table indicative of unique elements that are present in the input data in response to setting of the corresponding bit-map output bit.
14 . The one or more machine-readable storage media of claim 13 , further comprising a plurality of instructions stored thereon that, in response to being executed, cause the accelerator of the compute device to:
decompress, in response to importation of the input data, the input data; and pre-process, in response to decompression of the input data, the decompressed input data.
15 . The one or more machine-readable storage media of claim 14 , wherein to pre-process the decompressed input data comprises to align elements of the packed bit vector of the input data based on a width of elements of the decompressed input data and prepend zeroes to match a data path width.
16 . The one or more machine-readable storage media of claim 13 , further comprising a plurality of instructions stored thereon that, in response to being executed, cause the accelerator of the compute device to:
determine whether the element width is greater than a hash width, wherein the hash width is included in the query configuration data; program, in response to a determination that the element width is greater than the hash width, a hash function to generate a hash value that corresponds to the element value of the corresponding element; and generate, in response to programming of the hash function, a hash value for each element value by performing the hash function on the input data.
17 . The one or more machine-readable storage media of claim 13 , wherein to generate the bit-map output table based on the query configuration data comprises to:
determine whether the element width of the input data exceeds a threshold; construct, in response to a determination that the element width exceeds the threshold, a large bit-map output table to store the bit-map output bits; and construct, in response to a determination that the element width does not exceed the threshold, a small bit-map output table to store the bit-map output bits.
18 . The one or more machine-readable storage media of claim 17 , wherein the large bit-map output table supports parallel accesses by duplication of the bit-map output table and the small-sized table supports multiple accesses via multiple write ports and duplication of the bit-map output table.
19 . The one or more machine-readable storage media of claim 17 , wherein to set the corresponding bit-map output bit comprises to:
determine whether the element width exceeds a threshold; access, in response to a determination that the element width exceeds the threshold, the large bit-map output table to set the corresponding bit-map output bit; and access, in response to a determination that the element width does not exceed the threshold, the small bit-map output table to set the corresponding bit-map output bit.
20 . A method for determining unique values by a computing device, the method comprising:
receiving, by an accelerator of the computing device, input data and query configuration data, the input data including a packed array of unsigned integers of column data from a database and the query configuration data including an element width of the input data; generating, in response to receiving the query configuration data and by the accelerator, a bit-map output table based on the query configuration data; generating, by the accelerator, a write request for each element of the input data to set a corresponding bit-map output bit of the bit-map output table which corresponds to an element value of the corresponding element; setting, by the accelerator, the corresponding bit-map output bit to indicate a presence of the corresponding element in response to generating the write request; and outputting, by the accelerator, the bit-map output table indicative of unique elements that are present in the input data in response to setting the corresponding bit-map output bit.
21 . The method of claim 20 further comprising:
decompressing, in response to importing the input data and by the accelerator, the input data; and
pre-processing, in response to decompressing the input data and by the accelerator, the decompressed input data.
22 . The method of claim 20 further comprising:
determining, by the accelerator, whether the element width is greater than a hash width, wherein the hash width is included in the query configuration data;
programming, in response to a determination that the element width is greater than the hash width and by the accelerator, a hash function to generate a hash value that corresponds to the element value of the corresponding element; and
generating, in response to programming the hash function and by the accelerator, a hash value for each element value by performing the hash function on the input data.
23 . The method of claim 13 , wherein generating the bit-map output table based on the query configuration data comprises:
determining, by the accelerator, whether the element width of the input data exceeds a threshold; constructing, in response to a determination that the element width exceeds the threshold, a large bit-map output table to store the bit-map output bits; and constructing, in response to a determination that the element width does not exceed the threshold, a small bit-map output table to store the bit-map output bits.
24 . The method of claim 23 , wherein the large bit-map output table supports parallel accesses by duplicating the bit-map output table and the small-sized table supports multiple accesses via multiple write ports and duplicating the bit-map output table.
25 . The method of claim 23 , wherein setting the corresponding bit-map output bit comprises:
determining, by the accelerator, whether the element width exceeds a threshold; accessing, in response to a determination that the element width exceeds the threshold and by the accelerator, the large bit-map output table to set the corresponding bit-map output bit; and accessing, in response to a determination that the element width does not exceed the threshold and by the accelerator, the small bit-map output table to set the corresponding bit-map output bit.Join the waitlist — get patent alerts
Track US2019042611A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.