| CPC G06F 9/5044 (2013.01) [G06F 9/5083 (2013.01)] | 20 Claims |

|
1. An apparatus comprising:
at least one compute node configured to manage access to an array of non-volatile drives, the at least one compute node comprising at least one multi-core processor with a first set of cores that are allocated to an input-output (IO) services emulation module running on the compute node, a second set of cores that are allocated to a frontend emulation module running on the compute node, and a third set of cores that are allocated to a backend emulation module running on the compute node;
the IO services emulation module configured to monitor utilization of the first set of cores by the IO services emulation module and donate processing resources to a shared pool responsive to the first set of cores being underutilized by the IO services emulation module;
the frontend emulation module configured to monitor utilization of the second set of cores by the frontend emulation module and donate processing resources to the shared pool responsive to the second set of cores being underutilized by the frontend emulation module;
the backend emulation module configured to monitor utilization of the third set of cores by the backend emulation module and donate processing resources to the shared pool responsive to the third set of cores being underutilized by the backend emulation module;
the processing resources donated to the shared pool being accessible to the IO services emulation module, the frontend emulation module, and the backend emulation module for running threads.
|