Method for tuning global memory in a distributed system
Publication Date: 2017-Jul-14
The IP.com Prior Art Database
Method for Tuning Global Memory in a Distributed System
This disclosure provides a solution to a problem of tuning global memory in a distributed system that is comprised of:
· The local systems/members: a set of systems performing independent memory tuning tasks based on the workload being run in each (i.e., the local memory tuners) and
· The global system, or cluster caching facility (CF): a central system that is common to all the local systems and provides services to each; it also needs to perform its own memory tuning.
Figure 1: Distributed system
Each of the local systems comprises many memory consumers that may be present in one or more of these local systems. In each local system, each of the memory consumers comes and goes based on user needs. The local memory tuners determine the amount of memory to give to each active memory consumer based on the relative need for memory on each consumer locally and the available memory in the local system for all the consumers. The memory in the local systems can be categorized as:
· Functional memory: required to perform an operation, or
· Performance memory: if not present, results in a performance degradation; relative need of performance memory between the different consumers in the local system may be measured using simulation techniques to determine the benefit each additional page of memory gives to each consumer based on the saved operations (e.g., input/output, network, and/or CPU processing) that having that additional memory provides
Consumers of local memory also consume global memory, which creates a dependency. An example of this is when the memory in the local systems is used for caching data that is used locally (e.g., a data pages cache), and the memory used in the global system is used to cache the common data used by all the local systems for each memory consumer.
Figure 2: Memory relationships and dependency
The memory consumed on the global system can also be categorized in functional memory and performance memory. This discussion assumes that each memory consumer falls into one of these two categories but not both; however, memory consumers usually have a portion dedicated to functional needs and the remainder is dedicated to improving the performance of the consumers.
In the case of a distributed system like that described, regarding functional memory, for each element in the memory in the local system, there must be an associated element in the global system's memory. In an existing application, these two objects are not necessarily of the same size. With performance memory, the existence of a copy of an object in the global system's memory allows the local system, for example, to not have to perform an expensive disk read to get access to it; it can read from the global system's memory, resulting in a much faster access to the data piece. In the same way, an object in the global system's memory that needs to be replaced by another object because both objects d...