Resource Instance Manager for Concurrent Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for managing access to shared computing resources using resource locks lead to inefficiencies, such as deadlocks, poor performance, and increased memory and processor overhead due to the need for threads to directly manage access and maintain exclusive locks for extended periods.

Innovation Solution

Implementing resource instance managers to represent shared resources as objects, where each resource instance manager manages access to a specific resource, allowing multiple processes to execute in parallel by enqueuing subcommands and ensuring only one subcommand modifies the resource state at a time, thereby preventing deadlocks and maintaining a consistent object state.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If resource locks are used to prevent concurrent access to shared resources, then data corruption is prevented, but system performance deteriorates due to underutilization of processing capacity

Engineering Contradiction:
Improvedata integrityVSAvoidsystem performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the resource access management by creating separate resource instance managers for different types of resources (e.g., file system manager for files, directory manager for directories). Each manager handles its own resource type independently, allowing concurrent access to different resource types while maintaining data integrity within each resource type.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces resource instance managers as intermediary components between processes and shared resources. These managers act as mediators that coordinate access to resources, preventing direct conflicting access while enabling efficient parallel processing through structured command queuing and state management.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If threads maintain exclusive access to resources for long execution periods, then resource consistency is ensured, but overall system performance deteriorates due to delayed other tasks

Engineering Contradiction:
Improveresource consistencyVSAvoidtask delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements dynamic resource instance managers that can be created and destroyed based on runtime needs. When a resource type is accessed, a corresponding manager is created; when no longer needed, it is destroyed. This dynamic allocation allows the system to adapt resource management capacity to actual workload patterns, reducing unnecessary overhead and improving responsiveness.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent uses command queues where access requests are enqueued before actual resource access occurs. The resource instance manager processes commands in sequence from the queue, allowing the system to prepare and organize access requests in advance, ensuring consistency while enabling overlapping processing of different resource types.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If resource locks are implemented to prevent concurrent access, then data corruption is avoided, but device complexity increases due to lock negotiation requirements

Engineering Contradiction:
Improvedata integrityVSAvoidaccess management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent creates universal resource instance manager classes that can handle multiple types of resources through type-specific implementations. The base manager class provides common functionality for command queuing, state management, and access coordination, while specific managers (file system manager, directory manager) inherit and specialize this behavior, reducing overall system complexity through code reuse and standardization.

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

Solution Approach 2:

The resource instance managers are self-managing components that automatically handle their own command queues, state consistency, and access coordination without requiring external lock management logic from calling threads. This self-service approach eliminates the complexity of manual lock acquisition, holding, and release operations that would otherwise be required.

Inventive Principle:
Principle #25Self-service

4Reliability

If multiple threads are maintained to manage shared resources, then resource access control is achieved, but memory and processor overhead increases

Engineering Contradiction:
Improveaccess controlVSAvoidmemory overhead
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent merges resource management functionality into unified resource instance managers that handle multiple operations (read, write, delete, etc.) on their associated resource types. Instead of having separate threads for each operation type, all access control for a given resource type is consolidated in a single manager, reducing the total number of threads required while maintaining comprehensive access control.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10146478B1Providing concurrent access to shared computing resources by interleaving commands and maintaining a consistent object state
Publication Date: 2018.12.04 EMC IP HLDG CO LLC
  • US10146478B1 patent drawing
  • US10146478B1 patent drawing
  • US10146478B1 patent drawing

AI summary

Techniques are disclosed for managing access to shared computing resources in a computing system which include representing resources as objects and managing access to those objects using the construct of a resource instance manager. A set of resource instance managers respond to all commands requesting access to a set of respective shared resources. Access to each shared resource is managed by a unique resource instance manager for that resource which maintains a consistent state for that shared resource. When commands are designed according to an appropriate model and processed by a set of resource instance managers disclosed herein, multiple processes may execute in parallel without causing deadlocks or introducing data corruption.