Software virtual machine for acceleration of transactional data processing
First Claim
1. A device comprising:
- a multi-core hardware processor having a plurality of execution cores;
a plurality of virtual machines that each operate in accordance with a virtual instruction set, wherein each of the virtual machines executes on a corresponding one of the execution cores;
an in-memory database comprising different portions of data each stored within a different one of a plurality of memory partitions, wherein each of the memory partitions is associated with a different one of the execution cores; and
a plurality of tasks that execute on the virtual machines to decompose an incoming transaction for the in-memory database into sub-transactions that each modify respective portions of the data stored by the memory partitions, deploy the sub-transactions to the execution cores associated with the respective memory partitions that store the respective portions of the data to be modified by the sub-transactions, and concurrently execute the sub-transactions of the incoming transaction on the respective execution cores to which the sub-transactions are deployed,wherein each virtual machine of the virtual machines includes, for the corresponding execution core, a scheduler that manages a separate run list data structure that stores references to tasks of the plurality of tasks that are scheduled for execution by the corresponding execution core and also manages a separate cross-queue data structure that stores references to tasks migrated to the virtual machine by tasks executing on other virtual machines of the virtual machines.
8 Assignments
0 Petitions
Accused Products
Abstract
In general, this disclosure is directed to a software virtual machine that provides high-performance transactional data acceleration optimized for multi-core computing platforms. The virtual machine utilizes an underlying parallelization engine that seeks to maximize the efficiencies of multi-core computing platforms to provide a highly scalable, high performance (lowest latency), virtual machine. In some embodiments, the virtual machine may be viewed as an in-memory virtual machine with an ability in its operational state to self organize and self seek, in real time, available memory work boundaries to automatically optimize maximum available throughput for data processing acceleration and content delivery of massive amounts of data.
-
Citations
26 Claims
-
1. A device comprising:
-
a multi-core hardware processor having a plurality of execution cores; a plurality of virtual machines that each operate in accordance with a virtual instruction set, wherein each of the virtual machines executes on a corresponding one of the execution cores; an in-memory database comprising different portions of data each stored within a different one of a plurality of memory partitions, wherein each of the memory partitions is associated with a different one of the execution cores; and a plurality of tasks that execute on the virtual machines to decompose an incoming transaction for the in-memory database into sub-transactions that each modify respective portions of the data stored by the memory partitions, deploy the sub-transactions to the execution cores associated with the respective memory partitions that store the respective portions of the data to be modified by the sub-transactions, and concurrently execute the sub-transactions of the incoming transaction on the respective execution cores to which the sub-transactions are deployed, wherein each virtual machine of the virtual machines includes, for the corresponding execution core, a scheduler that manages a separate run list data structure that stores references to tasks of the plurality of tasks that are scheduled for execution by the corresponding execution core and also manages a separate cross-queue data structure that stores references to tasks migrated to the virtual machine by tasks executing on other virtual machines of the virtual machines. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method comprising:
-
executing a plurality of virtual machines that each operate in accordance with a virtual instruction set, wherein each of the virtual machines executes on a different corresponding one of a plurality of execution cores of a multi-core hardware processor of a computing device; associating a different one of the execution cores with each of a plurality of memory partitions, wherein each of the memory partitions stores a different portion of data for an in-memory database; and executing a plurality of tasks with the virtual machines, wherein the plurality of tasks decompose an incoming transaction for the in-memory database into sub-transactions that each modify respective portions of the data stored by the memory partitions, deploy the sub-transactions to the execution cores associated with the respective memory partitions that store the respective portions of the data to be modified by the sub-transactions, and concurrently execute the sub-transactions of the incoming transaction on the respective execution cores to which the sub-transactions are deployed, wherein each virtual machine of the virtual machines includes, for the corresponding execution core, a scheduler that manages a separate run list data structure that stores references to tasks of the plurality of tasks that are scheduled for execution by the corresponding execution core and also manages a separate cross-queue data structure that stores references to tasks migrated to the virtual machine by tasks executing on other virtual machines of the virtual machines. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer-readable storage device comprising instructions that, when executed, cause a multi-core hardware processor having a plurality of execution cores to:
-
execute a plurality of virtual machines that each operate in accordance with a virtual instruction set, wherein each of the virtual machines executes on a corresponding one of the plurality of execution cores; associate a different one of the execution cores with each of a plurality of memory partitions, wherein each of the memory partitions stores a different portion of data for an in-memory database; and execute a plurality of tasks with the virtual machines, wherein the plurality of tasks decompose an incoming transaction for the in-memory database into sub-transactions that each modify respective portions of the data stored by respective memory partitions, deploy the sub-transactions to the execution cores associated with the respective memory partitions that store the respective portions of the data to be modified by the sub-transactions, and concurrently execute the sub-transactions of the incoming transaction on the respective execution cores to which the sub-transactions are deployed, wherein each virtual machine of the virtual machines includes, for the corresponding execution core, a scheduler that manages a separate run list data structure that stores references to tasks of the plurality of tasks that are scheduled for execution by the corresponding execution core and also manages a separate cross-queue data structure that stores references to tasks migrated to the virtual machine by tasks executing on other virtual machines of the virtual machines.
-
Specification