Fast object fingerprints
US-9223840-B2 · Dec 29, 2015 · US
US2016378751A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016378751-A1 |
| Application number | US-201514748838-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jun 24, 2015 |
| Priority date | Jun 24, 2015 |
| Publication date | Dec 29, 2016 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
According to one exemplary embodiment, a method for processing a query associated with a database is provided. The method may include receiving the query. The method may include estimating a number of groups. The method may include copying a plurality of data from the database to graphics processing unit (GPU) memory. The method may include creating a hash table in GPU memory. The method may include determining if a group associated with the database is present in the hash table. The method may include adding the group to the hash table based on determining that the group is not present in the hash table. The method may include aggregating a value associated with the group in the hash table based on determining that the group is present in the hash table. The method may include determining a plurality of results. The method may then include retrieving the plurality of results.
Opening claim text (preview).
1 .- 7 . (canceled) 8 . A computer system for processing a query associated with a database, comprising: one or more processors, one or more computer-readable memories, one or more computer-readable tangible storage medium, and program instructions stored on at least one of the one or more tangible storage medium for execution by at least one of the one or more processors via at least one of the one or more memories, wherein the computer system is capable of performing a method comprising: receiving the query; estimating a number of groups based on the received query and the database; copying a plurality of data from the database to graphics processing unit (GPU) memory associated with a GPU; creating a global hash table in GPU memory based on the estimated number of groups; determining if a group associated with the database is present in the global hash table; adding the group to the global hash table based on determining that the group is not present in the global hash table; aggregating a value associated with the group in the global hash table based on determining that the group is present in the global hash table; determining a plurality of results based on the received query and the global hash table; and retrieving the determined plurality of results. 9 . The computer system of claim 8 , wherein adding the group to the global hash table and aggregating the value associated with the group in the global hash table comprises using an atomic operation associated with the GPU. 10 . The computer system of claim 8 , further comprising: determining if the estimated number of groups does not exceed a threshold value; creating a plurality of small hash tables in multiprocessor shared memory associated with the GPU based on determining that the estimated number of groups does not exceed the threshold value; determining if the group associated with the database is present in a small hash table within the plurality of small hash tables; adding the group to the small hash table within the plurality of small hash tables based on determining that the group is not present in the small hash table; aggregating the value associated with the group in the small hash table based on determining that the group is present in the small hash table; and merging the plurality of small hash tables into the global hash table. 11 . The computer system of claim 8 , wherein adding the group to the global hash table and aggregating the value associated with the group in the global hash table comprises using a plurality of execution threads associated with the GPU in parallel. 12 . The computer system of claim 8 , wherein aggregating the value associated with the group in the global hash table is based on the received query. 13 . The computer system of claim 8 , wherein the received query is a group by/aggregate query and the database is a columnar database. 14 . The computer system of claim 8 , wherein estimating the number of groups comprises using an optimizer executed in a central processing unit (CPU). 15 . A computer program product for processing a query associated with a database, comprising: one or more computer-readable storage medium and program instructions stored on at least one of the one or more tangible storage medium, the program instructions executable by a processor, the program instructions comprising: program instructions to receive the query; program instructions to estimate a number of groups based on the received query and the database; program instructions to copy a plurality of data from the database to graphics processing unit (GPU) memory associated with a GPU; program instructions to create a global hash table in GPU memory based on the estimated number of groups; program instructions to determine if a group associated with the database is present in the global hash table; program instructions to add the group to the global hash table based on determining that the group is not present in the global hash table; program instructions to aggregate a value associated with the group in the global hash table based on determining that the group is present in the global hash table; program instructions to determine a plurality of results based on the received query and the global hash table; and program instructions to retrieve the determined plurality of results. 16 . The computer program product of claim 15 , wherein adding the group to the global hash table and aggregating the value associated with the group in the global hash table comprises using an atomic operation associated with the GPU. 17 . The computer program product of claim 15 , further comprising: program instructions to determine if the estimated number of groups does not exceed a threshold value; program instructions to create a plurality of small hash tables in multiprocessor shared memory associated with the GPU based on determining that the estimated number of groups does not exceed the threshold value; program instructions to determine if the group associated with the database is present in a small hash table within the plurality of small hash tables; program instructions to add the group to the small hash table within the plurality of small hash tables based on determining that the group is not present in the small hash table; program instructions to aggregate the value associated with the group in the small hash table based on determining that the group is present in the small hash table; and program instructions to merge the plurality of small hash tables into the global hash table. 18 . The computer program product of claim 15 , wherein adding the group to the global hash table and aggregating the value associated with the group in the global hash table comprises using a plurality of execution threads associated with the GPU in parallel. 19 . The computer program product of claim 15 , wherein aggregating the value associated with the group in the global hash table is based on the received query. 20 . The computer program product of claim 15 , wherein the received query is a group by/aggregate query and the database is a columnar database.
Physics · mapped topic
Physics · mapped topic
Physics · mapped topic
Query execution · CPC title
Column-oriented storage; Management thereof · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.