Field-Level Concurrency for Out-of-Process Object Caching
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Out-of-process object caching in large enterprise-class object-oriented applications can lead to response time inefficiencies and coherence issues due to overlapping object mutations by multiple threads, which compromise application accuracy and consistency.
Innovation Solution
Implementing field-level concurrency in out-of-process object caching, where only the mutated fields of an object are updated in the cache memory, coordinated by a synchronization mechanism, allowing multiple threads to mutate disjoint fields of a shared object in parallel without disrupting coherence.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If out-of-process object caching is implemented to provide scalability and uninterrupted service, then service availability and scalability are improved, but response time and object coherence deteriorate due to overlapping mutations by multiple threads
Solution Approach 1:
The patent segments the object into individual fields for independent caching and mutation operations. Instead of treating the entire object as a single unit that requires locking, each field can be cached and mutated independently by different threads, eliminating serialization overhead and improving response time while maintaining coherence.
Solution Approach 2:
The patent applies partial action by updating only the specific fields that have been mutated in the cache, rather than requiring full object serialization and deserialization. This selective update approach reduces the time overhead for cache operations while maintaining service availability.
2Adaptability or versatility
If out-of-process object caching is implemented to provide scalability, then system scalability is improved, but object coherence deteriorates due to concurrent mutations by multiple threads
Solution Approach 1:
By segmenting the object into discrete fields, the patent enables independent version control for each field. Each field can track its own mutation state and version, allowing the caching system to maintain coherence by applying field-level updates in the correct order without requiring global locking, thus preserving object coherence while enabling scalability.
Solution Approach 2:
The patent implements feedback mechanisms through version numbers and mutation tracking for each field. The system monitors field mutations, tracks version changes, and uses this feedback information to determine the correct order for applying updates to cached objects, ensuring coherence is maintained even with concurrent mutations from multiple threads.
3Productivity
If field-level concurrency is implemented to enable parallel mutations, then productivity is improved, but device complexity increases due to synchronization mechanisms
Solution Approach 1:
The patent reduces synchronization complexity by segmenting the object into independent fields, each with its own version tracker. This eliminates the need for complex global locking mechanisms, as each field can be mutated and cached independently with simple version comparison logic, enabling parallel mutations without proportionally increasing device complexity.
Data Source
AI summary
A method includes executing a multi-threaded, object-oriented application (OOA) on a device; receiving, by multiple threads of the OOA, an object from an out-of-process cache memory; mutating one or more fields of the object, wherein the one or more fields correspond to one or more attributes of the object; and applying an update of the one or more fields that have been mutated to the out-of-process cache memory, wherein the applying the update updates the one or more fields mutated at a field level and not at an object level.


