Hardware implementation of the aggregation/group by operation: hash-table method
First Claim
Patent Images
1. A method comprising:
- receiving a request to aggregate data grouped by a first column;
in response to receiving the request, performing, for each row of a plurality of rows;
retrieving, using hardware of a group column access unit, a value from the first column of the row;
wherein the value from the first column of the row is a group value for the row;
mapping, using hardware of a hash table access unit, the group value for the row to an address;
retrieving from memory associated with the address, using hardware of an aggregation state access unit, a set of aggregation data for a group associated with the group value; and
updating, using hardware of a value column access unit, an aggregate value included in the set of aggregation data based on a value in a second column of the row;
wherein the group column access unit, the hash table access unit, the aggregation state access unit and the value column access unit are separate and distinct hardware units;
wherein the group column access unit, the hash table access unit, the aggregation state access unit, and the value column access unit each have a separate and distinct local memory;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described for performing grouping and aggregation operations. In one embodiment, a request is received to aggregate data grouped by a first column. In response to receiving the request, a group value in a row of a first column is mapped to an address. A pointer is stored for a first group at a first location identified by the address. The pointer identifies a second location of a set of aggregation data for the first group. An aggregate value included in the set of aggregation data is updated based on a value in the row of a second column.
-
Citations
22 Claims
-
1. A method comprising:
-
receiving a request to aggregate data grouped by a first column; in response to receiving the request, performing, for each row of a plurality of rows; retrieving, using hardware of a group column access unit, a value from the first column of the row; wherein the value from the first column of the row is a group value for the row; mapping, using hardware of a hash table access unit, the group value for the row to an address; retrieving from memory associated with the address, using hardware of an aggregation state access unit, a set of aggregation data for a group associated with the group value; and updating, using hardware of a value column access unit, an aggregate value included in the set of aggregation data based on a value in a second column of the row; wherein the group column access unit, the hash table access unit, the aggregation state access unit and the value column access unit are separate and distinct hardware units; wherein the group column access unit, the hash table access unit, the aggregation state access unit, and the value column access unit each have a separate and distinct local memory; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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:
-
receiving a request to aggregate data grouped by a first column; in response to receiving the request, performing, for each row of a plurality of rows; retrieving, using hardware of a group column access unit, a value from the first column of the row; wherein the value from the first column of the row is a group value for the row; mapping, using hardware of a hash table access unit, the group value for the row to an address; retrieving from memory associated with the address, using hardware of an aggregation state access unit, a set of aggregation data for a group associated with the group value; and updating, using hardware of a value column access unit, an aggregate value included in the set of aggregation data based on a value in a second column of the row; wherein the group column access unit, the hash table access unit, the aggregation state access unit and the value column access unit are separate and distinct hardware units; wherein the group column access unit, the hash table access unit, the aggregation state access unit, and the value column access unit each have a separate and distinct local memory. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for performing grouping and aggregation operations comprising:
-
one or more processors; one or more non-transitory computer-readable media storing instructions, which, when executed by the one or more processors cause; hardware of a group column access unit to retrieve a group value for a first group from a row of a first column; hardware of a hash table access unit to map the group value to an address; hardware of an aggregation state access unit to retrieve aggregation data identified by a pointer stored at the address for the first group; hardware of a value column access unit to update an aggregate value included in the aggregation data based on a value in the row of a second column; wherein the group column access unit, the hash table access unit, the aggregation state access unit, and the value column access unit are separate and distinct hardware units; wherein the group column access unit, the hash table access unit, the aggregation state access unit, and the value column access unit each have a separate and distinct local memory. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification