CLAIMS
What is claimed is:
1. A method for query optimization, comprising:
receiving a query;
generating a query execution graph;
determining a query manipulation to increase a portion of the query execution graph that is independent of data changes;
manipulating the query execution graph according to the determined query manipulation; and
executing the query according to the manipulated query execution graph.
2. The method of claim 1, further comprising generating a named data source to reference the dataset resulting from the query.
3. The method of claim 1, wherein the query is a result of an insertion, a result of a deletion, and/or a streaming query.
4. The method of claim 3, wherein determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises determining a query manipulation to maximize a portion of the query execution graph that is independent of data changes.
5. The method of claim 1, wherein:
determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises selecting a query manipulation to increase a portion of the query execution graph that is independent of data changes with a lowest cost from a group of query manipulations determined to increase a portion of the query execution graph that is independent of data changes; and
manipulating the query execution graph according to the determined query manipulation comprises manipulating the query execution graph according to the selected query manipulation.
6. The method of claim 1, wherein determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises recursively applying query manipulations to increase a portion of the query execution graph that is independent of data changes.
7. The method of claim 1, wherein determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises strategically or emergently discovering the query manipulation to increase the portion of the query execution graph that is independent of data changes.
8. The method of claim 1, wherein executing the query according to the manipulated query execution graph comprises executing the query according to the manipulated query execution graph to reconstruct an original dataset.
9. A computing device, comprising:
a processor configured with processor-executable instructions to perform operations comprising:
receiving a query;
generating a query execution graph;
determining a query manipulation to increase a portion of the query execution graph that is independent of data changes;
manipulating the query execution graph according to the determined query manipulation; and
executing the query according to the manipulated query execution graph.
10. The computing device of claim 9, wherein the processor is further configured to perform operations further comprising generating a named data source to reference the dataset resulting from the query.
11. The computing device of claim 9, wherein the processor is further configured to perform operations such that the query is a result of an insertion, a result of a deletion, and/or a streaming query.
12. The computing device of claim 11, wherein the processor is further configured to perform operations such that determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises
determining a query manipulation to maximize a portion of the query execution graph that is independent of data changes.
13. The computing device of claim 9, wherein the processor is further configured to perform operations such that:
determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises selecting a query manipulation to increase a portion of the query execution graph that is independent of data changes with a lowest cost from a group of query manipulations determined to increase a portion of the query execution graph that is independent of data changes; and
manipulating the query execution graph according to the determined query manipulation comprises manipulating the query execution graph according to the selected query manipulation.
14. The computing device of claim 9, wherein the processor is further configured to perform operations such that determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises
recursively applying query manipulations to increase a portion of the query execution graph that is independent of data changes.
15. The computing device of claim 9, wherein the processor is further configured to perform operations such that determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises strategically or emergently discovering the query manipulation to increase the portion of the query execution graph that is independent of data changes.
16. The computing device of claim 9, wherein the processor is further configured to perform operations such that executing the query according to the manipulated query execution graph comprises executing the query according to the manipulated query execution graph to reconstruct an original dataset.
17. A non-transitory computer readable storage medium having stored thereon processor-executable software instructions configured to cause a processor of a computing device to perform operations comprising:
receiving a query;
generating a query execution graph;
determining a query manipulation to increase a portion of the query execution graph that is independent of data changes;
manipulating the query execution graph according to the determined query manipulation; and
executing the query according to the manipulated query execution graph.
18. The non-transitory computer readable storage medium of claim 17, wherein the stored processor-executable software instructions are configured to cause the processor to perform operations further comprising generating a named data source to reference the dataset resulting from the query.
19. The non-transitory computer readable storage medium of claim 17, wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that the query is a result of an insertion, a result of a deletion, and/or a streaming query.
20. The non-transitory computer readable storage medium of claim 19, wherein the stored processor-executable software instructions are configured to cause the processor to perform operations such that determining a query manipulation to increase a portion of the query execution graph that is independent of data changes comprises determining a query manipulation to maximize a portion of the query execution graph that is independent of data changes.