Distributed Resource Allocation via Buckets and Wallets
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computing systems face inefficiencies in allocating limited resources such as memory and CPU cycles, as existing techniques do not effectively manage resource allocation across multiple processing units and threads, leading to potential shortages and bottlenecks.
Innovation Solution
The implementation of a resource management mechanism that utilizes 'buckets' and 'wallets' to store and distribute resource credits, allowing for load balancing by moving credits among processing units and threads, ensuring efficient allocation and addressing shortages by redistributing credits and blocking or unblocking threads as necessary.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If traditional resource allocation techniques are used in operating system kernels, then resource management is maintained, but resource allocation efficiency deteriorates due to bottlenecks and shortages across multiple processing units
Solution Approach 1:
The patent segments resource allocation by creating separate buckets for each processing unit and wallets for each thread, dividing the monolithic allocation system into distributed, independent units that can operate autonomously without centralized bottlenecks
Solution Approach 2:
The patent introduces a hierarchical dimension to resource allocation by organizing credits across multiple levels: system-wide buckets per processing unit, thread-specific wallets, and per-thread credits, enabling allocation decisions at different granularities simultaneously
2Adaptability or versatility
If resources are allocated to multiple processing units and threads, then system scalability is improved, but resource management complexity increases due to distribution and coordination requirements
Solution Approach 1:
The patent implements self-service resource allocation where threads autonomously acquire credits from their own wallets and buckets without requiring centralized coordination, allowing each processing unit to manage its own resources independently
Solution Approach 2:
The patent creates a universal credit-based allocation mechanism that works across all processing units and threads uniformly, with buckets and wallets serving multiple functions: tracking availability, enabling allocation, and facilitating load balancing
3Adaptability or versatility
If resource credits are distributed across buckets and wallets, then resource allocation flexibility is improved, but system overhead increases due to tracking and redistribution operations
Solution Approach 1:
The patent performs preliminary distribution of resource credits to buckets and wallets in advance, pre-positioning resources near where they will be needed, thereby reducing the overhead of real-time tracking and redistribution operations
Solution Approach 2:
The patent implements feedback mechanisms where threads signal when they have acquired or released credits, allowing the system to track resource allocation through decentralized updates rather than centralized monitoring
Data Source
AI summary
A device, system, and method are directed towards managing limited resources in a computer system with multiple processing units. Each processing unit has a corresponding bucket. Each thread executing on a processing unit has a corresponding wallet. Buckets and wallets contain credits corresponding to units of the limited resource. When a request for the resource is made, mechanisms of the invention attempt to fulfill the request by looking in a local wallet, a local bucket, or non-local buckets. In a resource shortage situation, credits may be moved to a primary bucket. A load balancing mechanism may distribute credits among buckets, or move credits from wallets to buckets.


