JP2015532748A5 - - Google Patents
Download PDFInfo
- Publication number
- JP2015532748A5 JP2015532748A5 JP2015528521A JP2015528521A JP2015532748A5 JP 2015532748 A5 JP2015532748 A5 JP 2015532748A5 JP 2015528521 A JP2015528521 A JP 2015528521A JP 2015528521 A JP2015528521 A JP 2015528521A JP 2015532748 A5 JP2015532748 A5 JP 2015532748A5
- Authority
- JP
- Japan
- Prior art keywords
- declaration
- value
- result
- row
- declarations
- 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
- 238000001914 filtration Methods 0.000 claims 19
- 230000000875 corresponding Effects 0.000 claims 4
- 230000001808 coupling Effects 0.000 claims 2
- 238000010168 coupling process Methods 0.000 claims 2
- 238000005859 coupling reaction Methods 0.000 claims 2
- 238000011156 evaluation Methods 0.000 claims 1
Claims (12)
- 方法であって、
テーブルを対象とするクエリの結果をフィルタリングするための基準を指定する宣言に基づいて回路をプログラミングしてフィルタリングユニットの再構成可能なハードウェアにすることを含み、
前記宣言は前記テーブルの特定の列に対する条件を指定し、
前記特定の列から入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記宣言を前記値に適用させることによって、宣言結果を生成することを含み、
前記宣言結果は、前記特定の列の中の、前記宣言によって指定された前記条件を満たす値を有する、前記テーブルの行を特定し、
前記宣言結果に少なくとも一部基づき、前記クエリの結果として返す行を選択することと、
前記選択された行を前記クエリに対する結果として返すこととを含み、
前記方法は1つ以上の計算装置によって実行される、方法。 - 前記宣言結果はビットベクトルであり、前記ビットベクトルの各ビットは、特定の行に対応し、第1の宣言によって指定された条件を前記特定の行が満たすか否か特定する、請求項1に記載の方法。
- 前記宣言は、前記クエリに対応付けられた一組の宣言のうちの第1の宣言であり、
前記宣言結果は第1の宣言結果であり、
前記方法はさらに、
前記クエリの結果をフィルタリングするための第2の基準を指定する、前記一組の宣言のうちの第2の宣言に基づいて第2の回路をプログラミングして前記フィルタリングユニットの再構成可能なハードウェアにすることを含み、
前記第2の宣言は前記テーブルの第2の列に対する第2の条件を指定し、
前記第2の列から前記入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記第2の宣言を前記値に適用させることによって、第2の宣言結果を生成することを含み、
前記第2の宣言結果は、前記第2の列の中の、前記第2の宣言によって指定された前記第2の条件を満たす値を有する、前記テーブルの行を特定し、
前記宣言結果に少なくとも一部基づき、結果として返す行を選択することは、
前記第1の宣言結果を前記第2の宣言結果と結合することにより結合結果を生成することと、
前記結合結果を用いて前記第1の宣言および前記第2の宣言双方を満たす行を特定することと、
前記結合結果によって特定された行を、前記第1の宣言および前記第2の宣言双方を満たすものとして選択することとを含む、請求項1または2に記載の方法。 - 一組の宣言のうちの各宣言について、
前記クエリのフィルタリング結果に対する特定の基準を指定する、前記一組の宣言のうちの各宣言に基づいて特定の回路をプログラミングして前記フィルタリングユニットの再構成可能なハードウェアにすることと、
列の少なくとも一部から前記フィルタリングユニットに値をロードするとともに前記フィルタリングユニットに前記各宣言を前記値に適用させることによって、宣言結果を生成することとをさらに含み、
前記結果として返す行を選択することは、
各宣言結果を結合することにより、前記一組の宣言によって指定されたすべての基準を満たす行を特定する最終結果を生成することと、
前記最終結果によって特定された行を、前記一組の宣言によって指定された基準を満たすものとして選択することとを含む、請求項1〜3のいずれか1項に記載の方法。 - 前記各宣言について生成された前記宣言結果を用いて、次の宣言の評価のために前記フィルタリングユニットに与える行の値を決定し、
前記一組の宣言は逐次順序で評価され、
前記逐次順序は、宣言が多数の行をふるい落とす可能性に基づいており、
多数の行をふるい落とす可能性がより高い宣言は、多数の行をふるい落とす可能性がより低い宣言よりも前に評価される、請求項4に記載の方法。 - 前記結果として行を選択することは、前記最終結果を一組のメモリアドレスに変換することをさらに含み、
前記一組のメモリアドレスのうちの各メモリアドレスは、前記一組の宣言によって指定された前記基準を満たす行の記憶場所を特定する、請求項4に記載の方法。 - 前記フィルタリングユニットに前記宣言を前記値に適用させることは、
前記特定の列の対応する行に対し、前記対応する行の値が前記条件を満たす場合に、第1のビット値を生成することと、
前記対応する行に対し、前記対応する行の値が前記条件を満たさない場合に、前記第1のビット値と異なる第2のビット値を生成することとを含む、請求項1〜6のいずれか1項に記載の方法。 - 前記特定の列から入力キャッシュに値をロードするとともに前記フィルタリングユニットに前記宣言を前記値に適用させることによって、宣言結果を生成することは、
メモリの第1のブロックに格納された前記特定の列から第1組の値をロードすることと、
前記フィルタリングユニットに、前記宣言を前記第1組の値に適用させることによって第1のビットベクトルを生成することとを含み、前記第1のビットベクトルは、前記宣言によって指定された前記条件を満たす、メモリの前記第1のブロック内に格納された値を有する、前記テーブルの行を特定し、
メモリの第2のブロックに格納された前記特定の列から第2組の値をロードすることと、
前記フィルタリングユニットに、前記宣言を前記第2組の値に適用させることによって第2のビットベクトルを生成することとを含み、前記第2のビットベクトルは、前記宣言によって指定された前記条件を満たす、メモリの前記第2のブロック内に格納された値を有する、前記テーブルの行を特定する、請求項1〜7のいずれか1項に記載の方法。 - 前記フィルタリングユニットに前記宣言を前記値に適用させることは、前記フィルタリングユニットに、前記特定の列からの複数の値に対して前記宣言を同時に適用させることを含む、請求項1〜8のいずれか1項に記載の方法。
- 1つ以上のプロセッサにより実行されると請求項1〜9のうちいずれか一項に記載の方法を実行させる命令を含むコンピュータ読取可能なプログラム。
- フィルタリングおよび射影動作を実行するためのシステムであって、
制御ユニットを備え、前記制御ユニットは、
テーブルを対象とするクエリの結果をフィルタリングするための基準を指定する一組の宣言を受けるように、かつ、
前記テーブルの特定の列に対する条件を指定する、前記一組の宣言のうちの特定の宣言を適用するように回路をプログラミングしてフィルタユニットの再構成可能なハードウェアにするように構成され、
フィルタユニットを備え、前記フィルタユニットは、
前記特定の列から値を受け前記特定の宣言を前記値に適用するように、かつ
前記特定の宣言によって指定された前記条件を満たす、前記特定の列の中の値を有する、前記テーブルの行を特定するビットベクトルを生成するように構成され、
射影ユニットを備え、前記射影ユニットは、
前記ビットベクトルに少なくとも一部基づき、前記クエリの結果として返す行を選択するように、かつ
前記選択された行を前記クエリに対する結果として返すように構成される、システム。 - 前記宣言は、前記クエリに対応付けられた一組の宣言のうちの第1の宣言であり、
前記制御ユニットはさらに、前記テーブルの第2の列に対する第2の条件を指定する、前記一組の宣言のうちの第2の宣言を用いて第2の回路をプログラミングして前記フィルタユニットの再構成可能なハードウェアにするように構成され、
前記フィルタユニットはさらに、
前記第2の列から値を受け前記第2の宣言を前記値に適用するように、かつ
前記第2の列の中で前記第2の宣言によって指定された前記第2の条件を満たす値を有する、前記テーブルの行を特定する第2のビットベクトルを生成するように構成され、
前記システムはさらに結合ユニットを備え、前記結合ユニットは、ビット単位の演算子を適用することによって第1のビットベクトルを前記第2のビットベクトルと結合することによって第3のビットベクトルを生成するように構成され、
前記射影ユニットは、
前記第3のビットベクトルを用いて前記第1の宣言および前記第2の宣言双方を満たす行を特定するように、かつ
前記第1の宣言および前記第2の宣言双方を満たすものとして、前記第3のビットベクトルによって特定された行を選択するように構成される、請求項11に記載のシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/590,032 | 2012-08-20 | ||
US13/590,032 US9727606B2 (en) | 2012-08-20 | 2012-08-20 | Hardware implementation of the filter/project operations |
PCT/US2013/054808 WO2014031393A1 (en) | 2012-08-20 | 2013-08-13 | Hardware implementation of the filter/project operations |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015532748A JP2015532748A (ja) | 2015-11-12 |
JP2015532748A5 true JP2015532748A5 (ja) | 2016-09-29 |
JP6305406B2 JP6305406B2 (ja) | 2018-04-04 |
Family
ID=49034238
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015528521A Active JP6305406B2 (ja) | 2012-08-20 | 2013-08-13 | フィルタリング/射影動作のハードウェア実装 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9727606B2 (ja) |
EP (1) | EP2885727B1 (ja) |
JP (1) | JP6305406B2 (ja) |
CN (1) | CN104685499B (ja) |
WO (1) | WO2014031393A1 (ja) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9600522B2 (en) | 2012-08-20 | 2017-03-21 | Oracle International Corporation | Hardware implementation of the aggregation/group by operation: filter method |
US9563658B2 (en) | 2012-08-20 | 2017-02-07 | Oracle International Corporation | Hardware implementation of the aggregation/group by operation: hash-table method |
US9176999B2 (en) * | 2012-09-13 | 2015-11-03 | International Business Machines Corporation | Multiplication-based method for stitching results of predicate evaluation in column stores |
US9235564B2 (en) * | 2013-07-19 | 2016-01-12 | International Business Machines Corporation | Offloading projection of fixed and variable length database columns |
US9275168B2 (en) * | 2013-07-19 | 2016-03-01 | International Business Machines Corporation | Hardware projection of fixed and variable length columns of database tables |
US9582540B2 (en) | 2014-08-21 | 2017-02-28 | International Business Machines Corporation | Feedback mechanism providing row-level filtering earlier in a plan |
US20160063050A1 (en) * | 2014-08-28 | 2016-03-03 | Joerg Schoen | Database Migration Consistency Checker |
JP6871504B2 (ja) | 2016-12-27 | 2021-05-12 | 富士通株式会社 | 情報処理装置、データロードプログラム及びデータロード方法 |
US20190378028A1 (en) * | 2018-06-08 | 2019-12-12 | Microsoft Technology Licensing, Llc | Accelerating machine learning inference with probabilistic predicates |
US11841845B2 (en) | 2021-08-31 | 2023-12-12 | Lemon Inc. | Data consistency mechanism for hybrid data processing |
US11789936B2 (en) * | 2021-08-31 | 2023-10-17 | Lemon Inc. | Storage engine for hybrid data processing |
TW202336577A (zh) * | 2022-01-05 | 2023-09-16 | 以色列商紐羅布萊德有限公司 | 處理系統 |
US11853239B2 (en) * | 2022-04-11 | 2023-12-26 | Western Digital Technologies, Inc. | Hardware accelerator circuits for near storage compute systems |
Family Cites Families (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2519245B2 (ja) * | 1987-05-15 | 1996-07-31 | 株式会社日立製作所 | 情報検索装置 |
JPH04199275A (ja) * | 1990-11-26 | 1992-07-20 | Oki Electric Ind Co Ltd | データベース検索装置 |
JPH04320572A (ja) * | 1991-04-19 | 1992-11-11 | Toshiba 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 |
US5706495A (en) | 1996-05-07 | 1998-01-06 | International Business Machines Corporation | Encoded-vector indices for decision support and warehousing |
US5884229A (en) | 1996-06-10 | 1999-03-16 | Exxon Production Research Company | Method for measuring lateral continuity at a specified subsurface location from seismic data |
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 |
JP2000132584A (ja) * | 1998-10-27 | 2000-05-12 | Hitachi Ltd | Hdl入力方法及び装置 |
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 |
US6732354B2 (en) * | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
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 |
US20080189251A1 (en) * | 2006-08-25 | 2008-08-07 | Jeremy Branscome | Processing elements of a 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 |
US7996387B2 (en) * | 2007-07-27 | 2011-08-09 | Oracle International Corporation | Techniques for extending user-defined indexes with auxiliary properties |
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 |
US8285748B2 (en) * | 2008-05-28 | 2012-10-09 | Oracle International Corporation | Proactive information security management |
US8832112B2 (en) | 2008-06-17 | 2014-09-09 | International Business Machines Corporation | Encoded matrix index |
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 |
US8285709B2 (en) * | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
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 |
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 |
US9563658B2 (en) | 2012-08-20 | 2017-02-07 | Oracle International Corporation | Hardware implementation of the aggregation/group by operation: hash-table method |
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,032 patent/US9727606B2/en active Active
-
2013
- 2013-08-13 EP EP13753036.6A patent/EP2885727B1/en active Active
- 2013-08-13 JP JP2015528521A patent/JP6305406B2/ja active Active
- 2013-08-13 CN CN201380050949.6A patent/CN104685499B/zh active Active
- 2013-08-13 WO PCT/US2013/054808 patent/WO2014031393A1/en active Application Filing
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2015532748A5 (ja) | ||
JP2015532749A5 (ja) | ||
JP2015537298A5 (ja) | ||
JP2020500365A5 (ja) | ||
JP2016535373A5 (ja) | ||
JP2017537367A5 (ja) | ||
JP2008310524A5 (ja) | ||
JP6739513B2 (ja) | Dmb操作を伴うロード/ストア操作を使用するロード獲得/ストア解放命令の実装 | |
WO2016036830A4 (en) | Executing graph-based program specifications | |
JP2017529591A5 (ja) | ||
JP2016537726A5 (ja) | ||
JP2016514299A5 (ja) | ||
JP2016530631A5 (ja) | ||
JP2016537725A5 (ja) | ||
JP2017532657A5 (ja) | ||
JP2015527642A5 (ja) | ||
JP2016511470A5 (ja) | ||
JP2015519654A5 (ja) | ||
JP2013175036A5 (ja) | ||
US9898287B2 (en) | Dynamic wavefront creation for processing units using a hybrid compactor | |
US9940167B2 (en) | Identifying memory devices for swapping virtual machine memory pages | |
CN105701040A (zh) | 一种激活内存的方法及装置 | |
RU2015103934A (ru) | Процессор компьютера и система без арифметико-логического блока | |
JP2014132490A5 (ja) | ||
KR20170052432A (ko) | 제로값을 피연산자로 갖는 연산자에 대한 연산을 스킵하는 연산 방법 및 연산 장치 |