Optimization of split queries
First Claim
1. A computer-implemented method comprising:
- determining, for a query comprising a plurality of operations, a first workload distribution between a first data store storing encrypted data and a second data store storing unencrypted data, the query including a first portion that can be performed on the encrypted data and a second portion that cannot be performed on the encrypted data, the first workload distribution being determined based at least on the second portion of the query being unable to be performed on the encrypted data in the first data store, and the first workload distribution indicating that the first portion of the query is to be performed at the first data store and the second portion of the query is to be performed at the second data store;
determining, based at least on the first workload distribution, a second workload distribution, the determining of the second workload distribution comprising a reordering of at least a first operation and a second operation in the second portion of the query, the first operation and the second operation being reordered based at least on the first operation and the second operation being non-conflicting operations that can be at least one of commuted, distributed, and combined without affecting a respective result of the first operation and the second operation, and the reordering including pushing down, to the first portion of the query, the first operation such that the first operation is performed at the first data store instead of at the second data store; and
executing the query, the executing comprising distributing, to the first data store and the second data store, respective portions of an execution plan corresponding to the first portion of the query and the second portion of the query, the execution plan being generated based at least on the second workload distribution.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods and apparatus, including computer program products, are provided for split query optimization. In some example embodiments, a method may include: determining, for a query comprising a plurality of operations, a first workload distribution between a first data store and a second data store, the first workload distribution indicating that a first portion of the query is to be performed at the first data store and a second portion of the query is to be performed at the second data store; and determining, based at least on the first workload distribution, a second workload distribution, the determining of the second workload distribution includes pushing down, to the first portion of the query, a first operation from the second portion of the query such that the first operation is performed at the first data store instead of at the second data store.
8 Citations
18 Claims
-
1. A computer-implemented method comprising:
-
determining, for a query comprising a plurality of operations, a first workload distribution between a first data store storing encrypted data and a second data store storing unencrypted data, the query including a first portion that can be performed on the encrypted data and a second portion that cannot be performed on the encrypted data, the first workload distribution being determined based at least on the second portion of the query being unable to be performed on the encrypted data in the first data store, and the first workload distribution indicating that the first portion of the query is to be performed at the first data store and the second portion of the query is to be performed at the second data store; determining, based at least on the first workload distribution, a second workload distribution, the determining of the second workload distribution comprising a reordering of at least a first operation and a second operation in the second portion of the query, the first operation and the second operation being reordered based at least on the first operation and the second operation being non-conflicting operations that can be at least one of commuted, distributed, and combined without affecting a respective result of the first operation and the second operation, and the reordering including pushing down, to the first portion of the query, the first operation such that the first operation is performed at the first data store instead of at the second data store; and executing the query, the executing comprising distributing, to the first data store and the second data store, respective portions of an execution plan corresponding to the first portion of the query and the second portion of the query, the execution plan being generated based at least on the second workload distribution. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A system, comprising:
-
at least one processor; and at least one memory including program code which when executed by the at least one memory provides operations comprising; determining, for a query comprising a plurality of operations, a first workload distribution between a first data store storing encrypted data and a second data store storing unencrypted data, the query including a first portion that can be performed on the encrypted data and a second portion that cannot be performed on the encrypted data, the first workload distribution being determined based at least on the second portion of the query being unable to be performed on the encrypted data in the first data store, and the first workload distribution indicating that the first portion of the query is to be performed at the first data store and the second portion of the query is to be performed at the second data store; determining, based at least on the first workload distribution, a second workload distribution, the determining of the second workload distribution comprising a reordering of at least a first operation and a second operation in the second portion of the query, the first operation and the second operation being reordered based at least on the first operation and the second operation being non-conflicting operations that can be at least one of commuted, distributed, and combined without affecting a respective result of the first operation and the second operation, and the reordering including pushing down, to the first portion of the query, the first operation such that the first operation is performed at the first data store instead of at the second data store; and executing the query, the executing comprising distributing, to the first data store and the second data store, respective portions of an execution plan corresponding to the first portion of the query and the second portion of the query, the execution plan being generated based at least on the second workload distribution. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A non-transitory computer-readable storage medium including program code which when executed by at least one processor causes operations comprising:
-
determining, for a query comprising a plurality of operations, a first workload distribution between a first data store storing encrypted data and a second data store storing unencrypted data, the query including a first portion that can be performed on the encrypted data and a second portion that cannot be performed on the encrypted data, the first workload distribution being determined based at least on the second portion of the query being unable to be performed on the encrypted data in the first data store, and the first workload distribution indicating that the first portion of the query is to be performed at the first data store and the second portion of the query is to be performed at the second data store; determining, based at least on the first workload distribution, a second workload distribution, the determining of the second workload distribution comprising a reordering of at least a first operation and a second operation in the second portion of the query, the first operation and the second operation being reordered based at least on the first operation and the second operation being non-conflicting operations that can be at least one of commuted, distributed, and combined without affecting a respective result of the first operation and the second operation, and the reordering including pushing down, to the first portion of the query, the first operation such that the first operation is performed at the first data store instead of at the second data store; and executing the query, the executing comprising distributing, to the first data store and the second data store, respective portions of an execution plan corresponding to the first portion of the query and the second portion of the query, the execution plan being generated based at least on the second workload distribution.
-
Specification