Dynamic Memory Threshold Allocation for Thread Concurrency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
High concurrency of execution threads in shared memory systems often leads to memory pool shortages, causing performance degradation and job failures due to inefficient memory allocation and long memory locks, especially during peak usage hours.
Innovation Solution
A dynamically changing memory threshold is calculated using a trained machine learning model, allowing for proactive redistribution of shared memory among threads, with the model predicting optimal threshold values based on historical data and workload attributes to manage memory allocation effectively.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If shared memory is allocated to multiple execution threads simultaneously, then system productivity increases, but memory pool shortage occurs causing performance degradation and job failures
Solution Approach 1:
The patent implements dynamic memory threshold adjustment based on system conditions. The memory threshold is not fixed but changes dynamically according to workload characteristics, allowing the system to adapt memory allocation to current demands. This resolves the contradiction by enabling high productivity when resources are available while preventing job failures when memory is constrained.
Solution Approach 2:
The patent changes the memory allocation parameter (threshold) based on system state. By adjusting the memory threshold parameter dynamically, the system can accommodate more threads when memory is abundant while maintaining stability when memory is constrained, thus resolving the contradiction between productivity and reliability.
2Adaptability or versatility
If memory threshold is increased to allow more threads, then concurrency improves, but memory exhaustion occurs leading to system instability
Solution Approach 1:
The patent employs feedback mechanisms where the system monitors memory usage and thread behavior, then adjusts the memory threshold accordingly. This feedback loop allows the system to maintain high concurrency when conditions permit while preventing memory exhaustion, thus resolving the contradiction between adaptability and stability.
Solution Approach 2:
The memory threshold is made dynamic rather than static, allowing the system to adjust concurrency limits based on real-time conditions. This dynamic adjustment enables the system to be adaptable to varying workloads while maintaining stability through controlled resource allocation.
3Device complexity
If fixed memory allocation is used, then system simplicity is maintained, but performance degradation occurs during peak usage hours
Solution Approach 1:
The patent transitions from fixed to dynamic memory allocation, where the memory threshold adjusts based on system conditions. This dynamic approach improves productivity during peak usage by allocating more memory when available, while maintaining relatively simple management through automated threshold adjustment based on observable system parameters.
4Speed
If memory is allocated aggressively to new threads, then responsiveness improves, but existing threads experience memory locks and performance degradation
Solution Approach 1:
The patent uses dynamic threshold adjustment to balance new thread allocation with existing thread performance. By adjusting the memory threshold based on current usage patterns, the system can quickly allocate memory to new threads when resources are available while preventing memory locks when the system is under heavy load, thus resolving the contradiction between responsiveness and time loss.
Data Source
AI summary
A method, computer program product, and computer system for dynamically allocating shared memory among multiple execution threads via use of a dynamically changing memory threshold. A trained machine learning model (MLM) is executed to calculate the memory threshold (MTH) using values of one or more input parameters as input to the MLM. After executing the MLM, a request is received from a requesting execution thread for a requested amount (MR) of the shared memory. In response to the request, the shared memory is distributed among one or more current execution threads currently using the shared memory and the requesting execution thread. The redistributing is performed as a function MTH, MR, MU, and MC, wherein MU is a total amount of the shared memory currently being used by the one or more current execution threads, and wherein MC is a memory capacity of the shared memory.


