JP2015528603A - 集約/グループ化動作:ハッシュテーブル法のハードウェア実装 - Google Patents
集約/グループ化動作:ハッシュテーブル法のハードウェア実装 Download PDFInfo
- Publication number
- JP2015528603A JP2015528603A JP2015528526A JP2015528526A JP2015528603A JP 2015528603 A JP2015528603 A JP 2015528603A JP 2015528526 A JP2015528526 A JP 2015528526A JP 2015528526 A JP2015528526 A JP 2015528526A JP 2015528603 A JP2015528603 A JP 2015528603A
- Authority
- JP
- Japan
- Prior art keywords
- group
- value
- data
- aggregate
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000002776 aggregation Effects 0.000 title claims abstract description 74
- 238000004220 aggregation Methods 0.000 title claims abstract description 74
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000004044 response Effects 0.000 claims abstract description 16
- 230000006870 function Effects 0.000 claims description 19
- 238000013507 mapping Methods 0.000 claims description 5
- 230000004931 aggregating effect Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 24
- 238000012545 processing Methods 0.000 description 24
- 238000004891 communication Methods 0.000 description 16
- 239000000872 buffer Substances 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 3
- 238000013499 data model Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
- G06F16/244—Grouping and aggregation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本開示は、概してデータベース動作を実行するための技術に関し、より具体的にはグループ化および集約動作を実行するための技術に関する。
このセクションで説明される手法は、遂行可能な手法であるが、必ずしも過去に考案または遂行された手法ではない。したがって、特に明示されない限り、このセクションで説明される手法のうちのいずれも、このセクションに含まれているというだけで先行技術とみなされるべきではない。
集約およびグループ化動作は、特定の列のデータに関する簡易統計を提供するデータベース動作である。SQLにおいて、グループ化動作は、GROUP BY構文を用いて、1つ以上の列により、集約関数の結果をグループ化する。以下のテーブル1は、データベースクエリにおいて使用し得る集約関数の例を示す。
以下の記載では、本発明が十分に理解されるよう、数多くの具体的な詳細事項が説明のために述べられている。しかしながら、これらの具体的な詳細事項がなくとも本発明を実施し得ることは明らかであろう。他の場合では、本発明を不必要に曖昧にするのを避けるために、周知の構造および装置はブロック図の形式で示される。
グループ化および集約データベース動作を実行するための技術が説明される。ある実施形態において、専用ハードウェアが、グループ化および集約データベース動作を効率的かつ効果的に実行するように構成される。この専用ハードウェアは、グループ化動作を実行するとき、任意の数のグループをサポートし得る。
図1Aおよび図1Bは、ある実施形態に従いグループ化および集約動作を実行するためのシステムアーキテクチャの一例を示すブロック図である。概して、システム100は、ランダムアクセスメモリ(RAM)102と、RAMコントローラ104と、キャッシュ110と、要求キュー120と、グループ列アクセスユニット130と、値列アクセスユニット140と、ハッシュテーブルアクセスユニット150と、集約状態アクセスユニット160とを含む。
システム100のメモリシステムを個々のセクションに分割することによって、クエリ処理中のデータアクセスを最適化してもよい。図1Bは、システム100の記憶階層の一例を示すブロック図である。示されているように、メモリシステムは2つのセクション、すなわちバッファ112とマルチレベルキャッシュ114に分割されている。
図2は、グループ列アクセスユニット130のアーキテクチャの一例を示すブロック図である。概して、グループ列アクセスユニット130は、アドレス生成器204と、タグ割当部206と、ローカルメモリ208とを含む。グループ列アクセスユニット130は、グループ化されている列の値をフェッチする役割を果たす。説明のためにクエリ2が実行されているものとする。クエリ2では、グループ化されている列は「販売員」である。したがって、この例において、グループ列アクセスユニット130は、「販売員」列から値をフェッチする役割を果たす。
図3は、ある実施形態に従うハッシュテーブルアクセスユニット150のアーキテクチャの一例を示すブロック図である。概して、ハッシュテーブルアクセスユニット150は、ハッシュ生成器304とローカルメモリ306とを含む。ハッシュテーブルアクセスユニット150は、グループ名にハッシュ関数を適用し対応するポインタをフェッチする役割を果たす。
図4は、ある実施形態に従う集約状態アクセスユニット160のアーキテクチャの一例を示すブロック図である。概して、集約状態アクセスユニット160は、マルチプレクサ(MUX)404と、衝突検査ブロック406と、メモリアロケータ408と、ローカルメモリ410とを含む。集約状態アクセスユニット160は、ハッシュテーブルポインタによって示されるアドレスのペイロードデータをフェッチしこのペイロードデータに対して衝突検査を実施する役割を果たす。
図5は、ある実施形態に従う値列アクセスユニット140のアーキテクチャの一例を示すブロック図である。概して、値列アクセスユニット140は、アドレス生成器504と、タグ割当部506と、集約動作ユニット508と、ローカルメモリ510とを含む。値列アクセスユニット140は、集約されている列(たとえばクエリ2の場合は「売上高」列)の値をフェッチする役割を果たす。
ある実施形態において、システム100は、処理する各グループに対してアキュムレータデータ構造を生成し維持する。各グループに対するアキュムレータデータ構造は、そのグループの一組の集約データを格納する。アキュムレータデータ構造に格納される一組のデータは、実装および実行されている集約動作の種類に応じて異なり得る。
SELECT 合計(売上高)、カウント(*)
FROM 売上
GROUP BY 販売員
上記クエリに対し、1つのデータ構造に、合計(売上高)集約結果とカウント(*)集約結果双方を格納することができる。
タグを用いることにより、グループ化および集約中に、行の順不同処理を行なうことができる。このことは、ハッシュテーブルアクセスユニット150および集約状態アクセスユニット160をサポートする要求キューが順不同ディスパッチをサポートするように構成されているときに、有用であろう。
図6は、ある実施形態に従うグループ化および集約動作を実行するためのプロセスの一例を示す。このプロセスは、限定されないが、システム100を含む任意の適切なシステム上で実装し得る。
ハッシュテーブルのサイズは、実装毎に異なり得る。ハッシュテーブルが小さいほど衝突の可能性が高く、そうなるとシステムの性能が低下し得る。逆に、大きなハッシュテーブルはシステム内の記憶容量を浪費する可能性が高い。
ハッシュテーブルの衝突に対応するための技術は、実装毎に異なり得る。上記衝突対処技術に代わるものとして、システム100は、ハッシュテーブル内の同一場所にマップされるであろうグループ名をすべて事前に計算してもよい。この事前計算は、データベースがシステム100にロードされたときに実行すればよい。次に、衝突しているグループを、これら衝突専用の第2のテーブルに置けばよい。その後、元のハッシュテーブルにおけるエントリを、そのアドレスにおける衝突の発生を示しかつ集約データが第2のテーブルにあることを示す特別キーと置換えればよい。
1つの実施形態によれば、本明細書に記載の技術は、1つ以上の専用計算装置によって実装される。専用計算装置は、ハードウェアによって技術を実装し得る、または、技術を実装するように永続的にプログラミングされた1つ以上の特定用途向け集積回路(ASIC)もしくはフィールドプログラマブルゲートアレイ(FPGA)などのデジタル電子装置を含み得る、または、ファームウェア、メモリ、他の記憶装置、もしくは組合せにおけるプログラムコマンドに従って技術を実装するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含み得る。このような専用計算装置は、技術を達成するために、カスタムプログラミングにカスタムハードワイヤードロジック、ASIC、またはFPGAを組合わせてもよい。専用計算装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯用デバイス、ネットワーキングデバイス、または、技術を実装するためにハードワイヤードロジックおよび/もしくはプログラムロジックを組込んだ任意の他の装置であってもよい。
上記明細書では、実装毎に異なり得る多数の具体的な詳細を参照しながら本発明の実施形態を説明している。このため、明細書および図面は、限定的ではなく例示的な意味で考慮されねばならない。発明の範囲の唯一かつ排他的な指標および出願人が意図する発明の範囲は、本願に由来する一組の請求項の、このような請求項の元になる特定の形式の、後の任意の修正が含まれる、文言上のかつ均等物の範囲である。
Claims (22)
- 方法であって、
第1の列によってグループ化されたデータを集約することを求める要求を受けることと、
前記要求を受けたことに応じて、複数の行のうちの各行に対し、
前記行におけるグループ値をアドレスにマップするステップと、
前記アドレスを用いて、前記グループ値に対応付けられているグループの一組の集約データの場所を求めるステップと、
前記行の第2の列における値に基づいて、前記一組の集約データに含まれる集約値を更新するステップとを実行することとを含み、
前記方法は1つ以上の計算装置によって実行される、方法。 - 前記複数の行のうちの特定の行について、前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないと判断することと、
前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないという判断に応じて、前記特定の行に対応付けられているグループ値についての集約データを格納するためのメモリを割当てることとをさらに含む、請求項1に記載の方法。 - 前記複数の行のうちの少なくとも2行において、異なるグループ値が同一アドレスにマップしており、前記方法は、
前記同一アドレスにマップする、前記複数の行のうちの特定の行における特定のグループ値について、
前記同一アドレスを用いて、格納されているグループ値を含む特定の一組の集約データの場所を求めることと、
前記格納されているグループ値を前記特定のグループ値と比較することと、
前記格納されているグループ値と前記特定のグループ値が一致しているという判断に応じて、前記一組の集約データに含まれる集約値を、前記第2の列の前記特定の行における第2の値に基づいて更新することとをさらに含む、請求項1に記載の方法。 - 前記格納されているグループ値と第1のグループ値が一致していないという判断に応じて、
新たなグループの集約データを格納するためのメモリを割当てることと、
前記割当てられたメモリのアドレスを特定するポインタを生成することと、
前記特定の一組の集約データに第2のポインタを格納することとをさらに含む、請求項3に記載の方法。 - 前記グループ値をアドレスにマップするステップは、ハッシュ関数を前記グループ値に適用することを含む、請求項1に記載の方法。
- 前記グループの一組の集約データは、グループ値と、集約値と、衝突するグループの第2の一組の集約データに対するポインタとを含む、請求項1に記載の方法。
- 前記アドレスはハッシュテーブルに格納され、前記ハッシュテーブルのサイズは、データを集約することを求める前記要求に対応付けられているグループの数の推定に基づいて選択される、請求項1に記載の方法。
- 前記要求を受ける前に同一アドレスにマップしている前記第1の列におけるすべてのグループ名を事前計算することにより、衝突が検出される、請求項1に記載の方法。
- 1つ以上のプロセッサにより実行されるときに、
第1の列によってグループ化されたデータを集約することを求める要求を受けることと、
前記要求を受けたことに応じて、複数の行のうちの各行に対し、
前記行におけるグループ値をアドレスにマップするステップと、
前記アドレスを用いて、前記グループ値に対応付けられているグループの一組の集約データの場所を求めるステップと、
前記行の第2の列における値に基づいて、前記一組の集約データに含まれる集約値を更新するステップとを実行することとを、1つ以上の計算装置に実行させる命令が格納された、1つ以上の非一時的なコンピュータ読取可能な媒体。 - 前記複数の行のうちの特定の行について、前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないと判断することと、
前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないという判断に応じて、前記特定の行に対応付けられているグループ値についての集約データを格納するためのメモリを割当てることとを、前記1つ以上の計算装置に実行させる命令がさらに格納された、請求項9に記載の非一時的なコンピュータ読取可能な媒体。 - 前記複数の行のうちの少なくとも2行において、異なるグループ値が同一アドレスにマップしており、
前記同一アドレスにマップする、前記複数の行のうちの特定の行における特定のグループ値について、
前記同一アドレスを用いて、格納されているグループ値を含む特定の一組の集約データの場所を求めることと、
前記格納されているグループ値を前記特定のグループ値と比較することと、
前記格納されているグループ値と前記特定のグループ値が一致しているという判断に応じて、前記一組の集約データに含まれる集約値を、前記第2の列の前記特定の行における第2の値に基づいて更新することとを、前記1つ以上の計算装置に実行させる命令がさらに格納された、請求項9に記載の非一時的なコンピュータ読取可能な媒体。 - 第1の列の第2の行について、
新たなグループの集約データを格納するためのメモリを割当てることと、
前記割当てられたメモリのアドレスを特定するポインタを生成することと、
前記特定の一組の集約データに第2のポインタを格納することとを、前記1つ以上の計算装置に実行させる命令がさらに格納された、請求項11に記載の非一時的なコンピュータ読取可能な媒体。 - 前記グループ値をアドレスにマップするための命令は、ハッシュ関数を前記グループ値に適用するための命令を含む、請求項9に記載の非一時的なコンピュータ読取可能な媒体。
- 前記グループの一組の集約データは、グループ値と、集約値と、衝突するグループの第2の一組の集約データに対するポインタとを含む、請求項9に記載の非一時的なコンピュータ読取可能な媒体。
- 前記アドレスはハッシュテーブルに格納され、前記ハッシュテーブルのサイズは、データを集約することを求める前記要求に対応付けられているグループの数の推定に基づいて選択される、請求項9に記載の非一時的なコンピュータ読取可能な媒体。
- 前記要求を受ける前に同一アドレスにマップしている第1の列におけるすべてのグループ名を事前計算することにより、衝突が検出される、請求項9に記載の非一時的なコンピュータ読取可能な媒体。
- グループ化および集約動作を実行するためのシステムであって、
第1の列の行から第1のグループのグループ値を取出すように構成されたグループ列アクセスユニットと、
前記グループ値をアドレスにマップするように構成されたハッシュテーブルアクセスユニットと、
前記第1のグループについての前記アドレスに格納されているポインタによって特定される集約データを取出すように構成された集約状態アクセスユニットと、
第2の列の前記行における値に基づいて、一組の集約データに含まれる集約値を更新するように構成された値列アクセスユニットとを備える、システム。 - 前記集約状態アクセスユニットはさらに、
前記第1のグループについてのポインタはまだ生成されていないと判断するように、かつ
前記第1のグループについてのポインタはまだ生成されていないという判断に応じて、前記第1のグループの集約データを格納するためのメモリを割当てるように、かつ
前記第1のグループについてのポインタを生成するように構成され、
前記第1のグループについてのポインタは、前記割当てられたメモリのアドレスを特定する、請求項17に記載のシステム。 - 前記ハッシュテーブルアクセスユニットはさらに、第2の行に格納されている第2のグループ値を第2のアドレスにマップするように構成され、
前記集約状態アクセスユニットはさらに、第2のグループについての前記第2のアドレスに格納されている第2のポインタによって特定される集約データを取出すように構成され、
前記値列アクセスユニットはさらに、前記第2の列の第2の行における値に基づいて、前記第2のポインタによって特定される集約データにおける集約値を更新するように構成される、請求項17に記載のシステム。 - 前記ハッシュテーブルアクセスユニットはさらに、前記第1の列の第2の行における第2のグループ値をアドレスにマップするように構成され、
前記集約状態アクセスユニットはさらに、前記グループ値と前記第2のグループ値を比較し、前記グループ値と前記第2のグループ値が一致するという判断に応じて、前記第2の列の第2の行における第2の値に基づいて前記集約データにおける集約値を更新するように構成される、請求項17に記載のシステム。 - 前記集約状態アクセスユニットはさらに、前記グループ値と前記第2のグループ値が一致しないという判断に応じて、
第2のグループの集約データを格納するためのメモリを割当てるように、かつ
前記割当てられたメモリのアドレスを特定する第2のポインタを生成するように、かつ
前記第1のグループの集約データに前記第2のポインタを格納するように構成される、請求項20に記載のシステム。 - 前記ハッシュテーブルアクセスユニットは、ハッシュ関数を前記グループ値に適用して前記グループ値を前記アドレスにマップするように構成される、請求項17に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/590,057 US9563658B2 (en) | 2012-08-20 | 2012-08-20 | Hardware implementation of the aggregation/group by operation: hash-table method |
US13/590,057 | 2012-08-20 | ||
PCT/US2013/055020 WO2014031416A2 (en) | 2012-08-20 | 2013-08-14 | Hardware implementation of the aggregation/group by operation: hash-table method |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015528603A true JP2015528603A (ja) | 2015-09-28 |
JP2015528603A5 JP2015528603A5 (ja) | 2016-10-06 |
JP6356675B2 JP6356675B2 (ja) | 2018-07-11 |
Family
ID=49083762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015528526A Active JP6356675B2 (ja) | 2012-08-20 | 2013-08-14 | 集約/グループ化動作:ハッシュテーブル法のハードウェア実装 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9563658B2 (ja) |
EP (1) | EP2885728B1 (ja) |
JP (1) | JP6356675B2 (ja) |
CN (1) | CN104685498B (ja) |
WO (1) | WO2014031416A2 (ja) |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10127281B2 (en) * | 2010-12-23 | 2018-11-13 | Sap Se | Dynamic hash table size estimation during database aggregation processing |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US9792117B2 (en) | 2011-12-08 | 2017-10-17 | Oracle International Corporation | Loading values from a value vector into subregisters of a single instruction multiple data register |
US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
US9600522B2 (en) | 2012-08-20 | 2017-03-21 | Oracle International Corporation | Hardware implementation of the aggregation/group by operation: filter method |
US9727606B2 (en) | 2012-08-20 | 2017-08-08 | Oracle International Corporation | Hardware implementation of the filter/project operations |
US9779137B2 (en) * | 2013-07-09 | 2017-10-03 | Logicblox Inc. | Salient sampling for query size estimation |
US11113054B2 (en) | 2013-09-10 | 2021-09-07 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors: fast fixed-length value compression |
US9606921B2 (en) | 2013-09-21 | 2017-03-28 | Oracle International Corporation | Granular creation and refresh of columnar data |
KR101642072B1 (ko) * | 2014-05-08 | 2016-07-22 | 주식회사 알티베이스 | 하이브리드스토리지장치 및 방법 |
US11250001B2 (en) | 2014-08-01 | 2022-02-15 | International Business Machines Corporation | Accurate partition sizing for memory efficient reduction operations |
US10007615B1 (en) * | 2015-05-01 | 2018-06-26 | Marvell International Ltd. | Methods and apparatus for performing fast caching |
US10073885B2 (en) | 2015-05-29 | 2018-09-11 | Oracle International Corporation | Optimizer statistics and cost model for in-memory tables |
US9971808B2 (en) | 2015-06-24 | 2018-05-15 | International Business Machines Corporation | Fast query processing in columnar databases with GPUs |
US10067954B2 (en) | 2015-07-22 | 2018-09-04 | Oracle International Corporation | Use of dynamic dictionary encoding with an associated hash table to support many-to-many joins and aggregations |
CN106570022B (zh) * | 2015-10-10 | 2020-06-23 | 菜鸟智能物流控股有限公司 | 一种跨数据源查询方法、装置及系统 |
US11023468B2 (en) * | 2015-11-20 | 2021-06-01 | Sap Se | First/last aggregation operator on multiple keyfigures with a single table scan |
US10055358B2 (en) | 2016-03-18 | 2018-08-21 | Oracle International Corporation | Run length encoding aware direct memory access filtering engine for scratchpad enabled multicore processors |
US10061832B2 (en) | 2016-11-28 | 2018-08-28 | Oracle International Corporation | Database tuple-encoding-aware data partitioning in a direct memory access engine |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multicore processors |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core processors |
US10552413B2 (en) | 2016-05-09 | 2020-02-04 | Sap Se | Database workload capture and replay |
US10885009B1 (en) * | 2016-06-14 | 2021-01-05 | Amazon Technologies, Inc. | Generating aggregate views for data indices |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10783102B2 (en) * | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
US11061876B2 (en) * | 2016-11-15 | 2021-07-13 | Sap Se | Fast aggregation on compressed data |
US10176114B2 (en) | 2016-11-28 | 2019-01-08 | Oracle International Corporation | Row identification number generation in database direct memory access engine |
US10459859B2 (en) | 2016-11-28 | 2019-10-29 | Oracle International Corporation | Multicast copy ring for database direct memory access filtering engine |
US10725947B2 (en) | 2016-11-29 | 2020-07-28 | Oracle International Corporation | Bit vector gather row count calculation and handling in direct memory access engine |
US10324634B2 (en) * | 2017-04-07 | 2019-06-18 | Micron Technology, Inc. | Methods of bit-flagged sketch-based memory management and memory devices utilizing the same |
US10558704B2 (en) * | 2017-07-20 | 2020-02-11 | Sap Se | Smart rollover |
US10698892B2 (en) | 2018-04-10 | 2020-06-30 | Sap Se | Order-independent multi-record hash generation and data filtering |
CN110442574B (zh) * | 2019-07-01 | 2022-05-03 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63143627A (ja) * | 1986-12-05 | 1988-06-15 | Nippon Telegr & Teleph Corp <Ntt> | 連想集約演算装置 |
JPH02146688A (ja) * | 1988-11-28 | 1990-06-05 | Sharp Corp | データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 |
US5511190A (en) * | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
US5655080A (en) * | 1995-08-14 | 1997-08-05 | International Business Machines Corporation | Distributed hash group-by cooperative processing |
US5884299A (en) * | 1997-02-06 | 1999-03-16 | Ncr Corporation | Optimization of SQL queries involving aggregate expressions using a plurality of local and global aggregation operations |
JP2000187668A (ja) * | 1998-12-22 | 2000-07-04 | Hitachi Ltd | グループ化方法と重複排除方法 |
JP2000510986A (ja) * | 1997-03-07 | 2000-08-22 | マイクロソフト コーポレイション | サーチエンジンにおけるドキュメントのスコープ・テスト |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706495A (en) | 1996-05-07 | 1998-01-06 | International Business Machines Corporation | Encoded-vector indices for decision support and warehousing |
US6934712B2 (en) * | 2000-03-21 | 2005-08-23 | International Business Machines Corporation | Tagging XML query results over relational DBMSs |
US6598041B1 (en) * | 2000-09-07 | 2003-07-22 | International Business Machines Corporation | Method, system, and program for processing modifications to data in tables in a database system |
US6581055B1 (en) | 2000-09-11 | 2003-06-17 | Oracle International Corporation | Query optimization with switch predicates |
CA2327167C (en) | 2000-11-30 | 2007-10-16 | Ibm Canada Limited-Ibm Canada Limitee | Method and system for composing a query for a database and traversing the database |
US6571233B2 (en) | 2000-12-06 | 2003-05-27 | International Business Machines Corporation | Optimization of SQL queries using filtering predicates |
US6996569B1 (en) | 2001-06-20 | 2006-02-07 | Microstrategy Incorporated | Systems and methods for custom grouping of data |
US6823329B2 (en) | 2002-04-02 | 2004-11-23 | Sybase, Inc. | Database system providing methodology for acceleration of queries involving functional expressions against columns having enumerated storage |
US6957225B1 (en) | 2002-05-07 | 2005-10-18 | Oracle International Corporation | Automatic discovery and use of column correlations in tables |
US7111025B2 (en) | 2003-04-30 | 2006-09-19 | International Business Machines Corporation | Information retrieval system and method using index ANDing for improving performance |
US7433886B2 (en) | 2003-10-24 | 2008-10-07 | Microsoft Corporation | SQL language extensions for modifying collection-valued and scalar valued columns in a single statement |
US7469241B2 (en) | 2004-11-30 | 2008-12-23 | Oracle International Corporation | Efficient data aggregation operations using hash tables |
US7908259B2 (en) | 2006-08-25 | 2011-03-15 | Teradata Us, Inc. | Hardware accelerated reconfigurable processor for accelerating database operations and queries |
US7974976B2 (en) | 2006-11-09 | 2011-07-05 | Yahoo! Inc. | Deriving user intent from a user query |
US7870398B2 (en) | 2007-01-25 | 2011-01-11 | International Business Machines Corporation | Integrity assurance of query result from database service provider |
US9524317B2 (en) * | 2007-08-24 | 2016-12-20 | International Business Machines Corporation | Optimization of aggregate queries in database management systems using an early out join when processing min and max functions |
US8078595B2 (en) * | 2007-10-09 | 2011-12-13 | Oracle International Corporation | Secure normal forms |
US8150850B2 (en) | 2008-01-07 | 2012-04-03 | Akiban Technologies, Inc. | Multiple dimensioned database architecture |
US20090216757A1 (en) | 2008-02-27 | 2009-08-27 | Robi Sen | System and Method for Performing Frictionless Collaboration for Criteria Search |
US8275761B2 (en) * | 2008-05-15 | 2012-09-25 | International Business Machines Corporation | Determining a density of a key value referenced in a database query over a range of rows |
US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
US8832112B2 (en) * | 2008-06-17 | 2014-09-09 | International Business Machines Corporation | Encoded matrix index |
SE0801708L (sv) * | 2008-07-18 | 2009-11-24 | Qliktech Internat Ab | Förfarande och apparat för extrahering av information från en databas |
US20100030728A1 (en) * | 2008-07-29 | 2010-02-04 | Oracle International Corporation | Computing selectivities for group of columns and expressions |
US9430526B2 (en) | 2008-09-29 | 2016-08-30 | Teradata Us, Inc. | Method and system for temporal aggregation |
US8478775B2 (en) | 2008-10-05 | 2013-07-02 | Microsoft Corporation | Efficient large-scale filtering and/or sorting for querying of column based data encoded structures |
US8312038B2 (en) | 2008-12-18 | 2012-11-13 | Oracle International Corporation | Criteria builder for query builder |
US8745031B2 (en) | 2009-05-28 | 2014-06-03 | Oracle International Corporation | Cache-based predicate handling for queries on XML data using uncorrelated path-based row sources |
EP2290562A1 (en) * | 2009-08-24 | 2011-03-02 | Amadeus S.A.S. | Segmented main-memory stored relational database table system with improved collaborative scan algorithm |
US8959070B2 (en) * | 2009-09-15 | 2015-02-17 | Factual Inc. | Processes and systems for collaborative manipulation of data |
US8832142B2 (en) | 2010-08-30 | 2014-09-09 | Oracle International Corporation | Query and exadata support for hybrid columnar compressed data |
US10311105B2 (en) | 2010-12-28 | 2019-06-04 | Microsoft Technology Licensing, Llc | Filtering queried data on data stores |
US8676834B2 (en) | 2011-02-16 | 2014-03-18 | International Business Machines Corporation | Set-level comparisons in dynamically formed groups |
US9727606B2 (en) | 2012-08-20 | 2017-08-08 | Oracle International Corporation | Hardware implementation of the filter/project operations |
US9600522B2 (en) | 2012-08-20 | 2017-03-21 | Oracle International Corporation | Hardware implementation of the aggregation/group by operation: filter method |
-
2012
- 2012-08-20 US US13/590,057 patent/US9563658B2/en active Active
-
2013
- 2013-08-14 EP EP13753948.2A patent/EP2885728B1/en active Active
- 2013-08-14 CN CN201380050947.7A patent/CN104685498B/zh active Active
- 2013-08-14 JP JP2015528526A patent/JP6356675B2/ja active Active
- 2013-08-14 WO PCT/US2013/055020 patent/WO2014031416A2/en active Application Filing
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63143627A (ja) * | 1986-12-05 | 1988-06-15 | Nippon Telegr & Teleph Corp <Ntt> | 連想集約演算装置 |
JPH02146688A (ja) * | 1988-11-28 | 1990-06-05 | Sharp Corp | データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 |
US5511190A (en) * | 1995-01-20 | 1996-04-23 | Tandem Computers, Inc. | Hash-based database grouping system and method |
US5655080A (en) * | 1995-08-14 | 1997-08-05 | International Business Machines Corporation | Distributed hash group-by cooperative processing |
US5884299A (en) * | 1997-02-06 | 1999-03-16 | Ncr Corporation | Optimization of SQL queries involving aggregate expressions using a plurality of local and global aggregation operations |
JP2000510986A (ja) * | 1997-03-07 | 2000-08-22 | マイクロソフト コーポレイション | サーチエンジンにおけるドキュメントのスコープ・テスト |
JP2000187668A (ja) * | 1998-12-22 | 2000-07-04 | Hitachi Ltd | グループ化方法と重複排除方法 |
Also Published As
Publication number | Publication date |
---|---|
US9563658B2 (en) | 2017-02-07 |
US20140052726A1 (en) | 2014-02-20 |
WO2014031416A2 (en) | 2014-02-27 |
CN104685498B (zh) | 2018-06-08 |
JP6356675B2 (ja) | 2018-07-11 |
EP2885728B1 (en) | 2019-07-31 |
EP2885728A2 (en) | 2015-06-24 |
CN104685498A (zh) | 2015-06-03 |
WO2014031416A3 (en) | 2014-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6356675B2 (ja) | 集約/グループ化動作:ハッシュテーブル法のハードウェア実装 | |
US10198363B2 (en) | Reducing data I/O using in-memory data structures | |
US10114908B2 (en) | Hybrid table implementation by using buffer pool as permanent in-memory storage for memory-resident data | |
US8819335B1 (en) | System and method for executing map-reduce tasks in a storage device | |
CN107273522B (zh) | 面向多应用的数据存储系统和数据调用方法 | |
US10275489B1 (en) | Binary encoding-based optimizations at datastore accelerators | |
US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
CN107077453B (zh) | 用于使用集群缓存进行数据库查询的并行优化的系统和方法 | |
KR102440128B1 (ko) | 통합된 객체 인터페이스를 위한 메모리 관리 장치, 시스템 및 그 방법 | |
CN107665095B (zh) | 存储器空间管理的设备、方法及可读存储介质 | |
US10528590B2 (en) | Optimizing a query with extrema function using in-memory data summaries on the storage server | |
US11709835B2 (en) | Re-ordered processing of read requests | |
US11966356B2 (en) | Efficient usage of one-sided RDMA for linear probing | |
CN107239485A (zh) | 数据库操作方法、装置及系统 | |
US11294872B2 (en) | Efficient database management system and method for use therewith | |
KR101806394B1 (ko) | 모바일 dbms환경에서 트랜잭션에 특화된 색인 캐시의 구조를 갖는 데이터 처리 방법 | |
US11210280B2 (en) | Systems and methods for fast bloom filter operations | |
US10339052B2 (en) | Massive access request for out-of-core textures by a parallel processor with limited memory | |
US11747998B1 (en) | Indexing technique for large scale distributed key-value systems | |
US10942860B2 (en) | Computing system and method using bit counter | |
CN117540056A (zh) | 数据查询的方法、装置、计算机设备和存储介质 | |
JPS6299843A (ja) | キヤツシユ記憶装置の制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160810 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160810 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170719 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170801 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20171031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171205 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180116 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180406 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6356675 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |