Apparatus and method for efficient, coordinated, distributed execution
AssigneeBloomberg Finance L.P.
InventorHendrik Brower
Life of this patent
Estimating the term…
Abstract
The present disclosure describes a system and method for efficient, coordinated, distributed execution. Processes are registered into a process registry which includes a table or list of processes. Processes which are determined to be no longer running are removed from the registry. Each process is configured to send a broadcast when it starts or stops. Each process periodically reads the registry, sorts the list, and uses it to determine the current master process based on an algorithm.
Claims17
A method of distributed execution of one or more computational tasks by a plurality of processes, the method comprising:
- creating and storing, on a server computer, a process registry, said process registry comprising a table;
- registering each process of the plurality of processes in the process registry by storing at least unique identifiers corresponding to the plurality of processes in the table;
- transmitting a copy of the process registry to each process of the plurality of processes such that each process of the plurality of processes maintains a local copy of the process registry, wherein each process periodically transmits to the server computer and to each process of the plurality of processes a message indicating a status of the process;
- updating the process registry stored on the server computer in response to the received message;
- and
- removing a process from the registry if it is determined that the process is no longer running wherein each process of the plurality of processes is configured to periodically read the process registry stored on the server computer, and in response to determining that the process has been removed from the registry, select, using an algorithm, a master process from the plurality of processes, wherein the algorithm is:
- master process index=[((time+offset)/rotate period) % no. of processes].
A non-transitory computer readable medium having executable code stored thereon, that when executed, causes a computing device to perform a method of distributed execution of one or more computational tasks by a plurality of processes, the method comprising:
- creating and storing, on a server computer, a process registry, said process registry comprising a table;
- registering each process of the plurality of processes in the process registry by storing at least unique identifiers corresponding to the plurality of processes in the table;
- transmitting a copy of the process registry to each process of the plurality of processes such that each process of the plurality of processes maintains a local copy of the process registry, wherein each process periodically transmits to the server computer and to each process of the plurality of processes a message indicating a status of the process;
- updating the process registry stored on the server computer in response to the received message;
- and
- removing a process from the registry if it is determined that the process is no longer running wherein each process of the plurality of processes is configured to periodically read the process registry stored on the server computer, and in response to determining that the process has been removed from the registry, select, using an algorithm, a master process from the plurality of processes, wherein the algorithm is:
- master process index=[((time+offset)/rotate period) % no. of processes].
A system comprising:
- a server computer comprising:
- a processor configured for:
- creating and storing, on a server computer, a process registry, said process registry comprising a table;
- registering each process of the plurality of processes in the process registry by storing at least unique identifiers corresponding to the plurality of processes in the table;
- transmitting a copy of the process registry to each process of the plurality of processes such that each process of the plurality of processes maintains a local copy of the process registry, wherein each process periodically transmits to the server computer and to each process of the plurality of processes a message indicating a status of the process;
- updating the process registry stored on the server computer in response to the received message;
- and
- removing a process from the registry if it is determined that the process is no longer running wherein each process of the plurality of processes is configured to periodically read the process registry stored on the server computer, and in response to determining that the process has been removed from the registry, select, using an algorithm, a master process from the plurality of processes, wherein the algorithm is:
- master process index=[((time+offset)/rotate period) % no. of processes].
Dependencies are inferred from the claim text.