Component-Level Lock Manager for Document Integrity
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in efficiently handling multiple asynchronous threads accessing the same document, leading to potential integrity issues and inefficiencies, as they often lock the entire document, preventing simultaneous user interactions.
Innovation Solution
A visual analyzer application implements a lock manager that determines the necessary components to lock based on user interactions, extending the lock to additional components only when required, allowing other components to remain accessible and process asynchronous calls from different threads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the entire document is locked to maintain integrity, then object integrity is preserved, but user interaction efficiency deteriorates
Solution Approach 1:
The patent segments the document into multiple components (visualizations, grids, criteria, layouts) and applies locking at the component level rather than document level. The lock manager tracks which specific components are locked by which threads, allowing other components to remain accessible. This segmentation resolves the contradiction by preserving integrity only where needed (locked components) while maintaining efficiency elsewhere (unlocked components).
Solution Approach 2:
The patent implements local quality by applying different locking states to different parts of the document. Instead of uniform locking, the system dynamically determines which components require locking based on thread access patterns. Components being accessed by multiple threads are locked, while others remain unlocked, creating a localized quality distribution that balances integrity and efficiency.
2Reliability
If the entire document is locked to prevent concurrent access, then data consistency is maintained, but processing speed deteriorates
Solution Approach 1:
By segmenting the document into independent components and locking only the necessary portions, the system allows multiple threads to process different components simultaneously. This reduces the overall processing time compared to locking the entire document, while still maintaining data consistency through component-level locking protocols.
Solution Approach 2:
The system applies partial locking by locking only the specific components that require protection, rather than the entire document. This partial action approach maintains data consistency for critical components while avoiding the excessive action of locking everything, thereby improving processing speed.
3Productivity
If component-level locking is implemented to improve efficiency, then user interaction speed improves, but system complexity increases
Solution Approach 1:
The lock manager serves multiple functions: it tracks locked components, manages thread access, determines extension needs, and coordinates unlocking. This multi-functional design consolidates complexity into a single management system rather than requiring separate mechanisms for each locking aspect, making the system more manageable despite the increased complexity.
Solution Approach 2:
The lock manager acts as an intermediary between threads and document components, mediating access requests and determining locking requirements. This intermediary layer simplifies the interaction model by providing a centralized decision-making point for locking, rather than requiring direct peer-to-peer coordination between multiple threads.
4Reliability
If lock extension to additional components is performed, then integrity of related components is maintained, but processing overhead increases
Solution Approach 1:
The system performs preliminary determination of lock extension needs by analyzing the event and associated actions before actually extending locks. This advance planning allows the lock manager to identify which components will be affected by a thread's actions and proactively lock them, preventing integrity issues while avoiding unnecessary locking of unrelated components.
Solution Approach 2:
The lock manager uses feedback from event analysis and action determination to dynamically decide whether lock extension is necessary. By continuously monitoring thread requests and component relationships, the system extends locks only when feedback indicates related components need protection, balancing integrity maintenance with processing efficiency.
Data Source
AI summary
Mechanisms can be provided for locking a component and extending the lock to one or more additional component(s) in a visual analyzer application. Embodiments can receive a request for a first component of a document for a first thread where the document is displayed by a graphical user interface (GUI) and has components including the first component and a second component. A lock manager may lock the first component. An action handler can determine, based on code associated with an event pertaining to the request, that the second component also needs to be locked. The lock manager may lock the second component for a same thread, if the first and second components are not currently locked. Additional user actions directed to other components of the application not currently locked may still proceed, permitting asynchronous calls to be processed without interference with a previous action that has already started.


