Fast query processing in columnar databases with gpus

US2016378751A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016378751-A1
Application numberUS-201514748838-A
CountryUS
Kind codeA1
Filing dateJun 24, 2015
Priority dateJun 24, 2015
Publication dateDec 29, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016378751A1 cover?
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 in…
Who is the assignee on this patent?
IBM
What technology area does this patent fall under?
Primary CPC classification G06F17/3033. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Dec 29 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).