MEMORY-AWARE JOINS BASED IN A DATABASE CLUSTER
First Claim
1. A method comprising:
- prior to receiving a join query that requires work to be performed on a first set of data that belongs to a first partitioned object that resides on-disk, performing the steps of;
pre-loading into volatile memory data from the first partitioned object;
wherein the first partitioned object includes a first plurality of partitions;
wherein pre-loading the first partitioned object includes;
mapping the first plurality of partitions to a plurality of partition groups;
wherein each of the plurality of partition groups corresponds to corresponding partition criteria; and
assigning each partition group of the plurality of partition groups to a corresponding host node of a plurality of host nodes;
pre-loading each given partition of the first plurality of partitions into volatile memory of a host node that corresponds to the partition group to which the given partition is mapped;
in response to receiving the join query, distributing work required by the join query to the plurality of host nodes based on which partition groups have been assigned to each of the plurality of host nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described herein for distributing data from one or more partitioned tables across the volatile memories of a cluster. In memory copies of data from partitioned tables are grouped based on the data falling within the same partition criteria. These groups are used for assigning data from corresponding partitions to the same node when distributing data from partitioned tables across the volatile memories of a multi-node cluster. When a query requires a join between rows of partitioned tables, the work for the join query is divided into work granules that correspond to partition-wise join operations. Those partition-wise join operations are assigned to nodes by a query coordinator based on the partition-to-node mapping located in the node of the query coordinator.
-
Citations
22 Claims
-
1. A method comprising:
-
prior to receiving a join query that requires work to be performed on a first set of data that belongs to a first partitioned object that resides on-disk, performing the steps of; pre-loading into volatile memory data from the first partitioned object; wherein the first partitioned object includes a first plurality of partitions; wherein pre-loading the first partitioned object includes; mapping the first plurality of partitions to a plurality of partition groups; wherein each of the plurality of partition groups corresponds to corresponding partition criteria; and assigning each partition group of the plurality of partition groups to a corresponding host node of a plurality of host nodes; pre-loading each given partition of the first plurality of partitions into volatile memory of a host node that corresponds to the partition group to which the given partition is mapped; in response to receiving the join query, distributing work required by the join query to the plurality of host nodes based on which partition groups have been assigned to each of the plurality of host nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. One or more non-transitory computer-readable media storing instructions which, when executed by one or more hardware processors, cause performance of a method comprising:
-
prior to receiving a join query that requires work to be performed on a first set of data that belongs to a first partitioned object that resides on-disk, performing the steps of; pre-loading into volatile memory data from the first partitioned object; wherein the first partitioned object includes a first plurality of partitions; wherein pre-loading the first partitioned object includes; mapping the first plurality of partitions to a plurality of partition groups; wherein each of the plurality of partition groups corresponds to corresponding partition criteria; and assigning each partition group of the plurality of partition groups to a corresponding host node of a plurality of host nodes; pre-loading each given partition of the first plurality of partitions into volatile memory of a host node that corresponds to the partition group to which the given partition is mapped; in response to receiving the join query, distributing work required by the join query to the plurality of host nodes based on which partition groups have been assigned to the plurality of host nodes. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
Specification