Facilitating handling of crashes in concurrent execution environments of server systems while processing user queries for data retrieval
First Claim
1. A method performed in a server system, said method comprising:
- receiving a user query from a client system;
forming physical queries from said user query, each physical query for retrieving a portion of data required to form response to said user query;
executing each of said physical queries in a corresponding concurrent execution entity of a plurality of execution entities to receive the respective portions of said data;
generating a response to said user query based on said respective portions if there is no occurrence of a crash during said executing;
sending said response to said client system if there is no occurrence of a crash during said executing;
during said executing, logging status of activities initiated for execution of the respective physical query in each concurrent execution entity to a log storage, wherein said status indicates whether performance of any of said activities is not completed, wherein said logging comprises;
maintaining a respective stack for each concurrent execution entity such that a first stack is maintained for a first concurrent execution entity of said plurality of execution entities;
adding a corresponding entry to said first stack upon initiation of each activity in said first concurrent execution entity, wherein each entry maintains a state information related to the corresponding activity, wherein said first stack includes a first entry corresponding to a first activity and a second entry corresponding to a second activity; and
removing said second entry from said first stack upon completion of said corresponding second activity,wherein unremoved entries in said first stack at said time instance correspond to the not yet completed activities in said first concurrent execution entity as of said time instance;
receiving an indication of occurrence of a crash of said first execution entity at a time instance during said executing; and
in response to said indication, providing content of each entry in said first stack to an administrator for debugging purpose as status with respect to activities not yet completed in said first execution entity until said time instance.
1 Assignment
0 Petitions
Accused Products
Abstract
A server system provided according to an aspect of the present disclosure forms physical queries to process a user query received from a client system. Each physical query is thereafter executed in a corresponding concurrent execution entity (e.g., thread) to retrieve a respective data portion from a corresponding data source. A response to the user query is formed based on the data portions. State information corresponding to each execution entity is logged into log storage. According to another aspect, when a query (either physical or user) causes an execution environment to crash, the identifier of such query is added to a prohibited list. When a new query is to be executed, the initiation of execution of the new query is prevented if the identifier of the new query is present in the prohibited list.
18 Citations
16 Claims
-
1. A method performed in a server system, said method comprising:
-
receiving a user query from a client system; forming physical queries from said user query, each physical query for retrieving a portion of data required to form response to said user query; executing each of said physical queries in a corresponding concurrent execution entity of a plurality of execution entities to receive the respective portions of said data; generating a response to said user query based on said respective portions if there is no occurrence of a crash during said executing; sending said response to said client system if there is no occurrence of a crash during said executing; during said executing, logging status of activities initiated for execution of the respective physical query in each concurrent execution entity to a log storage, wherein said status indicates whether performance of any of said activities is not completed, wherein said logging comprises; maintaining a respective stack for each concurrent execution entity such that a first stack is maintained for a first concurrent execution entity of said plurality of execution entities; adding a corresponding entry to said first stack upon initiation of each activity in said first concurrent execution entity, wherein each entry maintains a state information related to the corresponding activity, wherein said first stack includes a first entry corresponding to a first activity and a second entry corresponding to a second activity; and removing said second entry from said first stack upon completion of said corresponding second activity, wherein unremoved entries in said first stack at said time instance correspond to the not yet completed activities in said first concurrent execution entity as of said time instance; receiving an indication of occurrence of a crash of said first execution entity at a time instance during said executing; and in response to said indication, providing content of each entry in said first stack to an administrator for debugging purpose as status with respect to activities not yet completed in said first execution entity until said time instance. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A non-transitory machine readable medium storing one or more sequences of instructions for enabling a server system to facilitate handling of crashes, wherein execution of said one or more instructions by one or more processors contained in said server system enables said server system to perform the actions of:
-
receiving a user query from a client system; forming physical queries from said user query, each physical query for retrieving a portion of data required to form response to said user query; executing each of said physical queries in a corresponding concurrent execution entity of a plurality of execution entities to receive the respective portions of said data; generating a response to said user query based on said respective portions if there is no occurrence of a crash during said executing; sending said response to said client system if there is no occurrence of a crash during said executing; during said executing, logging status of activities initiated for execution of the respective physical query in each concurrent execution entity to a log storage, wherein said status indicates whether performance of any of said activities is not completed, wherein said logging comprises; maintaining a respective stack for each concurrent execution entity such that a first stack is maintained for a first concurrent execution entity of said plurality of execution entities; adding a corresponding entry to said first stack upon initiation of each activity in said first concurrent execution entity, wherein each entry maintains a state information related to the corresponding activity, wherein said first stack includes a first entry corresponding to a first activity and a second entry corresponding to a second activity; and removing said second entry from said first stack upon completion of said corresponding second activity, wherein unremoved entries in said first stack at said time instance correspond to the not yet completed activities in said first concurrent execution entity as of said time instance; receiving an indication of occurrence of a crash of said first execution entity at a time instance during said executing; and in response to said indication, providing content of each entry in said first stack to an administrator for debugging purpose as status with respect to activities not yet completed in said first execution entity until said time instance. - View Dependent Claims (7, 8, 9)
-
-
10. A server system comprising:
-
one or more random access memories (RAMs) to store instructions; one or more processing units to retrieve said instructions from said RAMs and execute the retrieved instructions, wherein execution of said instructions causes said server system to perform the actions of; receiving a user query from a client system; forming physical queries from said user query, each physical query for retrieving a portion of data required to form response to said user query; executing each of said physical queries in a corresponding concurrent execution entity of a plurality of execution entities to receive the respective portions of said data; generating a response to said user query based on said respective portions if there is no occurrence of a crash during said executing; sending said response to said client system if there is no occurrence of a crash during said executing; and during said executing, logging status of activities initiated for execution of the respective physical query in each concurrent execution entity to a log storage, wherein said status indicates whether performance of any of said activities is not completed, wherein said logging comprises; maintaining a respective stack for each concurrent execution entity such that a first stack is maintained for a first concurrent execution entity of said plurality of execution entities; adding a corresponding entry to said first stack upon initiation of each activity in said first concurrent execution entity, wherein each entry maintains a state information related to the corresponding activity, wherein said first stack includes a first entry corresponding to a first activity and a second entry corresponding to a second activity; and removing said second entry from said first stack upon completion of said corresponding second activity, wherein unremoved entries in said first stack at said time instance correspond to the not yet completed activities in said first concurrent execution entity as of said time instance; receiving an indication of occurrence of a crash of said first execution entity at a time instance during said executing; and in response to said indication, providing content of each entry in said first stack to an administrator for debugging purpose as status with respect to activities not yet completed in said first execution entity until said time instance. - View Dependent Claims (11, 12, 13)
-
-
14. A method of handling crashes, said method comprising:
-
identifying a set of queries that have caused an execution environment to crash before a first time instance; adding respective identifiers of said set of queries to a prohibited list, wherein said respective identifiers are in said prohibited list by said first time instance; receiving, after said first time instance, a second identifier of a potential query to be issued; determining whether said prohibited list contains said second identifier by comparing said second identifier with said respective identifiers in said prohibited list; preventing execution of said potential query if said prohibited list contains said second identifier.
-
-
15. A non-transitory machine readable medium storing one or more sequences of instructions for enabling a server system to facilitate handling of crashes, wherein execution of said one or more instructions by one or more processors contained in said server system enables said server system to perform the actions of:
-
identifying a set of queries that have caused an execution environment to crash before a first time instance; adding respective identifiers of said set of queries to a prohibited list, wherein said respective identifiers are in said prohibited list by said first time instance; receiving, after said first time instance, a second identifier of a potential query to be issued; determining whether said prohibited list contains said second identifier by comparing said second identifier with said respective identifiers in said prohibited list; preventing execution of said potential query if said prohibited list contains said second identifier.
-
-
16. A server system comprising:
-
one or more random access memories (RAMs) to store instructions; one or more processing units to retrieve said instructions from said RAMs and execute the retrieved instructions, wherein execution of said instructions causes said server system to perform the actions of; identifying a set of queries that have caused an execution environment to crash before a first time instance; adding respective identifiers of said set of queries to a prohibited list, wherein said respective identifiers are in said prohibited list by said first time instance; receiving, after said first time instance, a second identifier of a potential query to be issued; determining whether said prohibited list contains said second identifier by comparing said second identifier with said respective identifiers in said prohibited list; preventing execution of said potential query if said prohibited list contains said second identifier.
-
Specification