SEMI-JOIN ACCELERATION
First Claim
1. A method for processing a query, comprising:
- determining that execution of the query involves a particular operation;
in response to determining that execution of the query involves a particular operation, generating a command that includes, as parameters of the command, first address data that is used to identify input data to be read by a coprocessor, and second address data that is used to identify a lookup vector;
causing the command to be stored in memory;
processing, by the coprocessor, the command by;
reading the command from the memory;
causing the input data to be read from a location indicated by the first address data, wherein the input data comprises a plurality of values;
causing the lookup vector to be read from a location that is indicated by the second address data;
for each value of the plurality of values, identifying, within the lookup vector, a result that corresponds to said each value;
generating a result data based on the identifying for each value of the plurality of values;
causing the result data to be stored;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for processing a query are provided. One or more operations that are required to process a query are performed by a coprocessor that is separate from a general purpose microprocessor that executes query processing software. The query processing software receives a query, determines one or more operations that are required to be executed to fully process the query, and issues one or more commands to one or more coprocessors that are programmed to perform one of the operations, such as a table scan operation and/or a lookup operation. The query processing software obtains results from the coprocessor(s) and performs one or more additional operations thereon to generate a final result of the query.
38 Citations
24 Claims
-
1. A method for processing a query, comprising:
-
determining that execution of the query involves a particular operation; in response to determining that execution of the query involves a particular operation, generating a command that includes, as parameters of the command, first address data that is used to identify input data to be read by a coprocessor, and second address data that is used to identify a lookup vector; causing the command to be stored in memory; processing, by the coprocessor, the command by; reading the command from the memory; causing the input data to be read from a location indicated by the first address data, wherein the input data comprises a plurality of values; causing the lookup vector to be read from a location that is indicated by the second address data; for each value of the plurality of values, identifying, within the lookup vector, a result that corresponds to said each value; generating a result data based on the identifying for each value of the plurality of values; causing the result data to be stored; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A coprocessor that is configured to perform the steps of:
-
receiving a command (1) that was generated by a microprocessor that executes instructions related to query processing and (2) that includes, as parameters of the command, first address data that is used to identify input data to be read by a coprocessor, and second address data that is used to identify a lookup vector; reading the command from the memory; causing the input data to be read from a location indicated by the first address data, wherein the input data comprises a plurality of values; causing the lookup vector to be read from a location that is indicated by the second address data; for each value of the plurality of values, identifying, within the lookup vector, a result that corresponds to said each value; generating a result data based on the identifying for each value of the plurality of values; causing the microprocessor to be informed of the result data. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
Specification