Resource Instance Manager for Concurrent Shared Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional methods for managing concurrent access to shared computing resources face issues such as poor system performance due to resource locks, deadlocks, and inadequate fault tolerance, particularly in scenarios involving multiple processes modifying shared resources simultaneously.
Innovation Solution
The approach involves representing resources as objects and using resource instance managers to manage access, where each resource instance manager enqueues subcommands and allows only one subcommand to execute at a time, maintaining a consistent object state and recording changes for automatic fault tolerance through a system state history.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If resource locks are used to prevent multiple processes from modifying shared resources simultaneously, then data consistency is improved, but system performance deteriorates due to underutilized processing capacity
Solution Approach 1:
The patent segments the resource access control mechanism into fine-grained locks at the data structure level rather than coarse-grained process-level locks. This allows multiple processes to access different segments of shared resources simultaneously, improving system performance while maintaining data consistency through targeted locking only where necessary.
Solution Approach 2:
The patent introduces an intermediary layer (the locking mechanism operating on data structures) between processes and shared resources. This intermediary manages access control transparently, allowing processes to execute concurrently without direct negotiation, thus improving performance while ensuring consistency through automated lock management.
2Ease of operation
If resource locks are held for the entire execution period of a long-running thread, then resource access control is simplified, but system performance deteriorates due to delayed other tasks
Solution Approach 1:
The patent divides resource access into segmented operations where locks are acquired and released at specific data structure boundaries rather than held for entire thread execution. This allows long-running threads to release and reacquire locks as needed, enabling other tasks to execute in between critical sections while maintaining simplified control through structured access patterns.
Solution Approach 2:
The patent implements periodic lock acquisition and release cycles within thread execution, where locks are held only during necessary critical sections rather than continuously. This periodic pattern allows other tasks to access resources during non-critical periods, improving system performance while maintaining ease of operation through structured access control.
3Device complexity
If conventional resource locking mechanisms are used, then process control is simplified, but fault tolerance deteriorates due to inability to track system state and recover from failures
Solution Approach 1:
The patent incorporates feedback mechanisms that track the state of locked resources and lock holders. This feedback system monitors which processes hold which locks and on which data structures, enabling the system to detect failures, identify affected resources, and coordinate recovery actions while maintaining simplified process control through automated state tracking.
Solution Approach 2:
The patent implements preliminary logging and state recording of resource access patterns and lock holdings before failures occur. This preliminary action creates a record of system state that can be used for recovery, allowing the system to reconstruct lost information and restore consistency after failures without complicating normal process control.
4Productivity
If multiple processes attempt to modify shared files simultaneously without coordination, then system performance is improved through parallel processing, but data consistency deteriorates
Solution Approach 1:
The patent segments shared resources into smaller data structures with individual locks, allowing multiple processes to modify different segments simultaneously. This segmentation enables parallel processing of non-conflicting operations while maintaining data consistency through targeted locking only on specific data structures being modified, rather than requiring exclusive access to entire files.
Data Source
AI summary
Techniques are disclosed for provided automatic fault tolerance in data storage systems and other computer systems managing access to shared computing resources using the construct of a resource instance manager together with an architecture for designing and implementing task-oriented state-based commands for accessing the shared computing resources. 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 appropriately, the system can be restored using a system state history maintained transparently by a system-provided application program interface.


