RPC Task Balancing Using Volatile Memory Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional Remote Procedure Call (RPC) frameworks face challenges with high volatile memory usage as data sets grow larger, leading to increased memory demands and network latency, which affects processing speed and efficiency.
Innovation Solution
An application management device with a volatile memory cache and non-volatile memory for task queues, utilizing a processor to assign tasks to engine task lists based on load balance, rebalancing tasks among engines to optimize resource usage and reduce memory requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If gRPC handles large data sets, worklists, and queues, then processing capability is improved, but volatile memory usage increases
Solution Approach 1:
The patent segments the task management system into multiple engine task lists distributed across different engines. Each engine maintains its own task list, dividing the overall task queue into manageable segments. This segmentation allows the system to handle large data sets without requiring all tasks to reside in a single volatile memory location, thereby reducing peak memory usage while maintaining processing capability.
Solution Approach 2:
The patent introduces a new dimension of task distribution by organizing tasks across multiple engines rather than in a single centralized queue. This dimensional shift from a single-dimension queue to a multi-dimensional engine task list structure enables the system to scale horizontally, processing large data sets by distributing the load across multiple processing units rather than increasing volatile memory capacity.
2Adaptability or versatility
If tasks are assigned to engines based on current load, then resource efficiency is improved, but system complexity increases
Solution Approach 1:
The patent implements a self-service mechanism where the application management device automatically monitors engine load and assigns tasks to the least loaded engine without requiring external intervention or complex centralized scheduling algorithms. Each engine reports its current task count, and the management device uses this information to make simple load-balancing decisions, achieving resource efficiency through automated self-monitoring rather than complex external control.
Solution Approach 2:
The system employs feedback mechanisms where engines report their current task load back to the application management device. The management device uses this feedback information to dynamically adjust task assignment decisions, assigning new tasks to engines with the lowest current load. This feedback loop enables adaptive resource efficiency while keeping the control logic relatively simple, as the decision-making is based on straightforward load count comparisons rather than complex optimization algorithms.
Data Source
AI summary
An application management system using Remote Procedure Call (RPC) frameworks can easily consume excessive amounts of memory or other resources. As described herein, tasks are allocated and balanced amongst engines using a small or fixed size of volatile memory. The memory used in such systems can balance tasks or jobs between different engines by allocating tasks between engine task lists. The complete details of those tasks are stored in queues in non-volatile memory. Tasks are allocated among the lists using a set of rules for new work, pinned work, work from disconnected engines, and reallocated work. The quantity of volatile memory and other resources necessary to manage the RPC framework is thereby reduced, or can even be handled within a size of volatile memory fixed by the user.


