1. A method for extracting data from at least one graph database according to a query request, said method comprising: receiving an abstraction program including a plurality of parallel algorithms for a query request at a router; generating, employing a worklist scheduler, a prioritized plurality of parallel threads for running said query request from said plurality of parallel algorithms; running, employing a processing unit, multiple threads selected from said prioritized plurality of parallel threads; routing a thread that requires an input/output operation to an input/output unit configured to communicate with a graph database on which said query request operates stopping execution of a thread that encounters a push operation prior to routing said thread that encounters said push operation to said worklist scheduler; and employing said worklist scheduler, adding an instruction to a target thread of said push operation for implementing said push operation.