Distributed Resource Allocation via Buckets and Wallets

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveresource allocation efficiencyVSAvoidallocation time
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

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

Engineering Contradiction:
Improvesystem scalabilityVSAvoidresource management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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

Inventive Principle:
Principle #25Self-service

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

Inventive Principle:
Principle #6Universality (Multi-functionality)

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

Engineering Contradiction:
Improveallocation flexibilityVSAvoidsystem overhead
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS8127295B1Scalable resource allocation
Publication Date: 2012.02.28 ORACLE AMERICAN INC
  • US8127295B1 patent drawing
  • US8127295B1 patent drawing
  • US8127295B1 patent drawing

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.