Programming model and interpreted runtime environment for high performance services with implicit concurrency control
AssigneeBasal Nuclei Inc
InventorAhmet Salih Iscen
Life of this patent
Estimating the term…
Abstract
Disclosed is a programming model utilized for the definition of services to be operated on large sets of data with numerous responsibilities, the programming model comprising program units in a tree topology for high performance and implicit concurrency control, where each program unit definition comprises responsibilities defined in behaviors and configurations. A runtime environment may be utilized to provide implicit concurrency, parallelization, and concurrency control for operations executed on program unit instances.
Claims24
A method of computing to provide implicit concurrency control, comprising:
- within a runtime environment process, scheduling a task on a thread to execute an operation based on a priority on a program unit instance (PUI) of a program unit definition (PUD);
- enqueueing the task into a task stream of the thread, wherein the PUI comprises an identifier, wherein the task stream comprises a flag, the identifier of the PUI, and a queue of tasks in a priority order each comprising the identifier of the PUI, and wherein the flag is set to “true” to mark the task stream as blocked, and set to “false” to mark the task stream as unblocked;
- prioritizing the tasks located at the head of the queue of tasks of the task streams marked as unblocked in the thread;
- and
- dequeuing and executing a highest priority task in the thread,
- wherein executing the highest priority task in the thread includes:
- applying a concurrency control algorithm corresponding to a concurrency control type of the PUD for the operation to determine whether to set the flag value of one or more task streams to “true”;
- executing the operation on the PUI;
- and
- applying the concurrency control algorithm to determine whether to set the flag value of one or more task streams to “false”.
An apparatus to provide implicit concurrency control within a runtime environment process, comprising:
- at least one memory;
- and
- at least one processor,
- the at least one processor to:
- schedule a task on a thread to execute an operation based on a priority on a program unit instance (PUI) of a program unit definition (PUD);
- enqueue the task into a task stream of the thread, wherein the PUI includes an identifier, wherein the task stream includes a flag, the identifier of the PUI, and a queue of tasks in a priority order each comprising the identifier of the PUI, and wherein the flag is set to “true” to mark the task stream as blocked, and set to “false” to mark the task stream as unblocked;
- prioritize the tasks located at the head of the queue of tasks of the task streams marked as unblocked in the thread;
- and
- dequeue and execute a highest priority task in the thread,
- wherein to execute the highest priority task in the thread includes to:
- apply a concurrency control algorithm corresponding to a concurrency
- control type of the PUD for the operation to determine whether to set the flag value of one or more task streams to “true”;
- execute the operation on the PUI;
- and
- apply the concurrency control algorithm to determine whether to set the flag value of one or more task streams to “false”.
A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to provide implicit concurrency control to executions of operations over program unit instances of program unit definitions, including to:
- within a runtime environment process, schedule a task on a thread to execute an operation based on a priority on a program unit instance (PUI) of a program unit definition (PUD);
- enqueue the task into a task stream of the thread, wherein the PUI includes an identifier, wherein the task stream includes a flag, the identifier of the PUI, and a queue of tasks in a priority order each comprising the identifier of the PUI, and wherein the flag is set to “true” to mark the task stream as blocked, and set to “false” to mark the task stream as unblocked;
- prioritize the tasks located at the head of the queue of tasks of the task streams marked as unblocked in the thread;
- and
- dequeue and execute a highest priority task in the thread,
- wherein to execute the highest priority task in the thread includes:
- apply a concurrency control algorithm corresponding to a concurrency control type of the PUD for the operation to determine
- whether to set the flag value of one or more task streams to “true”;
- execute the operation on the PUI;
- and
- apply the concurrency control algorithm to determine whether to set the flag value of one or more task streams to “false”.
Dependencies are inferred from the claim text.