JP6356675B2 - 集約/グループ化動作:ハッシュテーブル法のハードウェア実装 - Google Patents
集約/グループ化動作:ハッシュテーブル法のハードウェア実装 Download PDFInfo
- Publication number
- JP6356675B2 JP6356675B2 JP2015528526A JP2015528526A JP6356675B2 JP 6356675 B2 JP6356675 B2 JP 6356675B2 JP 2015528526 A JP2015528526 A JP 2015528526A JP 2015528526 A JP2015528526 A JP 2015528526A JP 6356675 B2 JP6356675 B2 JP 6356675B2
- Authority
- JP
- Japan
- Prior art keywords
- group
- value
- access unit
- data
- column
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
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 (14)
- 要求キューによって、第1の列によってグループ化されたデータを集約することを求める要求を受けることと、
前記要求を受けたことに応じて、複数の行のうちの各行に対し、
第1のハードウェアユニットによって、前記行の前記第1の列から値を取出すステップを含み、前記行の前記第1の列からの値は当該行についてのグループ値であり、
前記第1のハードウェアユニットによって、前記取出されたグループ値に固有のタグを割当てて格納するステップと、
第2のハードウェアユニットによって、前記行についての前記グループ値を揮発性メモリにおけるアドレスにマップするステップと、
第3のハードウェアユニットによって、前記アドレスに対応付けられている揮発性メモリから、前記グループ値に対応付けられているグループの一組の集約データを取出すステップと、
第4のハードウェアユニットによって、前記行の第2の列における値に基づいて、前記一組の集約データに含まれる集約値を更新するステップとを実行することとを含み、
前記第3のハードウェアユニットは、前記第1のハードウェアユニットによって格納されている固有のタグが割当てられたグループ値を参照して、衝突を検出する、方法。 - 前記第4のハードウェアユニットによって、前記複数の行のうちの特定の行について、前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないと判断することと、
前記第4のハードウェアユニットによって、前記特定の行に対応付けられているグループ値についての集約データはまだ生成されていないという判断に応じて、前記特定の行に対応付けられているグループ値についての集約データを格納するためのメモリを割当てることとをさらに含む、請求項1に記載の方法。 - 前記複数の行のうちの少なくとも2行において、異なるグループ値が同一アドレスにマップしており、前記方法は、
前記同一アドレスにマップする、前記複数の行のうちの特定の行における特定のグループ値について、前記第4のハードウェアユニットによって、
前記同一アドレスを用いて、格納されているグループ値を含む特定の一組の集約データの場所を求めることと、
前記格納されているグループ値を前記特定のグループ値と比較することと、
前記格納されているグループ値と前記特定のグループ値が一致しているという判断に応じて、前記一組の集約データに含まれる集約値を、前記第2の列の前記特定の行における第2の値に基づいて更新することとをさらに含む、請求項1または2に記載の方法。 - 前記格納されているグループ値と前記特定のグループ値が一致していないという判断に応じて、前記第4のハードウェアユニットによって、
新たなグループの集約データを格納するためのメモリを割当てることと、
前記割当てられたメモリのアドレスを特定するポインタを生成することと、
前記特定の一組の集約データに前記ポインタを格納することとをさらに含む、請求項3に記載の方法。 - 前記グループ値をアドレスにマップするステップは、ハッシュ関数を前記グループ値に適用することを含む、請求項1〜4のいずれか1項に記載の方法。
- 前記グループの一組の集約データは、グループ値と、集約値と、衝突するグループの第2の一組の集約データに対するポインタとを含む、請求項1〜5のいずれか1項に記載の方法。
- 前記アドレスはハッシュテーブルに格納され、前記ハッシュテーブルのサイズは、データを集約することを求める前記要求に対応付けられているグループの数の推定に基づいて選択される、請求項1〜6のいずれか1項に記載の方法。
- 前記第1のハードウェアユニット、前記第2のハードウェアユニット、前記第3のハードウェアユニット、および前記第4のハードウェアユニットは、別々の、異なるハードウェアユニットである、請求項1〜7のいずれか1項に記載の方法。
- グループ化および集約動作を実行するためのシステムであって、
各行の第1の列から第1のグループのグループ値を取出すとともに、前記取出されたグループ値に固有のタグを割当てて格納するように構成されたグループ列アクセスユニットと、
前記グループ値をアドレスにマップするように構成されたハッシュテーブルアクセスユニットと、
前記第1のグループについての前記アドレスに格納されているポインタによって特定される集約データを取出すように構成された集約状態アクセスユニットと、
第2の列の前記行における値に基づいて、前記集約データに含まれる集約値を更新するように構成された値列アクセスユニットとを備え、
前記集約状態アクセスユニットは、前記グループ列アクセスユニットによって格納されている固有のタグが割当てられたグループ値を参照して、衝突を検出する、システム。 - 前記集約状態アクセスユニットはさらに、
前記第1のグループについてのポインタはまだ生成されていないと判断するように、
かつ
前記第1のグループについてのポインタはまだ生成されていないという判断に応じて、前記第1のグループの集約データを格納するためのメモリを割当てるように、かつ
前記第1のグループについてのポインタを生成するように構成され、
前記第1のグループについてのポインタは、前記割当てられたメモリのアドレスを特定する、請求項9に記載のシステム。 - 前記ハッシュテーブルアクセスユニットはさらに、第2の行に格納されている第2のグループ値を第2のアドレスにマップするように構成され、
前記集約状態アクセスユニットはさらに、第2のグループについての前記第2のアドレスに格納されている第2のポインタによって特定される集約データを取出すように構成され、
前記値列アクセスユニットはさらに、前記第2の列の第2の行における値に基づいて、前記第2のポインタによって特定される集約データにおける集約値を更新するように構成される、請求項9または10に記載のシステム。 - 前記ハッシュテーブルアクセスユニットはさらに、前記第1の列の第2の行における第2のグループ値をアドレスにマップするように構成され、
前記集約状態アクセスユニットはさらに、前記グループ値と前記第2のグループ値を比較し、前記グループ値と前記第2のグループ値が一致するという判断に応じて、前記第2の列の第2の行における第2の値に基づいて前記集約データにおける集約値を更新するように構成される、請求項9〜11のいずれか1項に記載のシステム。 - 前記集約状態アクセスユニットはさらに、前記グループ値と前記第2のグループ値が一致しないという判断に応じて、
第2のグループの集約データを格納するためのメモリを割当てるように、かつ
前記割当てられたメモリのアドレスを特定する第2のポインタを生成するように、かつ
前記第1のグループの集約データに前記第2のポインタを格納するように構成される、請求項12に記載のシステム。 - 前記ハッシュテーブルアクセスユニットは、ハッシュ関数を前記グループ値に適用して前記グループ値を前記アドレスにマップするように構成され、
前記グループ列アクセスユニット、前記ハッシュテーブルアクセスユニット、前記集約状態アクセスユニット、および前記値列アクセスユニットは、別々の、異なるハードウェアユニットである、請求項9〜13のいずれか1項に記載のシステム。
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 JP2015528603A (ja) | 2015-09-28 |
| JP2015528603A5 JP2015528603A5 (ja) | 2016-10-06 |
| JP6356675B2 true 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 (36)
| 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 |
| US10534606B2 (en) | 2011-12-08 | 2020-01-14 | Oracle International Corporation | Run-length encoding decompression |
| 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 |
| 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 |
| 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 |
| US10025822B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Optimizing execution plans for in-memory-aware joins |
| 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 |
| US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core 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 |
| 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 |
| 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 | 上海赜睿信息科技有限公司 | 一种数据处理方法、电子设备和计算机可读存储介质 |
| US11675767B1 (en) * | 2020-11-16 | 2023-06-13 | Databricks, Inc. | Hash based rollup with passthrough |
| CN115344760B (zh) * | 2022-07-13 | 2025-08-26 | 阿里云计算有限公司 | 数据处理方法及装置和电子设备 |
Family Cites Families (42)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS63143627A (ja) * | 1986-12-05 | 1988-06-15 | Nippon Telegr & Teleph Corp <Ntt> | 連想集約演算装置 |
| JP2568657B2 (ja) * | 1988-11-28 | 1997-01-08 | シャープ株式会社 | データ駆動型マイクロプロセッサにおけるハッシュ衝突回避方法 |
| 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 |
| US5706495A (en) | 1996-05-07 | 1998-01-06 | International Business Machines Corporation | Encoded-vector indices for decision support and warehousing |
| 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 |
| US5890147A (en) * | 1997-03-07 | 1999-03-30 | Microsoft Corporation | Scope testing of documents in a search engine using document to folder mapping |
| JP2000187668A (ja) * | 1998-12-22 | 2000-07-04 | Hitachi Ltd | グループ化方法と重複排除方法 |
| 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 |
| US8244718B2 (en) | 2006-08-25 | 2012-08-14 | Teradata Us, Inc. | Methods and systems for hardware acceleration of 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 |
| US8374986B2 (en) | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
| 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 |
| 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 WO PCT/US2013/055020 patent/WO2014031416A2/en not_active Ceased
- 2013-08-14 CN CN201380050947.7A patent/CN104685498B/zh active Active
- 2013-08-14 JP JP2015528526A patent/JP6356675B2/ja active Active
- 2013-08-14 EP EP13753948.2A patent/EP2885728B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN104685498B (zh) | 2018-06-08 |
| US9563658B2 (en) | 2017-02-07 |
| JP2015528603A (ja) | 2015-09-28 |
| US20140052726A1 (en) | 2014-02-20 |
| EP2885728A2 (en) | 2015-06-24 |
| WO2014031416A2 (en) | 2014-02-27 |
| CN104685498A (zh) | 2015-06-03 |
| EP2885728B1 (en) | 2019-07-31 |
| WO2014031416A3 (en) | 2014-07-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6356675B2 (ja) | 集約/グループ化動作:ハッシュテーブル法のハードウェア実装 | |
| CN103810237B (zh) | 数据管理方法和系统 | |
| US10198363B2 (en) | Reducing data I/O using in-memory data structures | |
| KR102440128B1 (ko) | 통합된 객체 인터페이스를 위한 메모리 관리 장치, 시스템 및 그 방법 | |
| US9501419B2 (en) | Apparatus, systems, and methods for providing a memory efficient cache | |
| US20100257181A1 (en) | Dynamic Hash Table for Efficient Data Access In A Relational Database System | |
| CN104426770A (zh) | 路由查找方法及装置、B-Tree树结构的构建方法 | |
| WO2013152678A1 (zh) | 元数据查询方法和装置 | |
| US11966356B2 (en) | Efficient usage of one-sided RDMA for linear probing | |
| US11977548B2 (en) | Allocating partitions for executing operations of a query | |
| US11747998B1 (en) | Indexing technique for large scale distributed key-value systems | |
| CN107239485A (zh) | 数据库操作方法、装置及系统 | |
| US20240273074A1 (en) | Efficient analytical calculations on a data set and method for use therewith | |
| CN103279427A (zh) | 存储标识符的基于散列的管理方法和系统 | |
| 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 | |
| US20200142836A1 (en) | Computing system and method using bit counter | |
| CN117540056B (zh) | 数据查询的方法、装置、计算机设备和存储介质 | |
| CN118394762B (zh) | 分布式存储系统的存储管理方法、设备、程序产品及介质 | |
| CN116127135A (zh) | 图处理装置和方法 | |
| CN112069091A (zh) | 一种应用于分子动力学模拟软件的访存优化方法及装置 | |
| CN112069188A (zh) | 一种高性能识别新旧设备id的方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150421 |
|
| 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 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |