Concurrent Object Cache Reference Counting via Copying
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In distributed computing systems with concurrent access to shared resources, existing methods for updating reference counts and managing object types lead to concurrency errors and inefficiencies, as they require exclusive locking of objects, causing delays and overhead in session management.
Innovation Solution
Implementing a status indicator and reference counting mechanism that allows concurrent access by using a session reference count and subtype reference count, enabling efficient updates by cloning object types within sessions and managing cache operations to reduce locking times and memory overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If exclusive locking is used to update reference counters, then data integrity is maintained, but user waiting time increases and system efficiency decreases
Solution Approach 1:
The patent creates a copy of the object when the reference counter reaches zero, allowing the original object to be updated without blocking concurrent access. The copy mechanism enables versioning where readers can access the old version while writers update the new version, eliminating the need for exclusive locks and reducing user waiting time while maintaining data integrity through controlled version transitions.
2Reliability
If exclusive locking is used to prevent concurrency errors, then data consistency is ensured, but system throughput decreases
Solution Approach 1:
The patent implements dynamic reference counting where the locking behavior changes based on the reference counter value. When the counter is greater than zero, the object remains locked and reads are redirected to copies. When the counter reaches zero, the object is unlocked and a copy is created. This dynamic approach allows maximum parallelism when possible while ensuring consistency when updates are needed, significantly improving system throughput compared to static exclusive locking.
Solution Approach 2:
The patent segments the object lifecycle into distinct phases: active phase where the object is locked and being used, and copy phase where a duplicate is created for concurrent access. This segmentation allows different access patterns for different phases, enabling high throughput during active phase while maintaining consistency during transition to copy phase.
3Measurement precision
If reference counters are updated frequently, then object tracking accuracy is maintained, but memory overhead and processing overhead increase
Solution Approach 1:
Instead of maintaining a single object with frequent counter updates, the patent creates copies when needed, allowing the reference counter to be updated less frequently. The copy mechanism serves as a snapshot that preserves state without requiring continuous updates, reducing both memory overhead from maintaining multiple versions and processing overhead from frequent counter modifications.
Data Source
AI summary
Systems and methods for managing concurrent access to a shared resource in a distributed computing environment are provided. A reference counter counts is incremented for every use of an object subtype in a session and decremented for every release of an object subtype in a session. A session counter is incremented upon the first instance of fetching an object type into a session cache and decremented upon having no instances of the object type in use in the session. When both the reference counter and the session counter are zero, the object type may be removed from the cache.


