Claims Analysis
Total Claims: 12
Claim 1
Independent Claim
339 words
A method for processing a statement that specifies a join between a first object and a second object based on a join key, the method comprising the steps of: performing multi-level static partitioning of the first object, including performing the steps of: statically partitioning the first object at a first level by applying a first partitioning criteria to the first object to produce a first set of partitions; and statically partitioning the first object at a second level based on said join key, wherein the static partitioning based on said join key is performed by applying a second partitioning criteria to each partition in said first set of partitions to produce a second set of partitions; during execution of said statement, using the second level of static partitioning of said first object as a basis for distributing data of said first object, including performing the steps of: inspecting partitioning metadata based on said statement to determine that the second level of static partitioning of said first object, and not said first level of static partitioning, should be used as a basis for distributing data from said first object to a plurality of slave processes; distributing data from said first and second objects to each slave process of said plurality of slave processes based on said second partitioning criteria, including distributing to each slave process of said plurality of slave processes a first subset of data from said first object, wherein the first subset of data that is distributed to each slave process is established based on said second set of partitions; distributing to each slave process of said plurality of slave processes a second subset of data from said second object, wherein the second subset of data that is distributed to each slave process is established based on said second partitioning criteria; and causing each slave process of said plurality of slave processes to perform a join between the first subset of data assigned to the slave process and the second subset of data assigned to the slave process.
Claim 2
Independent Claim
339 words
A method for processing a statement that specifies a join between a first object and a second object based on a join key, the method comprising the steps of: performing multi-level static partitioning of the first object, including performing the steps of: statically partitioning the first object at a first level by applying a first partitioning criteria to the first object to produce a first set of partitions; and statically partitioning the first object at a second level based on said join key, wherein the static partitioning based on said join key is performed by applying a second partitioning criteria to each partition in said first set of partitions to produce a second set of partitions; during execution of said statement, using the second level of static partitioning of said first object as a basis for distributing data of said first object, including performing the steps of: inspecting partitioning metadata based on said statement to determine that the second level of static partitioning of said first object, and not said first level of static partitioning, should be used as a basis for distributing data from said first object to a plurality of slave processes; distributing data from said first and second objects to each slave process of said plurality of slave processes based on said second partitioning criteria, including distributing to each slave process of said plurality of slave processes a first subset of data from said first object, wherein the first subset of data that is distributed to each slave process is established based on said second set of partitions; distributing to each slave process of said plurality of slave processes a second subset of data from said second object, wherein the second subset of data that is distributed to each slave process is established based on said second partitioning criteria; and causing each slave process of said plurality of slave processes to perform a join between the first subset of data assigned to the slave process and the second subset of data assigned to the slave process.
Claim 3
Dependent Claim
40 words
The method of claim 1 wherein: the second object is statically partitioned based on the second partitioning criteria; and no dynamic partitioning is performed to establish the first and second subsets of data that are distributed to each slave process.
Claim 4
Dependent Claim
50 words
The method of claim 1 wherein: the second object is not statically partitioned based on the second partitioned criteria; and the method further comprises the step of, in response to said statement, dynamically partitioning the second object based on the same partitioning criteria used to statically partition said first object.
Claim 5
Dependent Claim
33 words
The method of claim 1 wherein the method further includes the step of establishing said first and second subsets of data to distribute to each slave process based on said second partitioning criteria.
Claim 6
Dependent Claim
62 words
The method of claim 1 wherein the method further includes the steps of: performing partition pruning based on one partitioning criteria of said first partitioning criteria and said second partitioning criteria; and establishing said first and second subsets of data to distribute to each slave process based on the other partitioning criteria of said first partitioning criteria and said second partitioning criteria.
Claim 7
Dependent Claim
346 words
A computer readable medium bearing instructions for processing a statement that specifies a join between a first object and a second object based on a join key, the instructions including instructions for performing the steps of: performing multi-level static partitioning of the first object, including performing the steps of: statically partitioning the first object at a first level by applying a first partitioning criteria to the first object to produce a first set of partitions; and statically partitioning the first object at a second level based on said join key, wherein the static partitioning based on said join key is performed by applying a second partitioning criteria to each partition in said first set of partitions to produce a second set of partitions; during execution of said statement, using the second level of static partitioning of said first object as a basis for distributing data of said first object, including performing the steps of: inspecting partitioning metadata based on said statement to determine that the second level of static partitioning of said first object, and not said first level of static partitioning, should be used as a basis for distributing data from said first object to a plurality of slave processes; distributing data from said first and second objects to each slave process of said plurality of slave processes based on said second partitioning criteria, including distributing to each slave process of said plurality of slave processes a first subset of data from said first object, wherein the first subset of data that is distributed to each slave process is established based on said second set of partitions; distributing to each slave process of said plurality of slave processes a second subset of data from said second object, wherein the second subset of data that is distributed to each slave process is established based on said second partitioning criteria; and causing each slave process of said plurality of slave processes to perform a join between the first subset of data assigned to the slave process and the second subset of data assigned to the slave process.
Claim 8
Dependent Claim
346 words
A computer readable medium bearing instructions for processing a statement that specifies a join between a first object and a second object based on a join key, the instructions including instructions for performing the steps of: performing multi-level static partitioning of the first object, including performing the steps of: statically partitioning the first object at a first level by applying a first partitioning criteria to the first object to produce a first set of partitions; and statically partitioning the first object at a second level based on said join key, wherein the static partitioning based on said join key is performed by applying a second partitioning criteria to each partition in said first set of partitions to produce a second set of partitions; during execution of said statement, using the second level of static partitioning of said first object as a basis for distributing data of said first object, including performing the steps of: inspecting partitioning metadata based on said statement to determine that the second level of static partitioning of said first object, and not said first level of static partitioning, should be used as a basis for distributing data from said first object to a plurality of slave processes; distributing data from said first and second objects to each slave process of said plurality of slave processes based on said second partitioning criteria, including distributing to each slave process of said plurality of slave processes a first subset of data from said first object, wherein the first subset of data that is distributed to each slave process is established based on said second set of partitions; distributing to each slave process of said plurality of slave processes a second subset of data from said second object, wherein the second subset of data that is distributed to each slave process is established based on said second partitioning criteria; and causing each slave process of said plurality of slave processes to perform a join between the first subset of data assigned to the slave process and the second subset of data assigned to the slave process.
Claim 9
Dependent Claim
49 words
The computer readable medium of claim 6 wherein: the second object is statically partitioned based on the same partitioning criteria used to statically partition said first object, and no dynamic partitioning is performed to establish the first and second subsets of data that are distributed to each slave process.
Claim 10
Dependent Claim
62 words
The computer readable medium of claim 6 wherein: the second object is not statically partitioned based on the same partitioning criteria used to statically partition said first object; and the instructions further include instructions for performing the step of, in response to said statement, dynamically partitioning the second object based on the same partitioning criteria used to statically partition said first object.
Claim 11
Dependent Claim
38 words
The computer readable medium of claim 6 wherein the instructions further include instructions for performing the step of establishing said first and second subsets of data to distribute to each slave process based on said second partitioning criteria.
Claim 12
Dependent Claim
67 words
The computer readable medium of claim 6 wherein the instructions further include instructions for performing the steps of: performing partition pruning based on one partitioning criteria of said first partitioning criteria and said second partitioning criteria; and establishing said first and second subsets of data to distribute to each slave process based on the other partitioning criteria of said first partitioning criteria and said second partitioning criteria.