Component-Level Lock Manager for Document Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering Contradiction Analysis

1Reliability

If the entire document is locked to maintain integrity, then object integrity is preserved, but user interaction efficiency deteriorates

Engineering Contradiction:
Improveobject integrityVSAvoiduser interaction efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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).

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #3Local quality

2Reliability

If the entire document is locked to prevent concurrent access, then data consistency is maintained, but processing speed deteriorates

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If component-level locking is implemented to improve efficiency, then user interaction speed improves, but system complexity increases

Engineering Contradiction:
Improveuser interaction speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If lock extension to additional components is performed, then integrity of related components is maintained, but processing overhead increases

Engineering Contradiction:
Improveintegrity of related componentsVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10867283B2Lock-based updating of a document
Publication Date: 2020.12.15 ORACLE INT CORP
  • US10867283B2 patent drawing
  • US10867283B2 patent drawing
  • US10867283B2 patent drawing

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.