Multi-tenant memory service for memory pool architectures
First Claim
1. A method of managing memory in a multi-tenant compute environment, comprisingproviding a memory resource pool;
- for a given workload, allocating memory resources from the memory resource pool to a set of processors;
organizing data for the given workload in the allocated memory resources according to a data structure; and
determining whether re-organization of the data in the data structure for the given workload would increase performance of the data structure or conserve memory used by the data structure; and
upon a determination that re-organization would increase performance or conserve memory, taking a given action to manage the data, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the allocated memory resources;
wherein data similarity or duplicates are detected by;
identifying data blocks that are common to multiple tenants or multiple processes;
upon identifying common data blocks, determining whether the common data blocks are stable according to a configurable threshold;
upon a determination that the common data blocks are stable, eliminating duplicate common data blocks;
associating an instance of the common data blocks as a shared common data block; and
providing the multiple tenants or multiple processes a pointer to the shared common data block.
1 Assignment
0 Petitions
Accused Products
Abstract
A memory management service occupies a configurable portion of an overall memory system in a disaggregate compute environment. The service provides optimized data organization capabilities over the pool of real memory accessible to the system. The service enables various types of data stores to be implemented in hardware, including at a data structure level. Storage capacity conservation is enabled through the creation and management of high-performance, re-usable data structure implementations across the memory pool, and then using analytics (e.g., multi-tenant similarity and duplicate detection) to determine when data organizations should be used. The service also may re-align memory to different data structures that may be more efficient given data usage and distribution patterns. The service also advantageously manages automated backups efficiently.
22 Citations
19 Claims
-
1. A method of managing memory in a multi-tenant compute environment, comprising
providing a memory resource pool; -
for a given workload, allocating memory resources from the memory resource pool to a set of processors; organizing data for the given workload in the allocated memory resources according to a data structure; and determining whether re-organization of the data in the data structure for the given workload would increase performance of the data structure or conserve memory used by the data structure; and upon a determination that re-organization would increase performance or conserve memory, taking a given action to manage the data, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the allocated memory resources; wherein data similarity or duplicates are detected by; identifying data blocks that are common to multiple tenants or multiple processes; upon identifying common data blocks, determining whether the common data blocks are stable according to a configurable threshold; upon a determination that the common data blocks are stable, eliminating duplicate common data blocks; associating an instance of the common data blocks as a shared common data block; and providing the multiple tenants or multiple processes a pointer to the shared common data block. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An apparatus of managing memory in a multi-tenant compute environment, comprising:
-
one or more hardware processors; computer memory holding computer program instructions executed by the hardware processors and operative to; organize a memory resource pool; for a given workload, allocate memory resources from the memory resource pool to a set of processors; organize data for the given workload in the allocated memory resources according to a data structure; and determine whether re-organization of the data in the data structure for the given workload would increase performance of the data structure or conserve memory used by the data structure; and upon a determination that re-organization would increase performance or conserve memory, take a given action to manage the data, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the allocated memory resources; wherein data similarity or duplicates are detected by; identifying data blocks that are common to multiple tenants or multiple processes; upon identifying common data blocks, determining whether the common data blocks are stable according to a configurable threshold; upon a determination that the common data blocks are stable, eliminating duplicate common data blocks; associating an instance of the common data blocks as a shared common data block; and providing the multiple tenants or multiple processes a pointer to the shared common data block. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. A computer program product in a non-transitory computer readable medium for use in a data processing system to manage memory in a multi-tenant compute environment, the computer program product holding computer program instructions executed in the data processing system and operative to:
-
organize a memory resource pool; for a given workload, allocate memory resources from the memory resource pool to a set of processors; organize data for the given workload in the allocated memory resources according to a data structure; and determine whether re-organization of the data in the data structure for the given workload would increase performance of the data structure or conserve memory used by the data structure; and upon a determination that re-organization would increase performance or conserve memory, take a given action to manage the data, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the allocated memory resources; wherein data similarity or duplicates are detected by; identifying data blocks that are common to multiple tenants or multiple processes; upon identifying common data blocks, determining whether the common data blocks are stable according to a configurable threshold; upon a determination that the common data blocks are stable, eliminating duplicate common data blocks; associating an instance of the common data blocks as a shared common data block; and providing the multiple tenants or multiple processes a pointer to the shared common data block. - View Dependent Claims (14, 15, 16, 17, 18)
-
-
19. A data center facility, comprising:
-
a memory pool; an optical interconnect; and a memory manager executing in a hardware element and operative to manage allocation of memory resources from the memory resource pool to a set of processors for multiple tenant workloads, to organize data for a given tenant workload according to a data structure, and to selectively re-organize the data in the data structure to increase performance of the data structure or reduce memory required to service the given tenant workload by taking a given action to manage the data, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from allocated memory resources, wherein data similarity or duplicates are detected by; identifying data blocks that are common to multiple tenants or multiple processes; upon identifying common data blocks, determining whether the common data blocks are stable according to a configurable threshold; upon a determination that the common data blocks are stable, eliminating duplicate common data blocks; associating an instance of the common data blocks as a shared common data block; and providing the multiple tenants or multiple processes a pointer to the shared common data block.
-
Specification