US2019042611A1PendingUtilityA1

Technologies for structured database query for finding unique element values

Assignee: INTEL CORPPriority: Aug 30, 2017Filed: Jan 11, 2018Published: Feb 7, 2019
Est. expiryAug 30, 2037(~11.1 yrs left)· nominal 20-yr term from priority
G06F 9/4401G06F 30/34G06F 16/2255G06F 3/0673G06F 2212/1052H04L 49/30G06F 15/161G06F 9/4494G06F 16/2237G06F 16/2282G06F 3/0685G06F 16/9014G06F 16/24553G06F 16/2455G06F 13/1663G06F 13/1668G06F 9/5088G06F 16/25G06F 16/2453H04L 69/22G06F 2213/0064H04L 49/351G06F 3/0632H04L 47/125G06F 2212/601G06F 12/0802G11C 29/44G06F 2201/85G06F 9/4411G06F 9/4406G11C 29/36G06F 9/445G06F 2212/1044G06F 15/17331G06F 3/0605G06F 3/0644G06F 16/248G06F 3/0613G06F 3/067G06F 3/0659G06F 3/0604G06F 13/42G11C 29/028G06F 3/0611G06F 12/06G06F 3/0683G06F 12/0607G06F 16/221G06F 9/28G06F 3/0631H04L 49/9005G06F 12/023H04L 9/0894G06F 3/0629G11C 8/12G06F 12/1054G06F 12/1063H04L 41/0677G06F 3/065H04L 69/12G06F 16/119G06F 2209/509H04L 41/0668H04L 45/28G06F 12/14G06F 13/4068G11C 29/38G06F 16/2365H04L 41/0213H04L 47/11G06F 3/0647H04L 45/7453G06F 17/30371G06F 17/30324G06F 17/30554G06F 17/30477H04L 69/32H04L 41/14H04L 41/0893H04L 41/0896H04L 9/0819H04L 69/321H04L 47/83H04L 43/20H04L 41/149H04L 41/0895H04L 41/40H04L 41/34H04L 69/18G06F 2209/5019G06F 9/5055G06F 9/5022G06F 9/5044H04L 67/1001Y02D10/00G06F 2201/885G06F 2201/86G06F 11/3466G06F 11/3442G06F 11/3006G06F 11/3409H05K 7/1498H04L 43/0876H04L 43/065H04L 41/0816H04L 41/044G06N 3/063H04L 43/16H04L 41/5019H04L 41/5025H04L 49/40G06Q 30/0283G06Q 10/0631G06F 21/105G06F 13/4022G06F 9/5061G06F 9/4856G06F 9/44H05K 7/20736H05K 7/20209H05K 7/18H05K 7/1489H04L 67/1008H04L 63/0428G06F 2200/201G06F 15/7867G06F 9/505G06F 2213/3808G06F 2213/0026G06F 15/1735H04L 47/781H04L 41/16H04L 41/142G06F 3/0665G06F 15/173H04Q 11/0062H04Q 11/0005
71
PatentIndex Score
0
Cited by
0
References
0
Claims

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