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, wherein the data structure is a construct implemented to organize the data and is distinct from the data; 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 structure, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the data structure.
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.
-
Citations
21 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, wherein the data structure is a construct implemented to organize the data and is distinct from the data; 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 structure, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the data structure. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. 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, wherein the data structure is a construct implemented to organize the data and is distinct from the data; 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 structure, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the data structure. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. 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, wherein the data structure is a construct implemented to organize the data and is distinct from the data; 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 structure, wherein the given action detects data similarity or duplicates and, in response thereto, eliminates given data from the data structure. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification