Patent ID: 8539464
Filing Date: 2013-09-17
Classification: G06F

Abstract:
1. A method of performing distributed just-in-time compilation, the method comprising: sending a first request message from a client platform to a dedicated compilation server via a network, the first request message requesting just-in-time compilation of a first bytecode sequence generated from a set of code for a source program executing on the client platform, the first request message including the first bytecode sequence and a first set of information describing the client platform, wherein the first request message is sent from a first slave just-in-time compiler running on the client platform, and the first slave just-in-time compiler is one of a plurality of slave just-in-time compilers registered with the dedicated compilation server; hashing a first entry for the first request message in a hash table managed by the first slave just-in-time compiler upon sending the first request message from the client platform to the dedicated compilation server; receiving the first request message within an asynchronous request message queue implemented within the dedicated compilation server; compiling the first bytecode sequence at the dedicated compilation server into a first set of machine code instructions executable by the client platform, wherein compiling the first bytecode sequence at the dedicated compilation server comprises triggering a master just-in-time compiler to process the first request message by performing a set of flow analysis and optimization operations on the first bytecode sequence to generate the first set of machine code instructions upon the first request message being retrieved from the front of the asynchronous request message queue by a queue manager implemented within the dedicated compilation server; storing the first set of machine code instructions in a repository managed by the dedicated compilation server; sending a first notification message indicating that the first set of machine code instructions are available from the dedicated compilation server to the client platform via the network, wherein sending the first notification message comprises publishing the first notification message to a respective subscriber queue managed by each of the slave just-in-time compilers registered with the dedicated compilation server; receiving the first notification message within the respective subscriber queue managed by the first slave just-in-time compiler; correlating the first set of machine code instructions with the first entry in the hash table upon the first notification message being retrieved from the front of the respective subscriber queue managed by the first slave just-in-time compiler; sending a second request message from the client platform to the dedicated compilation server via the network requesting the first set of machine code instructions; accessing the repository to send the first set of machine code instructions from the dedicated compilation server to the client platform; and storing the first set of machine code instructions in a cache data store managed by the slave just-in-time compiler.