US 9,811,558 B1
Apparatus and method for parallel processing of a query
Florian Michael Waas, San Francisco, CA (US)
Assigned to Pivotal Software, Inc., San Francisco, CA (US)
Filed by Pivotal Software, Inc., Palo Alto, CA (US)
Filed on Dec. 17, 2015, as Appl. No. 14/973,615.
Application 14/973,615 is a continuation of application No. 12/347,728, filed on Dec. 31, 2008, granted, now 9,218,209.
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 17/30 (2006.01); G06F 9/52 (2006.01)
CPC G06F 17/30445 (2013.01) [G06F 9/52 (2013.01); G06F 17/30463 (2013.01); G06F 17/30958 (2013.01)] 18 Claims
OG exemplary drawing
 
1. A system, comprising:
one or more processors; and
a non-transitory computer readable storage medium storing executable instructions operable to cause the processor to perform operations comprising:
adding, to a scheduler, or more jobs for processing by the one or more processors;
marking a job among the one or more jobs that is ready to be assigned to a thread for execution as a job in a runnable state;
assigning the job in the runnable state to a running state upon assigning the job to a first thread, wherein, in the running state, the job is being executed by the first thread and is prohibited from being assigned to another thread;
adding, to the scheduler, one or more dependent jobs for processing by the one or more processors, wherein the job in the running state can complete execution only after the one or more dependent jobs complete execution;
upon adding the one or more dependent jobs, assigning the job in the running state to an inactive state, wherein, in the inactive state, the job waits for the one or more dependent jobs to be completed;
upon completion of each of the dependent jobs:
assigning the job in the inactive state to the runnable state for a second time, and then
designating the job in the runnable state for the second time for execution; and
upon finishing executing the job, assigning the job to a finalized state, wherein the job in the finalized state is allowed to be discarded.