In-Memory Distributed Cache Dynamic RAM Allocation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed storage systems face inefficiencies in utilizing storage resources, as caches often leave unused RAM idle, affecting cache durability and computational performance due to underutilization of computing resources.
Innovation Solution
Implementing an in-memory distributed cache system that dynamically manages RAM by allowing write requests based on client permissions, data availability, and RAM thresholds, allocating and deallocating memory blocks to optimize storage resource utilization and ensure predictable low latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If RAM is allocated to cache in distributed storage systems, then cache durability and computational performance are improved, but storage resource utilization becomes inefficient due to idle unused RAM
Solution Approach 1:
The patent implements dynamic memory allocation where the cache manager continuously monitors RAM usage and adjusts cache allocation based on current system conditions. When RAM becomes available, the system dynamically allocates it to cache; when RAM is needed for other operations, the system dynamically deallocates cache memory. This dynamic approach resolves the contradiction by making cache memory flexible rather than static, improving both reliability through adequate caching and resource utilization through adaptive reallocation.
Solution Approach 2:
The system changes the parameter of memory allocation from fixed to variable based on system state. The cache manager modifies memory allocation parameters in real-time, increasing cache size when resources are abundant and decreasing it when resources are constrained. This parameter change enables the system to maintain high cache durability when possible while optimizing storage resource utilization when needed.
2Productivity
If RAM is allocated to cache, then computational performance is improved, but unused RAM remains idle affecting resource utilization
Solution Approach 1:
The patent implements a feedback mechanism where the cache manager continuously monitors system state including available RAM, cache hit ratios, and computational workload. Based on this feedback, the system adjusts cache allocation to optimize computational performance while preventing idle RAM from remaining unused. The feedback loop ensures that when computational performance benefits from caching, memory is allocated; when performance can be maintained with less memory, RAM is freed for other uses.
3Quantity of substance
If the system allows write requests based on multiple conditions (client permission, data availability, RAM thresholds), then resource allocation efficiency is improved, but system complexity increases
Solution Approach 1:
The patent introduces a cache manager as an intermediary component that handles the complexity of multi-condition write request evaluation. Rather than having the distributed file system directly handle complex allocation decisions, the cache manager acts as a mediator that receives write requests, evaluates all conditions (client permission, data availability, RAM thresholds), and makes allocation decisions. This intermediary approach improves resource allocation efficiency through systematic condition checking while containing system complexity within a dedicated management component.
Data Source
AI summary
A method for an in-memory distributed cache includes receiving a write request from a client device to write a block of client data in random access memory (RAM) of a memory host and determining whether to allow the write request by determining whether the client device has permission to write the block of client data at the memory host, determining whether the block of client data is currently saved at the memory host, and determining whether a free block of RAM is available. When the client device has permission to write the block of client data at the memory host, the block of client data is not currently saved at the memory host, and a free block of RAM is available, the write request is allowed and the client is allowed to write the block of client data to the free block of RAM.


