IP Library Granted Patent US 9,424,150
Granted Patent B2
US 9,424,150 · App. 13/311,596 · Granted Aug 23, 2016

Fault tolerance based query execution

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,424,150
App. No.
13/311,596
Granted
Aug 23, 2016
Kind
B2
Abstract

Various embodiments of systems and methods for a fault tolerance based query execution are described herein. Queries are received from users, the queries including operators. A multi-query optimization is performed on the operators included in the queries to obtain a query plan. A fault tolerance degree is determined for the operators included in the query plan. Based on the fault tolerance degree of the operators, nodes are assigned to the operators included in the query plan. The assigned nodes execute the operators included in the query plan to execute the queries. In one aspect, the nodes simultaneously execute the operators included in the query plan.

Claims (57)

1. A computer implemented method for executing a plurality of queries, the method comprising:

receiving the plurality of queries from a user, the plurality of queries including a plurality of operators;

based on the received plurality of queries, determining, by a processor of the computer, a fault tolerance degree for the plurality of operators, wherein determining the fault tolerance degree includes:

calculating, by the processor of the computer, a query outdegree for an operator from the plurality of operators by counting a number of the plurality of queries that include the operator from the plurality of operators, wherein the counted number of the plurality of queries is the query outdegree corresponding to the operator from the plurality of operators; and

determining, by the processor of the computer, the fault tolerance degree for the plurality of operators based on the calculated query outdegree;

based on the determined fault tolerance degree, assigning, by the processor of the computer, a plurality of nodes to the plurality of operators; and

executing the received plurality of queries by the assigned plurality of nodes.

2. The computer implemented method according to claim 1 , wherein executing the received plurality of queries includes:

simultaneously executing the plurality of operators by the assigned plurality of nodes.

3. The computer implemented method according to claim 1 , wherein assigning the one or more nodes includes:

determining, by the processor of the computer, a number of the plurality of nodes to be assigned to the plurality of operators based on the determined fault tolerance degree; and

based on the determined number of the plurality of nodes, assigning, by the processor of the computer, the plurality of nodes to the plurality of operators.

4. The computer implemented method according to claim 1 , further comprising:

performing, by the processor of the computer, a multi-query optimization on the plurality of operators included in the received plurality of queries to obtain a query plan; and

determining, by the processor of the computer, the fault tolerance degree of the plurality of operators included in the query plan.

5. The computer implemented method according to claim 1 , further comprising:

receiving, from the user, a requested query fault tolerance for the plurality of queries.

6. The computer implemented method according to claim 5 , wherein determining the fault tolerance degree includes:

determining, by the processor of the computer, the fault tolerance degree of the plurality of operators based on the received requested query fault tolerance.

7. A non-transitory computer readable storage medium to tangibly store instructions, which when executed by a computer, cause the computer to:

receive a plurality of queries from a user, the plurality of queries including a plurality of operators;

based on the received plurality of queries, determine a fault tolerance degree for the plurality of operators, wherein determining the fault tolerance degree includes:

calculate a query outdegree for an operator from the plurality of operators by counting a number of the plurality of queries that include the operator from the plurality of operators, wherein the counted number of the plurality of queries is the query outdegree corresponding to the operator from the plurality of operators; and

determine the fault tolerance degree for the plurality of operators based on the calculated query outdegree;

based on the determined fault tolerance degree, assign a plurality of nodes to the plurality of operators; and

execute the received plurality of queries by the assigned plurality of nodes.

8. The non-transitory computer readable storage medium according to claim 7 , further comprising instructions which when executed by the computer further causes the computer to:

simultaneously execute the plurality of operators by the assigned plurality of nodes.

9. The non-transitory computer readable storage medium according to claim 7 , further comprising instructions which when executed by the computer further causes the computer to:

determine a number of the plurality of nodes to be assigned to the plurality of operators based on the determined fault tolerance degree; and

based on the determined number of the plurality of nodes, assign the plurality of nodes to the plurality of operators.

10. The non-transitory computer readable storage medium according to claim 7 , further comprising instructions which when executed by the computer further causes the computer to:

perform a multi-query optimization on the plurality of operators included in the received plurality of queries to obtain a query plan; and

determine the fault tolerance degree of the plurality of operators included in the query plan.

11. The non-transitory computer readable storage medium according to claim 7 , further comprising instructions which when executed by the computer further causes the computer to:

receive, from the user, a requested query fault tolerance for the plurality of queries.

12. The non-transitory computer readable storage medium according to claim 11 , further comprising instructions which when executed by the computer further causes the computer to:

determine the fault tolerance degree of the plurality of operators based on the received requested query fault tolerance.

13. A computer system for executing a plurality of queries, the computer system comprising:

a memory to store a program code; and

a processor communicatively coupled to the memory, the processor configured to execute the program code to:

receive the plurality of queries from a user, the plurality of queries including a plurality of operators;

based on the received plurality of queries, determine a fault tolerance degree for the plurality of operators, wherein determining the fault tolerance degree includes:

calculate a query outdegree for an operator from the plurality of operators by counting a number of the plurality of queries that include the operator from the plurality of operators, wherein the counted number of the plurality of queries is the query outdegree corresponding to the operator from the plurality of operators; and

determine the fault tolerance degree for the plurality of operators based on the calculated query outdegree;

based on the determined fault tolerance degree, assign a plurality of nodes to the one or more operators; and

execute the received plurality of queries by the assigned plurality of nodes.

14. The system of claim 13 , wherein the processor further executes the program code to:

simultaneously execute the plurality of operators by the assigned plurality of nodes.

15. The system of claim 13 , wherein the processor further executes the program code to:

determine a number of the plurality of nodes to be assigned to the plurality of operators based on the determined fault tolerance degree; and

based on the determined number of nodes, assign the plurality of nodes to the plurality of operators.

16. The system of claim 13 , wherein the processor further executes the program code to:

perform a multi-query optimization on the plurality of operators included in the received plurality of queries to obtain a query plan; and

determine the fault tolerance degree of the plurality of operators included in the query plan.

17. The system of claim 13 , wherein the processor further executes the program code to:

receive, from the user, a requested query fault tolerance for the plurality of queries.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 7, 2016
From: JERZAK, ZBIGNIEW; HEINZE, THOMAS
To: SAP AG
Reel/Frame 038836/0017 →
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →