Resource management systems and methods
Example resource management systems and methods are described. In one implementation, a processing device is to: provide a plurality of virtual processors, each virtual processor comprising a cache memory to cache a portion of database data accessed from a storage platform; receive a query referencing the database data stored in the storage platform; determine at least one task to process the received query; and allocate the at least one task to a subset of the plurality of virtual processors to process the at least one task. The allocation may be based at least in part on the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors.
1. A system comprising:
a memory; and
a processing device operatively coupled to the memory, the processing device to:
provide a plurality of virtual processors, each virtual processor comprising a cache memory to cache a portion of database data accessed from a storage platform and processing resources to process a portion of a database query;
receive a query referencing the database data stored in the storage platform;
determine at least one task to process the received query; and
allocate, by the processing device, the at least one task to a subset of the plurality of virtual processors to process the at least one task, wherein the allocation is based at least in part on the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors and the processing resources that are available at the subset of the plurality of virtual processors for the at least one task.
2. The system of claim 1 , wherein the storage platform comprises a plurality of storage devices, and
wherein each of the plurality of virtual processors are operatively coupled to a subset of the plurality of storage devices.
3. The system of claim 1 , wherein the processing device is further to determine the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors.
4. The system of claim 1 , wherein the at least one task comprises a first task and a second task, and
wherein the processing device is further to:
allocate the first task of the query to a first virtual processor of the plurality of virtual processors responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first virtual processor; and
allocate the second task of the query to a second virtual processor of the plurality of virtual processors responsive to determining that the second task references a second portion of the database data that is stored in the cache of the second virtual processor.
5. The system of claim 4 , wherein the processing device is further to receive a task result from each of the first task and the second task and to create a statement result from the task results in response to the query.
6. The system of claim 4 , wherein the first portion of the database data and the second portion of the database data comprise a same portion of the database data, and
wherein the first task and the second task are to concurrently process the same portion of the database data on the first and the second virtual processor.
7. A method comprising:
providing a plurality of virtual processors, each virtual processor comprising a cache memory to cache a portion of database data accessed from a storage platform and processing resources to process a portion of a database query;
receiving a query referencing the database data stored in the storage platform;
determining at least one task to process the received query; and
allocating, by a processing device, the at least one task to a subset of the plurality of virtual processors to process the at least one task, wherein the allocating is based at least in part on the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors and the processing resources that are available at the subset of the plurality of virtual processors for the at least one task.
8. The method of claim 7 , wherein the storage platform comprises a plurality of storage devices, and
wherein each of the plurality of virtual processors are operatively coupled to a subset of the plurality of storage devices.
9. The method of claim 7 , further comprising determining the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors.
10. The method of claim 7 , wherein the at least one task comprises a first task and a second task, and
wherein method further comprises:
allocating the first task of the query to a first virtual processor of the plurality of virtual processors responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first virtual processor; and
allocating the second task of the query to a second virtual processor of the plurality of virtual processors responsive to determining that the second task references a second portion of the database data that is stored in the cache of the second virtual processor.
11. The method of claim 10 , wherein the method further comprises receiving a task result from each of the first task and the second task and to create a statement result from the task results in response to the query.
12. The method of claim 10 , wherein the first portion of the database data and the second portion of the database data comprise a same portion of the database data, and
wherein the first task and the second task are to concurrently process the same portion of the database data on the first and the second virtual processor.
13. A non-transitory computer-readable medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:
provide a plurality of virtual processors, each virtual processor comprising a cache memory to cache a portion of database data accessed from a storage platform and processing resources to process a portion of a database query;
receive a query referencing the database data stored in the storage platform;
determine at least one task to process the received query; and
allocate, by the processing device, the at least one task to a subset of the plurality of virtual processors to process the at least one task, wherein the allocation is based at least in part on the respective portions of the database data that are cached within the respective cache memories of the subset of the plurality of virtual processors and the processing resources that are available at the subset of the plurality of virtual processors for the at least one task.
14. The non-transitory computer-readable medium of claim 13 , wherein the storage platform comprises a plurality of storage devices, and
wherein each of the plurality of virtual processors are operatively coupled to a subset of the plurality of storage devices.
15. The non-transitory computer-readable medium of claim 13 , wherein the at least one task comprises a first task and a second task, and
wherein the processing device is further to:
allocate the first task of the query to a first virtual processor of the plurality of virtual processors responsive to determining that the first task references a first portion of the database data that is stored in the cache of the first virtual processor; and
allocate the second task of the query to a second virtual processor of the plurality of virtual processors responsive to determining that the second task references a second portion of the database data that is stored in the cache of the second virtual processor.
16. The non-transitory computer-readable medium of claim 15 , wherein the processing device is further to receive a task result from each of the first task and the second task and to create a statement result from the task results in response to the query.
17. The non-transitory computer-readable medium of claim 15 , wherein the first portion of the database data and the second portion of the database data comprise a same portion of the database data, and
wherein the first task and the second task are to concurrently process the same portion of the database data on the first and the second virtual processor.