Cache Pointer Atomic Update for Concurrent Access
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache systems in computer memory management are inefficient for multiple processes accessing the same data, leading to significant space overhead and consistency complications, and inter-process communication incurs unnecessary overhead.
Innovation Solution
A shared memory architecture that allows concurrent access by creating a new data structure for updates and maintaining an old value until it's no longer needed, using atomic modifications to cache pointers and minimizing the need for locks to prevent inconsistencies and reduce overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If each process has its own cache, then process access efficiency is improved, but space overhead increases significantly
Solution Approach 1:
The patent merges multiple process-specific caches into a single shared cache structure. Instead of having n separate caches for n processes, the invention uses one unified cache that all processes access concurrently, eliminating redundant cache copies and reducing space overhead while maintaining access efficiency through proper concurrency control.
Solution Approach 2:
The patent introduces a cache manager as an intermediary component that mediates between multiple processes and the shared cache. The cache manager handles concurrency control, invalidation notifications, and access coordination, allowing multiple processes to safely share the same cache without needing separate cache instances.
2Productivity
If multiple copies of cached objects are maintained, then process access efficiency is improved, but consistency maintenance complexity increases
Solution Approach 1:
The patent consolidates consistency management into a single shared cache structure with unified invalidation tracking. Instead of maintaining consistency across multiple separate caches, the invention tracks version information and invalidation status centrally, simplifying the consistency maintenance burden while preserving efficient multi-process access.
3Device complexity
If a cache process communicates with multiple processes, then centralized cache management is achieved, but inter-process communication overhead increases
Solution Approach 1:
The patent uses a cache manager as an intermediary that coordinates access to the shared cache. The cache manager handles invalidation notifications and access coordination efficiently, reducing the need for frequent inter-process communication while maintaining centralized management capabilities. The design minimizes communication overhead by using event-driven invalidation notifications rather than continuous polling or messaging.
Data Source
AI summary
Various embodiments of the present invention allow concurrent accesses to a cache. A request to update an object stored in a cache is received. A first data structure comprising a new value for the object is created in response to receiving the request. A cache pointer is atomically modified to point to the first data structure. A second data structure comprising an old value for the cached object is maintained until a process, which holds a pointer to the old value of the cached object, at least one of one of ends and indicates that the old value is no longer needed.


