Hardware implementation of the filter/project operations
First Claim
1. A method comprising:
- based on a predicate that specifies criteria for filtering results of a query that targets a table, programming reconfigurable hardware of a filtering unit with the predicate;
wherein the predicate specifies a condition for a particular column of the table;
wherein programming the reconfigurable hardware with the predicate creates a filter unit hardware circuit that is configured to apply the predicate;
causing the filter unit hardware circuit to generate a first predicate result by loading values, from the particular column, into the filter unit hardware circuit;
wherein hardware configuration of the filter unit hardware circuit causes the predicate to be applied to the values;
wherein the first predicate result identifies rows of the table that have values, within the particular column, that satisfy the condition specified by the predicate;
selecting rows to return, as results of the query, based at least in part on the first predicate result;
returning the selected rows as results to the query;
based on a second predicate that specifies criteria for filtering results that targets the table, programming the reconfigurable hardware of the filtering unit with the second predicate;
wherein the second predicate specifies a condition for a second column of the table;
wherein programming the reconfigurable hardware with the predicate creates a second filter unit hardware circuit that is configured to apply the second predicate;
causing the second filter unit hardware circuit to generate a second predicate result by loading values, from the second column, into the second filter unit hardware circuit;
wherein hardware configuration of the second filter unit hardware circuit causes the second predicate to be applied to the values;
wherein the second predicate result identifies rows of the table that have values, within the second column, that satisfy the condition specified by the second predicate;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for performing filter and project operations. In an embodiment, a set of predicates that specify criteria for filtering results to a query is received. Based on a particular predicate of the set of predicates, a predicate result for at least one portion of a particular column is generated. The predicate result identifies rows within the first column that satisfy the particular predicate. Rows are selected and returned as results to the query based at least in part on the predicate result. In an embodiment, the predicate result is a bitvector where each bit of the bitvector corresponds to a particular row within the particular column and identify whether the particular row satisfies the particular predicate.
-
Citations
20 Claims
-
1. A method comprising:
-
based on a predicate that specifies criteria for filtering results of a query that targets a table, programming reconfigurable hardware of a filtering unit with the predicate; wherein the predicate specifies a condition for a particular column of the table; wherein programming the reconfigurable hardware with the predicate creates a filter unit hardware circuit that is configured to apply the predicate; causing the filter unit hardware circuit to generate a first predicate result by loading values, from the particular column, into the filter unit hardware circuit; wherein hardware configuration of the filter unit hardware circuit causes the predicate to be applied to the values; wherein the first predicate result identifies rows of the table that have values, within the particular column, that satisfy the condition specified by the predicate; selecting rows to return, as results of the query, based at least in part on the first predicate result; returning the selected rows as results to the query; based on a second predicate that specifies criteria for filtering results that targets the table, programming the reconfigurable hardware of the filtering unit with the second predicate; wherein the second predicate specifies a condition for a second column of the table; wherein programming the reconfigurable hardware with the predicate creates a second filter unit hardware circuit that is configured to apply the second predicate; causing the second filter unit hardware circuit to generate a second predicate result by loading values, from the second column, into the second filter unit hardware circuit; wherein hardware configuration of the second filter unit hardware circuit causes the second predicate to be applied to the values; wherein the second predicate result identifies rows of the table that have values, within the second column, that satisfy the condition specified by the second predicate; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. One or more non-transitory computer-readable media storing instructions, which, when executed by one or more processors, cause one or more computing devices to perform operations comprising:
-
based on a predicate that specifies criteria for filtering results of a query that targets a table, programming reconfigurable hardware of a filtering unit with the predicate; wherein the predicate specifies a condition for a particular column of the table;
wherein programming the reconfigurable hardware with the predicate creates a filter unit hardware circuit that is configured to apply the predicate;causing the filter unit hardware circuit to generate a first predicate result by loading values, from the particular column, into the filter unit hardware circuit; wherein hardware configuration of the filter unit hardware circuit causes the predicate to be applied to the values; wherein the first predicate result identifies rows of the table that have values, within the particular column, that satisfy the condition specified by the predicate; selecting rows to return, as results of the query, based at least in part on the first predicate result; returning the selected rows as results to the query; based on a second predicate that specifies criteria for filtering results that targets the table, programming the reconfigurable hardware of the filtering unit with the second predicate; wherein the second predicate specifies a condition for a second column of the table; wherein programming the reconfigurable hardware with the predicate creates a second filter unit hardware circuit that is configured to apply the second predicate; causing the second filter unit hardware circuit to generate a second predicate result by loading values, from the second column, into the second filter unit hardware circuit; wherein hardware configuration of the second filter unit hardware circuit causes the second predicate to be applied to the values; wherein the second predicate result identifies rows of the table that have values, within the second column, that satisfy the condition specified by the second predicate. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A system comprising:
-
a control unit that includes one or more hardware processors configured to; receive a set of predicates that specify criteria for filtering results to a query that targets a table; based on the set of predicates that specify criteria for filtering results to the query that targets the table, program reconfigurable hardware of a filter unit with a first predicate of the set of predicates; wherein the first predicate specifies a condition for a particular column of the table; wherein programming the reconfigurable hardware with the first predicate creates a filter unit hardware circuit that is configured to apply the first predicate of the set of predicates; cause the filter unit hardware circuit to load values from the particular column of the table and cause the filter unit hardware circuit to apply the particular first predicate, of the set of predicates, that specifies the condition for the particular column of the table; a filter unit that includes reconfigurable hardware and that is configured to; receive values from the particular column; wherein the filter unit hardware circuit that is programmed into the filter unit causes the filter unit to apply the first predicate to the values and generate a first bitvector that identifies rows of the table that have values, within the particular column, that satisfy the condition specified by the first predicate; generate the first bitvector that identifies rows of the table that have values, within the particular column, that satisfy the condition specified by the first predicate; a project unit configured to; select rows to return, as results of the query, based at least in part on the first bitvector; return the selected rows as results to the query; wherein the one or more hardware processors are further configured to; receive a second set of predicates that specify criteria for filtering results to a second query that targets the table; based on the second set of predicates that specify criteria for filtering results to the second query that targets the table, program reconfigurable hardware of the filter unit with a second predicate of the second set of predicates; wherein the second predicate specifies a condition for a second column of the table; wherein programming the reconfigurable hardware with the second predicate creates a second filter unit hardware circuit that is configured to apply the second predicate of the second set of predicates; cause the second filter unit hardware circuit to load values from the second column of the table and cause the filter unit hardware circuit to apply the second predicate, of the second set of predicates, that specifies the condition for the second column of the table. - View Dependent Claims (20)
-
Specification