Processing

Please wait...

Settings

Settings

Goto Application

1. WO2017019889 - MAINTAINING PERFORMANCE IN THE PRESENCE OF INSERTIONS, DELETIONS, AND STREAMING QUERIES

Note: Text based on automatic Optical Character Recognition processes. Please use the PDF version for legal matters

[ EN ]

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.