JP6320393B2 - テーブルスキャンを加速するためのハードウェア - Google Patents
テーブルスキャンを加速するためのハードウェア Download PDFInfo
- Publication number
- JP6320393B2 JP6320393B2 JP2015534471A JP2015534471A JP6320393B2 JP 6320393 B2 JP6320393 B2 JP 6320393B2 JP 2015534471 A JP2015534471 A JP 2015534471A JP 2015534471 A JP2015534471 A JP 2015534471A JP 6320393 B2 JP6320393 B2 JP 6320393B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- coprocessor
- scan operation
- operation command
- input data
- 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
- 239000013598 vector Substances 0.000 claims description 54
- 238000000034 method Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 33
- 230000008569 process Effects 0.000 claims description 16
- 238000003860 storage Methods 0.000 claims description 15
- 230000009471 action Effects 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000007906 compression Methods 0.000 description 7
- 230000006835 compression Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 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
- 238000007667 floating Methods 0.000 description 1
- 238000004519 manufacturing process 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
- 230000002085 persistent effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24561—Intermediate data storage techniques for performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0817—Cache consistency protocols using directory methods
- G06F12/082—Associative directories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17331—Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
- G06F15/7885—Runtime interface, e.g. data exchange, runtime control
- G06F15/7889—Reconfigurable logic implemented as a co-processor
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2237—Vectors, bitmaps or matrices
-
- 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/245—Query processing
- G06F16/2453—Query optimisation
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
-
- 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/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- 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/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3808—Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
- G06F9/381—Loop buffering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Advance Control (AREA)
- Multi Processors (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Mobile Radio Communication Systems (AREA)
- Logic Circuits (AREA)
- Retry When Errors Occur (AREA)
Description
本願は、2012年10月2日に出願された米国仮出願第61/709,142号に基づく優先権を主張する2013年2月26日に出願された米国特許出願第13/778,009号に基づく優先権を主張し、上記出願の内容を本明細書にその全体が記載されているが如く引用により援用する。
本発明は、概してクエリの処理に関し、より具体的には、1つ以上のコプロセッサ内のカスタムハードウェアを用いて、クエリを処理することが要求される1つ以上の動作を実行することに関する。
このセクションで説明される手法は、遂行可能な手法であるが、必ずしも過去に考案または遂行された手法ではない。したがって、特に明示されない限り、このセクションで説明される手法のうちのいずれも、このセクションに含まれているというだけで先行技術とみなされるべきではない。
この例では、2012年に雇用された全被雇用者を求めて上記データベーステーブルT_EMPLOYEESが検索される。この検索(または「スキャン」)は、一連の命令を実行する1つ以上のマイクロプロセッサ上で走らせているソフトウェアによって、この例では「2012」という指定された値を求めてテーブルを検索するために行なわれる。大型のデータベース上で解析アプリケーションを走らせるとき、この最初のステップは通常、性能の障害となる。なぜなら、このステップは、数テラバイトの大きさの可能性があるテーブル全体に対して実行しなければならないからである。その後のステップは、スキャンにおいて設定された条件(上記例では2012年に雇用された被雇用者)を満たす、最初のスキャンステップでフィルタリングされたサブセットに対して実行される。したがって、単位時間当たりにマシンがフィルタリング可能な行の数は、このマシンにとって重要な性能基準である。この基準は「スキャンレート」と呼ばれている。
以下の記載では、本発明が十分に理解されるよう、数多くの具体的な詳細事項が説明のために述べられている。しかしながら、これらの具体的な詳細事項がなくとも本発明を実施し得ることは明らかであろう。他の場合では、本発明を不必要に曖昧にするのを避けるために、周知の構造および装置はブロック図の形式で示される。
ある実施形態において、クエリに関連するスキャン動作またはルックアップ動作は、汎用マイクロプロセッサと同一のチップ上に位置するコプロセッサ等のハードウェアにおいて実現される。このようにして、スキャン動作はカスタムハードウェアによって実行され、一方、クエリの他の部分はソフトウェアを実行する汎用マイクロプロセッサによって扱われる。異なるハードウェアコンポーネントに異なる動作を実行させる利点としては、カスタムハードウェアの方がスキャン動作またはルックアップ動作に必要な大量のデータを上手く扱うことができる点が挙げられる。また、カスタムハードウェアは、汎用マイクロプロセッサおよび関連するキャッシュを、クエリの他の部分に対する作業、またはさらにはクエリを処理するソフトウェアとは無関係の他のタスクに対する作業を行なえるよう、解放する。
図1は、ある実施形態に従う、クエリの処理を加速するためのコンピュータシステム100の一例を示すブロック図である。コンピュータシステム100は、クエリ実行エンジン110と、OS/ハイパーバイザ120と、コプロセッサ130と、メモリ140とを含む。示されているのは1つのコプロセッサ130のみであるが、システム100は複数のコプロセッサを含み得る。
ある実施形態において、クエリ実行エンジン110は、汎用マイクロプロセッサ(図示せず)によって実行されてコプロセッサ制御ブロック(CCB)を生成させる命令を含む。CCBは、クエリ実行エンジン110によって発行されるコマンドを表わすデータ構造であり、コプロセッサはこのデータ構造に含まれるデータを読出して処理するように構成される。ある実施形態において、CCBは、コプロセッサ130が実行しようとしている動作のタイプを示すコマンドタイプデータと、コマンドタイプデータによって示される動作に対応する1つ以上のオペランドとを含む。コプロセッサ130が1つの動作しか実行しない場合は、コマンドタイプデータはCCBで利用できるオペランドではない場合がある。これに代わるものとしては、コプロセッサ130が1つの動作しか実行しないように構成されている場合、コプロセッサ130はコマンドタイプデータを無視してもよい。
コプロセッサ130は、(たとえばCCBの形態の)コマンドをハイパーバイザ120のインターフェイスを通して(またはクエリ実行エンジン110から直接)受けると、コマンドの発行元であるクエリ実行エンジン110のスレッドとは非同期で、このコマンドを実行する。コプロセッサ130は、複数のコマンドを受けた場合には、ラウンドロビン方式で実行するようにこれら複数のコマンドをスケジュールすればよい。いくつかのコマンドが並列に実行されてもよい。
図3は、ある実施形態における、スキャン動作を要求するクエリを処理するためのプロセス300を示すフロー図である。ブロック310で、クエリ実行エンジン110は、1つ以上のテーブル等のデータオブジェクトを対象としこの1つ以上のデータオブジェクトのうちの少なくとも1つのスキャン動作を要求するクエリを受ける。たとえば、クエリ実行エンジン110は、SQLクエリを処理することにより、スキャン動作を含む1つ以上のデータベース動作を含む書換えられたクエリを生成してもよい。このクエリ実行エンジン110は、1つ以上の他のソフトウェアコンポーネントを実行するように、または、1つ以上の他のソフトウェアコンポーネントの実行を命令するように構成される。これに代わるものとしては、別のソフトウェアコンポーネントが、元のクエリを受け、クエリ実行エンジン110が処理するように構成されている、書換えられたクエリを生成する。
ある実施形態において、上記1つ以上の命令は、スキャン動作と、テーブルデータが格納されている1つ以上のアドレスを示す。コプロセッサ130は、テーブルデータを取出して、(上記1つ以上の命令において指定されている)値または値の範囲と、このテーブルデータを比較する。コプロセッサ130は、メモリ(たとえばメモリ140)を通してクエリ実行エンジン110からのテーブルデータを要求する。このメモリは、システム内のダイナミックRAMでもチップ上のキャッシュメモリでもよい。テーブルデータは、ブロックに格納されていてもよく、64KBまたはそれ以上といったように比較的大きくてもよい。コプロセッサ130は、一次元配列としてのこれらのブロック各々にアクセスすればよい。列指向データベースでは、データは一次元アレイであり、コプロセッサ130はこれを容易に読出すことができる。行優先データベースの場合、データは、コプロセッサ130によって処理される前に、先ず列優先フォーマットに変換されてもよい。
ある実施形態において、コプロセッサ130は、圧縮されたデータに対して動作するように構成される。意味を意識しない(non-semantic-aware)1つ以上の圧縮技術を用いて圧縮されるデータと、意味を意識した(semantic-aware)1つ以上の圧縮技術を用いて圧縮されるデータがある。意味を意識しない圧縮技術を用いて圧縮されたデータは、先ず圧縮解除される必要があり、圧縮解除されたデータに対して動作を行なうことができる。意味を意識した圧縮技術を用いて圧縮されたデータは、動作(たとえば数またはストリングの比較)の実行前に圧縮解除する必要はない。意味を意識した圧縮技術の一例として、ランレングス符号化(run-length encoding)(RLE)がある。
上記シーケンスにRLEデータ圧縮アルゴリズムを適用すると、出力は、6A3B8C5D4Aとなる。このランレングス符号は、元の26文字をわずか10文字で表わしている。RLEでは、入力シーケンスにおける1つのデータ値の連なりが長いほど、大きく圧縮される。
SQLクエリは、データベース内の複数のテーブルを相互参照する必要があることが多い。このようなクエリの処理は通常、セット‐インターセクト動作を必要とする。現在、セット‐インターセクト動作は、汎用マイクロプロセッサ上で走らせているソフトウェアによって実行され、このソフトウェアは、関与しているテーブル列の基数が小さいときにはベクトルルックアップ(たとえばブルームフィルタルックアップ)を利用する。ある実施形態に従うと、ベクトルルックアップ(またはルックアップ動作)は、ハードウェアに実装され、これはソフトウェアで実装するよりも遥かに速いであろう。
ルックアップ動作を要求し得るクエリの一例として、「富裕層の」郵便番号に居住している「貧しい」人々に関する情報を要求するクエリがある。「貧しい」人を年収3万ドル未満の人と考えてもよく、「富裕層の」郵便番号を所得の中央値が10万ドルを超える層の郵便番号と考えてもよい。この例において、コプロセッサ130は、少なくとも2つのデータオブジェクトから、すなわちルックアップベクトルと人物テーブルからのデータを必要とする。ルックアップベクトルは(たとえば1ビットで)郵便番号が「富裕層」のものか否かを示す。ルックアップベクトルは、予め(すなわちクエリを受ける前に)計算されていてもよく、クエリを受けたことに応じて計算されてもよい。
ルックアップベクトルの一例はブルームフィルタである。ブルームフィルタは、要素が集合のメンバーであるか否かテストするのに使用される確率的データ構造である。ブルームフィルタを使用するとき、偽陽性(false positive)の可能性はあるが偽陰性(false negative)の可能性はない。ブルームフィルタは1つ以上のハッシュ関数と関連付けられ、各ハッシュ関数は、要素をブルームフィルタ内の配列位置のうちの1つにマッピングする。
ある実施形態において、コプロセッサ130は、上記1つ以上の命令に反映されている1つ以上の動作を実行した結果として、特定の出力フォーマットを生成する。この特定の出力フォーマットの一例はビットベクトルであり、ビットベクトル内の各位置は真または偽を示す。たとえば、「10」が対象とする値であり、比較が、この対象値がテーブルからのあるデータ値またはデータ要素よりも大きいか否か判断することであれば、比較の結果は、(a)データ値が10よりも大きければ真であり、(b)データ値が10以下であれば偽である。
プロセス300に戻って、ブロック350で、コプロセッサ130は、スキャン動作(またはルックアップ動作)の結果をクエリ実行エンジン110が利用できるようにする。ブロック350は、コプロセッサ130が、動作の結果を、その動作を開始したクエリ実行エンジン110からの1つ以上の命令に指定されているメモリに送ることを含み得る。たとえば、クエリ実行エンジン110は、CCBを生成し、このCCBにおいて、対応する動作の結果が、たとえば、DRAM、共有L3キャッシュ、または(たとえばクエリ実行エンジンを実行する、または、元のコマンドを生成したマイクロプロセッサと異なる)特定のマイクロプロセッサのキャッシュに送られることになっていることを示す。
1つの実施形態によれば、ここに記載される技術は、1つ以上の特定用途向け演算装置によって実装される。特定用途向け演算装置は、ハードウェアによって技術を実装し得る、または技術を実装するように永続的にプログラミングされた1つ以上の特定用途向け集積回路(ASIC)もしくはフィールドプログラマブルゲートアレイ(FPGA)などのデジタル電子装置を含み得る、またはファームウェア、メモリ、他の記憶装置、もしくは組み合わせにおけるプログラムコマンドに従って技術を実装するようにプログラムされた1つ以上の汎用ハードウェアプロセッサを含み得る。このような特定用途向け演算装置は、技術を達成するために、カスタムプログラミングにカスタムハードワイヤードロジック、ASIC、またはFPGAを結合させ得る。特定用途向け演算装置は、デスクトップコンピュータシステム、ポータブルコンピュータシステム、携帯用デバイス、ネットワーキングデバイス、または、技術を実装するためにハードワイヤードロジックおよび/もしくはプログラムロジックを組み込んだ任意の他の装置であってもよい。
Claims (18)
- マシンによって実現される、データベースクエリを処理する方法であって、
コプロセッサから独立して、データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断することと、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成することとを含み、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させることと、
前記コプロセッサによって前記スキャン動作コマンドを処理することとを含み、前記スキャン動作コマンドは、以下によって処理され、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、
前記結果データを格納させること、さらに、
前記結果データを用いて前記データベースクエリに対する結果を計算することを含み、
前記スキャン動作コマンドに含まれる前記メモリアドレスデータは、1つ以上の仮想アドレスを含み、
前記方法は、前記1つ以上の仮想アドレスを、前記コプロセッサが入力データを読出すのに使用する1つ以上の物理アドレスに置換えさせることをさらに含む、方法。 - マシンによって実現される、データベースクエリを処理する方法であって、
コプロセッサから独立して、データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断することと、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成することとを含み、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させることと、
前記コプロセッサによって前記スキャン動作コマンドを処理することとを含み、前記スキャン動作コマンドは、以下によって処理され、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、
前記結果データを格納させること、さらに、
前記結果データを用いて前記データベースクエリに対する結果を計算することを含み、
前記スキャン動作コマンドは、実行する動作のタイプを示す動作タイプデータをさらに含み、前記動作のタイプは、スキャン動作か、ルックアップ動作かのいずれかであり、
,
前記スキャン動作コマンドはさらに、前記動作タイプデータを先ず識別し前記動作のタイプを判断することによって、処理される、方法。 - 前記動作タイプデータを用いて、前記入力データを解釈するのに使用されるロジックを判断することと、
前記入力データを、第1のデータタイプから、前記第1のデータタイプと異なる第2のデータタイプに変換することとをさらに含む、請求項2に記載の方法。 - 前記入力データは、値データとカウントデータとを含み、
前記値データの中の入力値はデータ要素に対応し、前記データ要素の数は前記カウントデータの中のカウント値によって示され、
前記入力データと前記1つ以上の値との比較は、前記入力値と前記1つ以上の値との比較を含み、
前記結果データの生成は、前記入力値が前記1つ以上の値を満たすか否かを表示する結果表示を生成することを含み、
前記結果データの生成は、前記入力値と前記1つ以上の値とを前記数に等しい回数比較することなく行なわれる、請求項1〜3のいずれか1項に記載の方法。 - 前記スキャン動作コマンドは、前記結果データを格納する場所を示す宛先データをさらに含む、請求項1〜4のいずれか1項に記載の方法。
- 前記結果データを格納させることは、前記結果データをマイクロプロセッサのキャッシュに格納させることを含む、請求項1〜5のいずれか1項に記載の方法。
- 前記結果データを格納させることは、前記スキャン動作コマンドが実行されたことを示す完了状態を格納させることをさらに含む、請求項1〜6のいずれか1項に記載の方法。
- 前記データベースクエリの実行は前記スキャン動作と1つ以上のその他の動作とを含む複数の動作を伴うと判断し、
前記方法は、
前記結果データを記憶装置から取出すことと、
前記結果データを前記記憶装置から取出した後、前記1つ以上のその他の動作に対する入力として前記結果データを必要とする前記1つ以上のその他の動作を処理することとをさらに含む、請求項1〜7のいずれか1項に記載の方法。 - 前記コプロセッサは、連続して接続された複数のコプロセッサのうちの第1のコプロセッサであり、
前記結果データを格納させることは、前記複数のコプロセッサのうちの第2のコプロセッサのバッファに前記結果データを送信させることを含み、
前記方法は、
前記第1のコプロセッサが前記データベースクエリの一部を実行している間に、前記第2のコプロセッサによって前記バッファから前記結果データを読出すことと、
前記結果データに基づいて、前記第2のコプロセッサによって第2の結果データを生成することとをさらに含む、請求項1〜8のいずれか1項に記載の方法。 - 前記判断するステップ、前記生成するステップ、および前記格納させるステップは、クエリ実行エンジンを実行する汎用マイクロプロセッサによって実行され、前記汎用マイクロプロセッサは前記コプロセッサから独立したものである、請求項1〜9のいずれか1項に記載の方法。
- マシンによって実現される、データベースクエリを処理する方法であって、
コプロセッサから独立して、データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断することと、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成することとを含み、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させることと、
前記コプロセッサによって前記スキャン動作コマンドを処理することとを含み、前記スキャン動作コマンドは、以下によって処理され、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、
前記結果データを格納させること、さらに、
前記結果データを用いて前記データベースクエリに対する結果を計算することを含み、
スキャン動作コマンドを生成することは、前記スキャン動作を含む複数のスキャン動作コマンドを生成することを含み、
前記スキャン動作コマンドをメモリに格納させることは、前記複数のスキャン動作コマンドのうちの各スキャン動作コマンドについて、前記各スキャン動作コマンドを前記メモリに格納させることを含み、
複数のコプロセッサのうちの各コプロセッサが、前記複数のスキャン動作コマンドからスキャン動作コマンドを選択する、方法。 - 1つ以上の基準が満たされるか否か判断することをさらに含み、前記1つ以上の基準が満たされる場合のみ、前記スキャン動作コマンドを前記コプロセッサに送信させる、請求項1〜11のいずれか1項に記載の方法。
- 前記1つ以上の基準は、前記コプロセッサが前記スキャン動作を実行するために読出すことが必要なデータの量に基づく、請求項12に記載の方法。
- マシンによって実現される、データベースクエリを処理する方法であって、
コプロセッサから独立して、データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断することと、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成することとを含み、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させることと、
前記コプロセッサによって前記スキャン動作コマンドを処理することとを含み、前記スキャン動作コマンドは、以下によって処理され、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、
前記結果データを格納させること、さらに、
前記結果データを用いて前記データベースクエリに対する結果を計算することを含み、
前記1つ以上の値は複数のデータ要素を含み、
前記入力データと前記1つ以上の値との比較は、同時に、前記入力データと前記複数のデータ要素とを比較することを含む、方法。 - 前記比較に基づいて結果データを生成することは、ビットベクトルを生成することを含み、前記ビットベクトルにおける各ビットは、比較から得られたものが真か偽かを示す、請求項1〜14のいずれか1項に記載の方法。
- コプロセッサであって、
スキャン動作コマンドを読出すステップを実行するように構成され、前記スキャン動作コマンドは、
(1)クエリの処理に関連する命令を実行するマイクロプロセッサによって生成されたものであり、
(2)前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、前記スキャン動作コマンドに含まれる前記メモリアドレスデータは、1つ以上の仮想アドレスを含み、さらに、
前記1つ以上の仮想アドレスを、前記コプロセッサが入力データを読出すのに使用する1つ以上の物理アドレスに置換えさせるステップと、
前記入力データを前記物理アドレスによって示される場所から読出させるステップと、
前記入力データと前記1つ以上の値との比較を実行するステップと、
前記比較に基づいて結果データを生成することと、
前記マイクロプロセッサに前記結果データを通知するステップとを実行するように構成される、コプロセッサ。 - データベースクエリを処理するためのシステムであって、
マイクロプロセッサと、
コプロセッサと、
前記マイクロプロセッサおよび前記コプロセッサに接続されたメモリとを備え、
前記マイクロプロセッサは、
前記コプロセッサから独立して、前記データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断するように構成され、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成するように構成され、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、前記スキャン動作コマンドに含まれる前記メモリアドレスデータは、1つ以上の仮想アドレスを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させるように構成され、
前記コプロセッサは、前記スキャン動作コマンドを処理するように構成され、前記スキャン動作コマンドは、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記1つ以上の仮想アドレスを、前記コプロセッサが入力データを読出すのに使用する1つ以上の物理アドレスに置換えさせること、
前記物理アドレスによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、および
前記結果データを格納させることによって処理され、
前記結果データは、前記データベースクエリに対する結果を計算するために使用される、システム。 - データベースクエリを処理するためのシステムであって、
マイクロプロセッサと、
コプロセッサと、
前記マイクロプロセッサおよび前記コプロセッサに接続されたメモリとを備え、
前記マイクロプロセッサは、
前記コプロセッサから独立して、前記データベースクエリの実行はデータベースオブジェクトデータのスキャン動作を伴うと判断するように構成され、
前記データベースクエリの実行はスキャン動作を伴うという判断に応じて、スキャン動作コマンドを生成するように構成され、前記スキャン動作コマンドは、前記スキャン動作コマンドのパラメータとして、前記コプロセッサによって読出される入力データを識別するのに使用されるメモリアドレスデータと、前記入力データとの比較に使用される1つ以上の値とを含み、
前記スキャン動作コマンドを前記コプロセッサから独立したメモリに格納させるよう
に構成され、
前記コプロセッサは、前記スキャン動作コマンドを処理するように構成され、前記スキャン動作コマンドは、
前記スキャン動作コマンドを前記メモリから読出すこと、
前記メモリアドレスデータによって示される場所から前記入力データを読出させること、
前記入力データと前記1つ以上の値との比較を実行すること、
前記比較に基づいて結果データを生成すること、および
前記結果データを格納させることによって処理され、
前記結果データは、前記データベースクエリに対する結果を計算するために使用され、
前記スキャン動作コマンドは、実行する動作のタイプを示す動作タイプデータをさらに含み、前記動作のタイプは、スキャン動作か、ルックアップ動作かのいずれかであり、
前記スキャン動作コマンドはさらに、前記動作タイプデータを先ず識別し前記動作のタイプを判断することによって、処理される、システム。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261709142P | 2012-10-02 | 2012-10-02 | |
US61/709,142 | 2012-10-02 | ||
US13/778,009 US9063974B2 (en) | 2012-10-02 | 2013-02-26 | Hardware for table scan acceleration |
US13/778,009 | 2013-02-26 | ||
PCT/US2013/045873 WO2014055137A1 (en) | 2012-10-02 | 2013-06-14 | Hardware for table scan acceleration |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015535999A JP2015535999A (ja) | 2015-12-17 |
JP2015535999A5 JP2015535999A5 (ja) | 2016-04-07 |
JP6320393B2 true JP6320393B2 (ja) | 2018-05-09 |
Family
ID=50386190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015534471A Active JP6320393B2 (ja) | 2012-10-02 | 2013-06-14 | テーブルスキャンを加速するためのハードウェア |
Country Status (6)
Country | Link |
---|---|
US (10) | US9292569B2 (ja) |
EP (6) | EP2904514B1 (ja) |
JP (1) | JP6320393B2 (ja) |
CN (7) | CN108664596B (ja) |
ES (1) | ES2880268T3 (ja) |
WO (6) | WO2014055138A1 (ja) |
Families Citing this family (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782434B1 (en) | 2010-07-15 | 2014-07-15 | The Research Foundation For The State University Of New York | System and method for validating program execution at run-time |
JP5909503B2 (ja) * | 2011-06-30 | 2016-04-26 | 株式会社日立製作所 | 計算機システム、アクセス制限方法及びストレージ装置 |
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 |
WO2013086384A1 (en) | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for maintaining column vectors of relational data within volatile memory |
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 |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions for single instruction multiple data processors |
US10157060B2 (en) | 2011-12-29 | 2018-12-18 | Intel Corporation | Method, device and system for control signaling in a data path module of a data stream processing engine |
US9087095B2 (en) * | 2012-06-21 | 2015-07-21 | International Business Machines Corporation | Processing columns in a database accelerator while preserving row-based architecture |
US9122873B2 (en) | 2012-09-14 | 2015-09-01 | The Research Foundation For The State University Of New York | Continuous run-time validation of program execution: a practical approach |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
US10102028B2 (en) | 2013-03-12 | 2018-10-16 | Sas Institute Inc. | Delivery acknowledgment in event stream processing |
US9679084B2 (en) | 2013-03-14 | 2017-06-13 | Oracle International Corporation | Memory sharing across distributed nodes |
US9223983B2 (en) * | 2013-03-15 | 2015-12-29 | Intel Corporation | Security co-processor boot performance |
US10108539B2 (en) | 2013-06-13 | 2018-10-23 | International Business Machines Corporation | Allocation of distributed data structures |
JP6406254B2 (ja) * | 2013-07-30 | 2018-10-17 | 日本電気株式会社 | ストレージ装置、データアクセス方法およびデータアクセスプログラム |
US9990398B2 (en) * | 2013-09-20 | 2018-06-05 | Oracle International Corporation | Inferring dimensional metadata from content of a query |
US9740718B2 (en) | 2013-09-20 | 2017-08-22 | Oracle International Corporation | Aggregating dimensional data using dense containers |
US9836519B2 (en) | 2013-09-20 | 2017-12-05 | Oracle International Corporation | Densely grouping dimensional data |
US9430390B2 (en) | 2013-09-21 | 2016-08-30 | Oracle International Corporation | Core in-memory space and object management architecture in a traditional RDBMS supporting DW and OLTP applications |
US10331583B2 (en) | 2013-09-26 | 2019-06-25 | Intel Corporation | Executing distributed memory operations using processing elements connected by distributed channels |
US10558569B2 (en) * | 2013-10-31 | 2020-02-11 | Hewlett Packard Enterprise Development Lp | Cache controller for non-volatile memory |
US20150161678A1 (en) * | 2013-12-05 | 2015-06-11 | Turn Inc. | Dynamic ordering of online advertisement software steps |
US9313029B2 (en) * | 2013-12-15 | 2016-04-12 | Cavium, Inc. | Virtualized network interface for remote direct memory access over converged ethernet |
US9306916B2 (en) * | 2013-12-25 | 2016-04-05 | Cavium, Inc. | System and a method for a remote direct memory access over converged ethernet |
US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
DE102014207476A1 (de) * | 2014-04-17 | 2015-10-22 | Robert Bosch Gmbh | Verfahren zur Auswahl einer von mehreren Warteschlangen |
US9715345B2 (en) * | 2014-04-25 | 2017-07-25 | Micron Technology, Inc. | Apparatuses and methods for memory management |
US10838893B2 (en) * | 2014-05-30 | 2020-11-17 | Apple Inc. | Methods for mitigating system interrupts for an electronic device |
US9122651B1 (en) | 2014-06-06 | 2015-09-01 | Sas Institute Inc. | Computer system to support failover in an event stream processing system |
US9356986B2 (en) * | 2014-08-08 | 2016-05-31 | Sas Institute Inc. | Distributed stream processing |
US10230531B2 (en) * | 2014-10-23 | 2019-03-12 | Hewlett Packard Enterprise Development Lp | Admissions control of a device |
WO2016068941A1 (en) | 2014-10-30 | 2016-05-06 | Hewlett Packard Enterprise Development Lp | Secure transactions in a memory fabric |
US10715332B2 (en) | 2014-10-30 | 2020-07-14 | Hewlett Packard Enterprise Development Lp | Encryption for transactions in a memory fabric |
US9678812B2 (en) | 2014-12-22 | 2017-06-13 | International Business Machines Corporation | Addressing for inter-thread push communication |
US9766890B2 (en) * | 2014-12-23 | 2017-09-19 | International Business Machines Corporation | Non-serialized push instruction for pushing a message payload from a sending thread to a receiving thread |
US10255336B2 (en) | 2015-05-07 | 2019-04-09 | Datometry, Inc. | Method and system for transparent interoperability between applications and data management systems |
US9749319B2 (en) | 2015-05-20 | 2017-08-29 | Google Inc. | Address validation using signatures |
US11449452B2 (en) | 2015-05-21 | 2022-09-20 | Goldman Sachs & Co. LLC | General-purpose parallel computing architecture |
ES2929626T3 (es) * | 2015-05-21 | 2022-11-30 | Goldman Sachs & Co Llc | Arquitectura de computación paralela de propósito general |
US10025823B2 (en) | 2015-05-29 | 2018-07-17 | Oracle International Corporation | Techniques for evaluating query predicates during in-memory table scans |
US10594779B2 (en) | 2015-08-27 | 2020-03-17 | Datometry, Inc. | Method and system for workload management for data management systems |
US9990308B2 (en) | 2015-08-31 | 2018-06-05 | Oracle International Corporation | Selective data compression for in-memory databases |
JP6515771B2 (ja) * | 2015-10-07 | 2019-05-22 | 富士通コネクテッドテクノロジーズ株式会社 | 並列処理装置及び並列処理方法 |
US9823871B2 (en) | 2015-10-09 | 2017-11-21 | Oracle International Corporation | Performance of coprocessor assisted memset() through heterogeneous computing |
US10783142B2 (en) | 2015-10-23 | 2020-09-22 | Oracle International Corporation | Efficient data retrieval in staged use of in-memory cursor duration temporary tables |
US10642831B2 (en) | 2015-10-23 | 2020-05-05 | Oracle International Corporation | Static data caching for queries with a clause that requires multiple iterations to execute |
US10678792B2 (en) | 2015-10-23 | 2020-06-09 | Oracle International Corporation | Parallel execution of queries with a recursive clause |
CN105426271B (zh) * | 2015-12-22 | 2018-09-21 | 华为技术有限公司 | 对分布式存储系统的锁管理的方法和装置 |
US10146681B2 (en) * | 2015-12-24 | 2018-12-04 | Intel Corporation | Non-uniform memory access latency adaptations to achieve bandwidth quality of service |
CN105677812A (zh) * | 2015-12-31 | 2016-06-15 | 华为技术有限公司 | 一种数据查询方法及数据查询装置 |
US10061714B2 (en) | 2016-03-18 | 2018-08-28 | Oracle International Corporation | Tuple encoding aware direct memory access 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 |
US10402425B2 (en) | 2016-03-18 | 2019-09-03 | Oracle International Corporation | Tuple encoding aware direct memory access engine for scratchpad enabled multi-core 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 |
US10599488B2 (en) | 2016-06-29 | 2020-03-24 | Oracle International Corporation | Multi-purpose events for notification and sequence control in multi-core processor systems |
US10853125B2 (en) * | 2016-08-19 | 2020-12-01 | Oracle International Corporation | Resource efficient acceleration of datastream analytics processing using an analytics accelerator |
CN106354480B (zh) * | 2016-08-24 | 2019-01-29 | 长沙中部芯空微电子研究所有限公司 | 一种mpp型异构高速mcu系统 |
US10380058B2 (en) | 2016-09-06 | 2019-08-13 | Oracle International Corporation | Processor core to coprocessor interface with FIFO semantics |
US10558659B2 (en) | 2016-09-16 | 2020-02-11 | Oracle International Corporation | Techniques for dictionary based join and aggregation |
US10402168B2 (en) | 2016-10-01 | 2019-09-03 | Intel Corporation | Low energy consumption mantissa multiplication for floating point multiply-add operations |
US10783102B2 (en) | 2016-10-11 | 2020-09-22 | Oracle International Corporation | Dynamically configurable high performance database-aware hash engine |
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 |
US10572376B2 (en) | 2016-12-30 | 2020-02-25 | Intel Corporation | Memory ordering in acceleration hardware |
US10558575B2 (en) | 2016-12-30 | 2020-02-11 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10474375B2 (en) | 2016-12-30 | 2019-11-12 | Intel Corporation | Runtime address disambiguation in acceleration hardware |
US10416999B2 (en) | 2016-12-30 | 2019-09-17 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10606487B2 (en) * | 2017-03-17 | 2020-03-31 | International Business Machines Corporation | Partitioned memory with locally aggregated copy pools |
US20180373760A1 (en) * | 2017-06-23 | 2018-12-27 | Xilinx, Inc. | Parallel compute offload to database accelerator |
US10467183B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods for pipelined runtime services in a spatial array |
US10445451B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with performance, correctness, and power reduction features |
US10469397B2 (en) | 2017-07-01 | 2019-11-05 | Intel Corporation | Processors and methods with configurable network-based dataflow operator circuits |
US10445234B2 (en) | 2017-07-01 | 2019-10-15 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with transactional and replay features |
US10387319B2 (en) | 2017-07-01 | 2019-08-20 | Intel Corporation | Processors, methods, and systems for a configurable spatial accelerator with memory system performance, power reduction, and atomics support features |
US10515046B2 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator |
US10515049B1 (en) | 2017-07-01 | 2019-12-24 | Intel Corporation | Memory circuits and methods for distributed memory hazard detection and error recovery |
CN107835203B (zh) * | 2017-08-09 | 2020-07-10 | 平安壹钱包电子商务有限公司 | 消息分组投递的方法、装置、存储介质及终端 |
US11086816B2 (en) | 2017-09-28 | 2021-08-10 | Intel Corporation | Processors, methods, and systems for debugging a configurable spatial accelerator |
US10496574B2 (en) | 2017-09-28 | 2019-12-03 | Intel Corporation | Processors, methods, and systems for a memory fence in a configurable spatial accelerator |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10445098B2 (en) * | 2017-09-30 | 2019-10-15 | Intel Corporation | Processors and methods for privileged configuration in a spatial array |
US10380063B2 (en) | 2017-09-30 | 2019-08-13 | Intel Corporation | Processors, methods, and systems with a configurable spatial accelerator having a sequencer dataflow operator |
US10664396B2 (en) * | 2017-10-04 | 2020-05-26 | Intel Corporation | Systems, methods and apparatus for fabric delta merge operations to enhance NVMeoF stream writes |
CN107766526B (zh) * | 2017-10-26 | 2020-04-28 | 中国人民银行清算总中心 | 数据库访问方法、装置及系统 |
CN107886692B (zh) * | 2017-10-30 | 2020-08-25 | 皖西学院 | 一种生物工程用传感器LoRa无线网络通讯系统 |
US10452547B2 (en) | 2017-12-29 | 2019-10-22 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US10467139B2 (en) | 2017-12-29 | 2019-11-05 | Oracle International Corporation | Fault-tolerant cache coherence over a lossy network |
US10417175B2 (en) | 2017-12-30 | 2019-09-17 | Intel Corporation | Apparatus, methods, and systems for memory consistency in a configurable spatial accelerator |
US10445250B2 (en) | 2017-12-30 | 2019-10-15 | Intel Corporation | Apparatus, methods, and systems with a configurable spatial accelerator |
US10565134B2 (en) | 2017-12-30 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for multicast in a configurable spatial accelerator |
CN110110004B (zh) * | 2018-01-30 | 2023-05-30 | 腾讯科技(深圳)有限公司 | 一种数据操作方法、装置和存储介质 |
US10564980B2 (en) | 2018-04-03 | 2020-02-18 | Intel Corporation | Apparatus, methods, and systems for conditional queues in a configurable spatial accelerator |
US11307873B2 (en) | 2018-04-03 | 2022-04-19 | Intel Corporation | Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging |
US10649777B2 (en) * | 2018-05-14 | 2020-05-12 | International Business Machines Corporation | Hardware-based data prefetching based on loop-unrolled instructions |
CN108776934B (zh) * | 2018-05-15 | 2022-06-07 | 中国平安人寿保险股份有限公司 | 分布式数据计算方法、装置、计算机设备及可读存储介质 |
US10853073B2 (en) | 2018-06-30 | 2020-12-01 | Intel Corporation | Apparatuses, methods, and systems for conditional operations in a configurable spatial accelerator |
US10459866B1 (en) | 2018-06-30 | 2019-10-29 | Intel Corporation | Apparatuses, methods, and systems for integrated control and data processing in a configurable spatial accelerator |
US11200186B2 (en) | 2018-06-30 | 2021-12-14 | Intel Corporation | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
US10891240B2 (en) | 2018-06-30 | 2021-01-12 | Intel Corporation | Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator |
EP3846026A4 (en) * | 2018-09-21 | 2021-11-03 | Huawei Technologies Co., Ltd. | DATA EXTRACTION PROCESS AND DEVICE |
CN111399905B (zh) * | 2019-01-02 | 2022-08-16 | 上海寒武纪信息科技有限公司 | 运算方法、装置及相关产品 |
JP7146611B2 (ja) * | 2018-12-18 | 2022-10-04 | 株式会社日立製作所 | カラムストアデータベースシステム及びデータベース処理高速化方法 |
US11620291B1 (en) | 2018-12-19 | 2023-04-04 | Datometry, Inc. | Quantifying complexity of a database application |
US11294869B1 (en) | 2018-12-19 | 2022-04-05 | Datometry, Inc. | Expressing complexity of migration to a database candidate |
US11403282B1 (en) | 2018-12-20 | 2022-08-02 | Datometry, Inc. | Unbatching database queries for migration to a different database |
WO2020133391A1 (en) * | 2018-12-29 | 2020-07-02 | Alibaba Group Holding Limited | Systems and methods for efficiently scanning a database using hardware acceleration |
US10678724B1 (en) | 2018-12-29 | 2020-06-09 | Intel Corporation | Apparatuses, methods, and systems for in-network storage in a configurable spatial accelerator |
US11029927B2 (en) | 2019-03-30 | 2021-06-08 | Intel Corporation | Methods and apparatus to detect and annotate backedges in a dataflow graph |
US10965536B2 (en) | 2019-03-30 | 2021-03-30 | Intel Corporation | Methods and apparatus to insert buffers in a dataflow graph |
US10915471B2 (en) | 2019-03-30 | 2021-02-09 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit allocation in a configurable spatial accelerator |
US10817291B2 (en) | 2019-03-30 | 2020-10-27 | Intel Corporation | Apparatuses, methods, and systems for swizzle operations in a configurable spatial accelerator |
WO2020214757A1 (en) * | 2019-04-17 | 2020-10-22 | John Rankin | Virtual memory pool within a network which is accessible from multiple platforms |
CN110113395B (zh) * | 2019-04-19 | 2021-11-09 | 新华三云计算技术有限公司 | 共享文件系统维护方法及装置 |
WO2020243244A1 (en) | 2019-05-28 | 2020-12-03 | John Rankin | Supporting a virtual memory area at a remote computing machine |
US11037050B2 (en) | 2019-06-29 | 2021-06-15 | Intel Corporation | Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator |
WO2021019089A1 (en) * | 2019-07-31 | 2021-02-04 | Sindice Limited T/A Siren | Semantic caching of semi-join operators in shared-nothing and log-structured databases |
US11222018B2 (en) | 2019-09-09 | 2022-01-11 | Oracle International Corporation | Cache conscious techniques for generation of quasi-dense grouping codes of compressed columnar data in relational database systems |
US20210109974A1 (en) * | 2019-10-13 | 2021-04-15 | Thoughtspot, Inc. | Query Execution On Compressed In-Memory Data |
CN111061760B (zh) * | 2019-10-30 | 2020-12-15 | 中科驭数(北京)科技有限公司 | 关系型数据库管理系统中的窗口聚合方法、查询方法及装置 |
US11907713B2 (en) | 2019-12-28 | 2024-02-20 | Intel Corporation | Apparatuses, methods, and systems for fused operations using sign modification in a processing element of a configurable spatial accelerator |
US20220166762A1 (en) * | 2020-11-25 | 2022-05-26 | Microsoft Technology Licensing, Llc | Integrated circuit for obtaining enhanced privileges for a network-based resource and performing actions in accordance therewith |
US11755355B2 (en) | 2020-11-25 | 2023-09-12 | Nxp Usa, Inc. | Systems and methods for assigning domain identifiers to remote peripheral devices using a hypervisor |
US11741073B2 (en) | 2021-06-01 | 2023-08-29 | Alibaba Singapore Holding Private Limited | Granularly timestamped concurrency control for key-value store |
US20220382760A1 (en) * | 2021-06-01 | 2022-12-01 | Alibaba Singapore Holding Private Limited | High-performance key-value store |
US11829291B2 (en) | 2021-06-01 | 2023-11-28 | Alibaba Singapore Holding Private Limited | Garbage collection of tree structure with page mappings |
US11755427B2 (en) | 2021-06-01 | 2023-09-12 | Alibaba Singapore Holding Private Limited | Fast recovery and replication of key-value stores |
CN113342480B (zh) * | 2021-06-23 | 2022-02-22 | 海光信息技术股份有限公司 | 一种事务处理系统、事务处理方法及主机系统 |
CN113420033B (zh) * | 2021-08-17 | 2021-12-07 | 北京奥星贝斯科技有限公司 | 分布式数据库的表数据查询方法、表数据查询装置及系统 |
US20230205935A1 (en) * | 2021-12-28 | 2023-06-29 | Ati Technologies Ulc | Software assisted acceleration in cryptographic queue processing |
US11927634B2 (en) | 2022-04-01 | 2024-03-12 | Samsung Electronics Co., Ltd | Systems and methods for database scan acceleration |
Family Cites Families (138)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE34052E (en) | 1984-05-31 | 1992-09-01 | International Business Machines Corporation | Data processing system with CPU register to register data transfers overlapped with data transfer to and from main storage |
US4817140A (en) * | 1986-11-05 | 1989-03-28 | International Business Machines Corp. | Software protection system using a single-key cryptosystem, a hardware-based authorization system and a secure coprocessor |
US5133053A (en) * | 1987-02-13 | 1992-07-21 | International Business Machines Corporation | Interprocess communication queue location transparency |
US5604899A (en) | 1990-05-21 | 1997-02-18 | Financial Systems Technology Pty. Ltd. | Data relationships processor with unlimited expansion capability |
US5423010A (en) | 1992-01-24 | 1995-06-06 | C-Cube Microsystems | Structure and method for packing and unpacking a stream of N-bit data to and from a stream of N-bit data words |
JPH0619785A (ja) * | 1992-03-27 | 1994-01-28 | Matsushita Electric Ind Co Ltd | 分散共有仮想メモリーとその構成方法 |
US5483624A (en) * | 1992-03-27 | 1996-01-09 | Monarch Marking Systems, Inc. | Programmable hand held labeler |
EP0629960B1 (en) | 1993-06-17 | 2000-05-24 | Sun Microsystems, Inc. | Extendible file system |
US5581705A (en) * | 1993-12-13 | 1996-12-03 | Cray Research, Inc. | Messaging facility with hardware tail pointer and software implemented head pointer message queue for distributed memory massively parallel processing system |
US5564056A (en) * | 1994-03-01 | 1996-10-08 | Intel Corporation | Method and apparatus for zero extension and bit shifting to preserve register parameters in a microprocessor utilizing register renaming |
DE19515020A1 (de) * | 1994-07-01 | 1996-01-04 | Hewlett Packard Co | Verfahren und Vorrichtung zum Optimieren von Abfragen mit Gruppieren-nach-Operatoren |
JP3518034B2 (ja) | 1995-03-30 | 2004-04-12 | 三菱電機株式会社 | ソート方法並びにソート処理装置並びにデータ処理装置 |
US5684977A (en) | 1995-03-31 | 1997-11-04 | Sun Microsystems, Inc. | Writeback cancellation processing system for use in a packet switched cache coherent multiprocessor system |
CA2146171C (en) | 1995-04-03 | 2000-01-11 | Bernhard Schiefer | Method for estimating cardinalities for query processing in a relational database management system |
KR0175499B1 (ko) | 1996-09-11 | 1999-04-01 | 양승택 | 다중태그 구조의 계층 상호연결망에서의 브로드캐스트 전송방법 |
JPH10154160A (ja) * | 1996-09-25 | 1998-06-09 | Sharp Corp | 並列データ検索処理装置 |
US6148377A (en) | 1996-11-22 | 2000-11-14 | Mangosoft Corporation | Shared memory computer networks |
JPH10232788A (ja) * | 1996-12-17 | 1998-09-02 | Fujitsu Ltd | 信号処理装置及びソフトウェア |
US6151688A (en) | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US5822748A (en) * | 1997-02-28 | 1998-10-13 | Oracle Corporation | Group by and distinct sort elimination using cost-based optimization |
US6047081A (en) | 1997-10-24 | 2000-04-04 | Imation Corp. | Image processing software system having configurable communication pipelines |
US6292705B1 (en) | 1998-09-29 | 2001-09-18 | Conexant Systems, Inc. | Method and apparatus for address transfers, system serialization, and centralized cache and transaction control, in a symetric multiprocessor system |
US20010049780A1 (en) | 1998-03-27 | 2001-12-06 | Shreekant Thakkar | Method and apparatus for performing integer operations in response to a result of a floating point operation |
US6230240B1 (en) | 1998-06-23 | 2001-05-08 | Hewlett-Packard Company | Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface |
WO2000008552A1 (en) | 1998-08-06 | 2000-02-17 | Koninklijke Philips Electronics N.V. | Data processor and method of processing data |
JP3583657B2 (ja) | 1998-09-30 | 2004-11-04 | 株式会社東芝 | 中継装置及び通信装置 |
US6633891B1 (en) | 1998-11-24 | 2003-10-14 | Oracle International Corporation | Managing replacement of data in a cache on a node based on caches of other nodes |
US6434545B1 (en) * | 1998-12-16 | 2002-08-13 | Microsoft Corporation | Graphical query analyzer |
JP2000261674A (ja) | 1999-03-09 | 2000-09-22 | Fujitsu Ltd | 画像伸長装置 |
US6295571B1 (en) | 1999-03-19 | 2001-09-25 | Times N Systems, Inc. | Shared memory apparatus and method for multiprocessor systems |
US6826522B1 (en) | 1999-06-21 | 2004-11-30 | Pts Corporation | Methods and apparatus for improved efficiency in pipeline simulation and emulation |
US6349310B1 (en) * | 1999-07-06 | 2002-02-19 | Compaq Computer Corporation | Database management system and method for accessing rows in a partitioned table |
US6671797B1 (en) | 2000-02-18 | 2003-12-30 | Texas Instruments Incorporated | Microprocessor with expand instruction for forming a mask from one bit |
US6697919B2 (en) | 2000-06-10 | 2004-02-24 | Hewlett-Packard Development Company, L.P. | System and method for limited fanout daisy chaining of cache invalidation requests in a shared-memory multiprocessor system |
US7383424B1 (en) * | 2000-06-15 | 2008-06-03 | Hewlett-Packard Development Company, L.P. | Computer architecture containing processor and decoupled coprocessor |
CN1459060A (zh) | 2000-08-14 | 2003-11-26 | 李在学 | 多功能的pda |
US6898693B1 (en) * | 2000-11-02 | 2005-05-24 | Intel Corporation | Hardware loops |
US6917987B2 (en) | 2001-03-26 | 2005-07-12 | Intel Corporation | Methodology and mechanism for remote key validation for NGIO/InfiniBand™ applications |
US6745174B2 (en) | 2001-03-29 | 2004-06-01 | Hewlett-Packard Development Company, L.P. | Method of executing before-triggers in an active database |
US7013353B2 (en) * | 2001-03-30 | 2006-03-14 | Intel Corporation | Host-fabric adapter having an efficient multi-tasking pipelined instruction execution micro-controller subsystem |
US20020188830A1 (en) | 2001-06-01 | 2002-12-12 | Brian Boles | Bit replacement and extraction instructions |
US6789143B2 (en) * | 2001-09-24 | 2004-09-07 | International Business Machines Corporation | Infiniband work and completion queue management via head and tail circular buffers with indirect work queue entries |
US6748499B2 (en) * | 2001-11-15 | 2004-06-08 | International Business Machines Corporation | Sharing memory tables between host channel adapters |
US6854032B2 (en) * | 2001-12-04 | 2005-02-08 | Sun Microsystems, Inc. | System for accessing a region of memory using remote address translation and using a memory window table and a memory region table |
US6757790B2 (en) * | 2002-02-19 | 2004-06-29 | Emc Corporation | Distributed, scalable data storage facility with cache memory |
JP2003308334A (ja) * | 2002-04-15 | 2003-10-31 | Nippon Telegr & Teleph Corp <Ntt> | 情報検索方法及び装置、情報検索プログラム、情報検索プログラムを記録した記録媒体 |
US7249118B2 (en) | 2002-05-17 | 2007-07-24 | Aleri, Inc. | Database system and methods |
US7197647B1 (en) | 2002-09-30 | 2007-03-27 | Carnegie Mellon University | Method of securing programmable logic configuration data |
US6842848B2 (en) | 2002-10-11 | 2005-01-11 | Sandbridge Technologies, Inc. | Method and apparatus for token triggered multithreading |
US20060098649A1 (en) * | 2004-11-10 | 2006-05-11 | Trusted Network Technologies, Inc. | System, apparatuses, methods, and computer-readable media for determining security realm identity before permitting network connection |
US7730292B2 (en) | 2003-03-31 | 2010-06-01 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions for directing results to selected subword locations of data processor result register |
US20040260182A1 (en) | 2003-06-23 | 2004-12-23 | Zuluaga Andres F. | Intraluminal spectroscope with wall contacting probe |
US7006021B1 (en) * | 2003-06-27 | 2006-02-28 | Cypress Semiconductor Corp. | Low power serializer circuit and method |
US7047252B2 (en) | 2003-12-02 | 2006-05-16 | Oracle International Corporation | Complex computation across heterogenous computer systems |
US7664938B1 (en) | 2004-01-07 | 2010-02-16 | Xambala Corporation | Semantic processor systems and methods |
US7698552B2 (en) * | 2004-06-03 | 2010-04-13 | Intel Corporation | Launching a secure kernel in a multiprocessor system |
JP2006004274A (ja) * | 2004-06-18 | 2006-01-05 | Nippon Telegr & Teleph Corp <Ntt> | 対話処理装置、対話処理方法及び対話処理プログラム |
US7516121B2 (en) * | 2004-06-23 | 2009-04-07 | Oracle International Corporation | Efficient evaluation of queries using translation |
US20060075236A1 (en) * | 2004-09-30 | 2006-04-06 | Marek James A | Method and apparatus for high assurance processing |
US20060095690A1 (en) | 2004-10-29 | 2006-05-04 | International Business Machines Corporation | System, method, and storage medium for shared key index space for memory regions |
US7814104B2 (en) | 2005-05-04 | 2010-10-12 | Oracle International Corporation | Techniques for partition pruning |
US7725595B1 (en) * | 2005-05-24 | 2010-05-25 | The United States Of America As Represented By The Secretary Of The Navy | Embedded communications system and method |
US7877379B2 (en) * | 2005-09-30 | 2011-01-25 | Oracle International Corporation | Delaying evaluation of expensive expressions in a query |
US8817029B2 (en) * | 2005-10-26 | 2014-08-26 | Via Technologies, Inc. | GPU pipeline synchronization and control system and method |
GB0524720D0 (en) * | 2005-12-05 | 2006-01-11 | Imec Inter Uni Micro Electr | Ultra low power ASIP architecture II |
US7861060B1 (en) | 2005-12-15 | 2010-12-28 | Nvidia Corporation | Parallel data processing systems and methods using cooperative thread arrays and thread identifier values to determine processing behavior |
US8024797B2 (en) * | 2005-12-21 | 2011-09-20 | Intel Corporation | Method, apparatus and system for performing access control and intrusion detection on encrypted data |
US8255922B1 (en) * | 2006-01-09 | 2012-08-28 | Oracle America, Inc. | Mechanism for enabling multiple processes to share physical memory |
US8049760B2 (en) | 2006-02-06 | 2011-11-01 | Via Technologies, Inc. | System and method for vector computations in arithmetic logic units (ALUs) |
US20080010417A1 (en) * | 2006-04-28 | 2008-01-10 | Zeffer Hakan E | Read/Write Permission Bit Support for Efficient Hardware to Software Handover |
US7509460B2 (en) * | 2006-05-04 | 2009-03-24 | Sun Microsystems, Inc. | DRAM remote access cache in local memory in a distributed shared memory system |
US7783862B2 (en) | 2006-08-07 | 2010-08-24 | International Characters, Inc. | Method and apparatus for an inductive doubling architecture |
US20080065835A1 (en) * | 2006-09-11 | 2008-03-13 | Sun Microsystems, Inc. | Offloading operations for maintaining data coherence across a plurality of nodes |
US8533216B2 (en) | 2006-10-30 | 2013-09-10 | Teradata Us, Inc. | Database system workload management method and system |
US7660793B2 (en) | 2006-11-13 | 2010-02-09 | Exegy Incorporated | Method and system for high performance integration, processing and searching of structured and unstructured data using coprocessors |
JP5379693B2 (ja) * | 2006-11-13 | 2013-12-25 | アイ・ピー・リザブワー・エル・エル・シー | コプロセッサを使った構造化データおよび非構造化データの高性能の統合、処理および探索の方法およびシステム |
US20080162876A1 (en) | 2006-12-28 | 2008-07-03 | International Business Machines Corporation | dedicated hardware processor for structured query language (sql) transactions |
US8504791B2 (en) | 2007-01-26 | 2013-08-06 | Hicamp Systems, Inc. | Hierarchical immutable content-addressable memory coprocessor |
US7792822B2 (en) * | 2007-03-02 | 2010-09-07 | Microsoft Corporation | Systems and methods for modeling partitioned tables as logical indexes |
US8032499B2 (en) | 2007-05-21 | 2011-10-04 | Sap Ag | Compression of tables based on occurrence of values |
US7769729B2 (en) | 2007-05-21 | 2010-08-03 | Sap Ag | Block compression of tables with repeated values |
US20090037700A1 (en) | 2007-07-30 | 2009-02-05 | Clear Falls Pty Ltd | Method and system for reactively assigning computational threads of control between processors |
US7882210B2 (en) * | 2007-08-02 | 2011-02-01 | Sap Ag | Dynamic agent formation for efficient data provisioning |
CN101796823B (zh) * | 2007-09-05 | 2012-05-23 | 国立大学法人东北大学 | 固体摄像元件以及摄影装置 |
US8543534B2 (en) | 2007-09-11 | 2013-09-24 | Oracle International Corporation | Concurrency in event processing networks for event server |
EP2040180B1 (en) | 2007-09-24 | 2019-01-16 | Hasso-Plattner-Institut für Digital Engineering gGmbH | ETL-less zero-redundancy system and method for reporting OLTP data |
CN100495404C (zh) * | 2007-11-22 | 2009-06-03 | 中国人民解放军国防科学技术大学 | 基于流处理的生物序列数据库搜索多层次加速方法 |
US7991794B2 (en) | 2007-12-18 | 2011-08-02 | Oracle International Corporation | Pipelining operations involving DML and query |
CN101227689B (zh) * | 2007-12-27 | 2011-01-19 | 华为技术有限公司 | 信息上报方法及装置 |
US7769726B2 (en) | 2007-12-31 | 2010-08-03 | Sap, Ag | Method for verification of data and metadata in a data repository |
US8258952B2 (en) * | 2008-03-14 | 2012-09-04 | The Invention Science Fund I, Llc | System for treating at least one plant including a treatment apparatus and an electronic tag interrogator |
US8229945B2 (en) | 2008-03-20 | 2012-07-24 | Schooner Information Technology, Inc. | Scalable database management software on a cluster of nodes using a shared-distributed flash memory |
US8732386B2 (en) | 2008-03-20 | 2014-05-20 | Sandisk Enterprise IP LLC. | Sharing data fabric for coherent-distributed caching of multi-node shared-distributed flash memory |
US20090289861A1 (en) * | 2008-05-20 | 2009-11-26 | Infineon Technologies Ag | Radio frequency communication devices and methods |
JP2010003266A (ja) * | 2008-06-23 | 2010-01-07 | Nippon Telegr & Teleph Corp <Ntt> | クエリ生成装置及び方法及びプログラム及びコンピュータ読取可能な記録媒体 |
US8271564B2 (en) * | 2008-07-14 | 2012-09-18 | Symbol Technologies, Inc. | Lookup table arrangement and related management method for accommodating concurrent processors |
US8626725B2 (en) * | 2008-07-31 | 2014-01-07 | Microsoft Corporation | Efficient large-scale processing of column based data encoded structures |
US8108361B2 (en) | 2008-07-31 | 2012-01-31 | Microsoft Corporation | Efficient column based data encoding for large-scale data storage |
US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
US20100088309A1 (en) | 2008-10-05 | 2010-04-08 | Microsoft Corporation | Efficient large-scale joining for querying of column based data encoded structures |
US8725707B2 (en) | 2009-03-26 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Data continuous SQL process |
US8935223B2 (en) | 2009-04-30 | 2015-01-13 | Oracle International Corporation | Structure of hierarchical compressed data structure for tabular data |
US8285709B2 (en) | 2009-05-12 | 2012-10-09 | Teradata Us, Inc. | High-concurrency query operator and method |
US9304767B2 (en) * | 2009-06-02 | 2016-04-05 | Oracle America, Inc. | Single cycle data movement between general purpose and floating-point registers |
US8789173B2 (en) * | 2009-09-03 | 2014-07-22 | Juniper Networks, Inc. | Protecting against distributed network flood attacks |
US8356185B2 (en) * | 2009-10-08 | 2013-01-15 | Oracle America, Inc. | Apparatus and method for local operand bypassing for cryptographic instructions |
US8832142B2 (en) | 2010-08-30 | 2014-09-09 | Oracle International Corporation | Query and exadata support for hybrid columnar compressed data |
US8270967B1 (en) * | 2010-02-09 | 2012-09-18 | Sprint Spectrum, L.P. | Overriding a most-recently-used (MRU) table for system acquisition |
US8868508B2 (en) * | 2010-02-09 | 2014-10-21 | Google Inc. | Storage of data in a distributed storage system |
US8856593B2 (en) | 2010-04-12 | 2014-10-07 | Sandisk Enterprise Ip Llc | Failure recovery using consensus replication in a distributed flash memory system |
US8516268B2 (en) | 2010-08-23 | 2013-08-20 | Raytheon Company | Secure field-programmable gate array (FPGA) architecture |
CN101944077B (zh) * | 2010-09-02 | 2011-10-19 | 东莞市泰斗微电子科技有限公司 | 一种主处理器和协处理器之间的通讯接口及其控制方法 |
CN201804331U (zh) * | 2010-09-21 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种基于协处理器的重复数据删除系统 |
US8260803B2 (en) * | 2010-09-23 | 2012-09-04 | Hewlett-Packard Development Company, L.P. | System and method for data stream processing |
US8938644B2 (en) | 2010-12-03 | 2015-01-20 | Teradata Us, Inc. | Query execution plan revision for error recovery |
US8972746B2 (en) | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
FR2969156B1 (fr) | 2010-12-21 | 2013-02-08 | Chryso | Polymere comportant une fonction hydrolysable utilisable comme fluidifiant |
US8996463B2 (en) | 2012-07-26 | 2015-03-31 | Mongodb, Inc. | Aggregation framework system architecture and method |
US8666970B2 (en) | 2011-01-20 | 2014-03-04 | Accenture Global Services Limited | Query plan enhancement |
DE112011104770B4 (de) * | 2011-01-25 | 2022-08-25 | Nxp Canada Inc. | Apparat und Verfahren zum gemeinsamen Vektoreinheit Benutzen |
US20120303633A1 (en) | 2011-05-26 | 2012-11-29 | International Business Machines Corporation | Systems and methods for querying column oriented databases |
CN102184365B (zh) * | 2011-06-07 | 2013-05-29 | 郑州信大捷安信息技术股份有限公司 | 基于SoC芯片外部数据安全存储系统及存取控制方法 |
US8756363B2 (en) | 2011-07-07 | 2014-06-17 | Oracle International Corporation | Efficient storage of memory version data |
US8572441B2 (en) | 2011-08-05 | 2013-10-29 | Oracle International Corporation | Maximizing encodings of version control bits for memory corruption detection |
US8601473B1 (en) * | 2011-08-10 | 2013-12-03 | Nutanix, Inc. | Architecture for managing I/O and storage for a virtualization environment |
US9342314B2 (en) | 2011-12-08 | 2016-05-17 | Oracle International Corporation | Efficient hardware instructions 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 |
WO2013086384A1 (en) | 2011-12-08 | 2013-06-13 | Oracle International Corporation | Techniques for maintaining column vectors of relational data within volatile memory |
US9697174B2 (en) | 2011-12-08 | 2017-07-04 | Oracle International Corporation | Efficient hardware instructions for processing bit vectors for single instruction multiple data processors |
US20140223140A1 (en) | 2011-12-23 | 2014-08-07 | Intel Corporation | Systems, apparatuses, and methods for performing vector packed unary encoding using masks |
US9454507B2 (en) | 2011-12-23 | 2016-09-27 | Intel Corporation | Systems, apparatuses, and methods for performing a conversion of a writemask register to a list of index values in a vector register |
WO2014033606A2 (en) | 2012-08-31 | 2014-03-06 | Pradeep Varma | Systems and methods of memory and access management |
US9292569B2 (en) | 2012-10-02 | 2016-03-22 | Oracle International Corporation | Semi-join acceleration |
US9246780B2 (en) | 2012-10-15 | 2016-01-26 | Oracle International Corporation | System and method for supporting port multiplexing in a server environment |
US9043559B2 (en) | 2012-10-23 | 2015-05-26 | Oracle International Corporation | Block memory engine with memory corruption detection |
US9244829B2 (en) | 2012-12-20 | 2016-01-26 | Oracle International Corporation | Method and system for efficient memory region deallocation |
US9471590B2 (en) | 2013-02-12 | 2016-10-18 | Atlantis Computing, Inc. | Method and apparatus for replicating virtual machine images using deduplication metadata |
US9898414B2 (en) | 2014-03-28 | 2018-02-20 | Oracle International Corporation | Memory corruption detection support for distributed shared memory applications |
-
2013
- 2013-02-26 US US13/778,013 patent/US9292569B2/en active Active
- 2013-02-26 US US13/778,009 patent/US9063974B2/en active Active
- 2013-02-27 US US13/778,307 patent/US9158810B2/en active Active
- 2013-03-07 US US13/789,524 patent/US9251272B2/en active Active
- 2013-03-14 US US13/828,555 patent/US10223116B2/en active Active
- 2013-03-15 US US13/838,542 patent/US9400821B2/en active Active
- 2013-03-15 US US13/839,525 patent/US9372813B2/en active Active
- 2013-06-14 CN CN201810434459.0A patent/CN108664596B/zh active Active
- 2013-06-14 CN CN201380049816.7A patent/CN104662538B/zh active Active
- 2013-06-14 EP EP13734557.5A patent/EP2904514B1/en active Active
- 2013-06-14 CN CN201380049301.7A patent/CN104662534B/zh active Active
- 2013-06-14 WO PCT/US2013/045881 patent/WO2014055138A1/en active Application Filing
- 2013-06-14 WO PCT/US2013/045873 patent/WO2014055137A1/en active Application Filing
- 2013-06-14 EP EP13733171.6A patent/EP2904513B1/en active Active
- 2013-06-14 JP JP2015534471A patent/JP6320393B2/ja active Active
- 2013-06-27 CN CN201380051875.8A patent/CN104704491B/zh active Active
- 2013-06-27 EP EP13737064.9A patent/EP2904515B1/en active Active
- 2013-06-27 ES ES13737064T patent/ES2880268T3/es active Active
- 2013-06-27 WO PCT/US2013/048110 patent/WO2014055145A1/en active Application Filing
- 2013-07-22 US US13/947,674 patent/US9557997B2/en active Active
- 2013-09-30 WO PCT/US2013/062718 patent/WO2014055443A1/en active Application Filing
- 2013-09-30 EP EP13777395.8A patent/EP2904521B1/en active Active
- 2013-09-30 CN CN201380057680.4A patent/CN104769591B/zh active Active
- 2013-10-01 WO PCT/US2013/062880 patent/WO2014055526A1/en active Application Filing
- 2013-10-01 EP EP13777400.6A patent/EP2904499B1/en active Active
- 2013-10-01 CN CN201380057937.6A patent/CN104769561B/zh active Active
- 2013-10-01 WO PCT/US2013/062859 patent/WO2014055512A1/en active Application Filing
- 2013-10-01 EP EP13783718.3A patent/EP2904500B1/en active Active
- 2013-10-01 CN CN201380051672.9A patent/CN104756091B/zh active Active
-
2015
- 2015-05-11 US US14/709,302 patent/US9542443B2/en active Active
- 2015-12-10 US US14/964,805 patent/US10055224B2/en active Active
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6320393B2 (ja) | テーブルスキャンを加速するためのハードウェア | |
US10459727B2 (en) | Loop code processor optimizations | |
US20140032516A1 (en) | Accelerated row decompression | |
US11119742B2 (en) | Cache efficient reading of result values in a column store database | |
TWI659305B (zh) | 用於擴展私用快取中快取行之獨佔持有之設備 | |
US10592252B2 (en) | Efficient instruction processing for sparse data | |
US10572254B2 (en) | Instruction to query cache residency | |
US10621095B2 (en) | Processing data based on cache residency | |
US8812523B2 (en) | Predicate result cache | |
US6810472B2 (en) | Page handling efficiency in a multithreaded processor | |
WO2017116927A1 (en) | Zero cache memory system extension | |
US11175916B2 (en) | System and method for a lightweight fencing operation | |
WO2018075009A1 (en) | Response caching |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160216 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160216 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170220 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170314 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170509 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170926 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20171115 |
|
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: 20180313 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180403 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6320393 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 |