Hierarchical File Locking for Data Integrity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In highly available computing environments, maintaining data integrity is challenging when multiple software instances concurrently access shared resources, particularly in complex scenarios where traditional file locking mechanisms are insufficient to prevent data corruption.

Innovation Solution

The implementation of hierarchical file locking mechanisms, including a master lock and active locks, allows one instance to exclusively access shared data while preventing other instances from accessing it, ensuring data integrity through coordinated locking and instance management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional file locking mechanisms are used to prevent data corruption, then data integrity is maintained, but the system cannot handle complex scenarios with multiple concurrent instances accessing shared resources

Engineering Contradiction:
Improvedata integrityVSAvoidconcurrent access capability
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent segments the locking mechanism into hierarchical levels (file-level locks and record-level locks). This allows coarse-grained file locking to prevent corruption while fine-grained record locking enables concurrent access to different records within the same file, resolving the contradiction between data integrity and concurrent access capability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension to traditional locking by adding hierarchical levels (file level and record level). This multi-dimensional locking approach allows the system to maintain data integrity at the file level while permitting controlled concurrent access at the record level, thereby increasing adaptability without sacrificing reliability

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Productivity

If multiple software instances concurrently access shared data, then system availability is improved, but data corruption risks increase

Engineering Contradiction:
Improvesystem availabilityVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements dynamic locking where locks are acquired and released based on actual access patterns. Instances dynamically acquire file-level locks when accessing shared data and release them when done, allowing flexible concurrent access while maintaining data integrity through coordinated locking and instance management

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces locking mechanisms as an intermediary between multiple software instances and shared data. The hierarchical locks act as mediators that coordinate access, allowing multiple instances to operate concurrently while preventing data corruption through controlled access protocols

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If hierarchical file locking is implemented to ensure single activation, then data corruption is prevented, but system complexity increases

Engineering Contradiction:
Improvedata integrityVSAvoidlocking mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the locking mechanism into hierarchical levels (file-level and record-level locks) to manage complexity. By dividing the locking system into manageable segments with clear responsibilities, the patent reduces the overall system complexity while maintaining data integrity through coordinated locking and instance management

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10372682B2Maintaining data integrity
Publication Date: 2019.08.06 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10372682B2 patent drawing
  • US10372682B2 patent drawing
  • US10372682B2 patent drawing

AI summary

Data integrity is maintained in an environment in which multiple instances of a software component each can include multiple processes capable of accessing a shared resource. Each instance of the software component can be either an “active” instance (which is allowed to update data) or a “standby” instance (which is not allowed to update data). At any point in time, the environment does not comprise more than one active instance. There can, however, be more than one standby instance. Preferably, a single standby instance can become a new active instance in the event of a complete failure of the active instance, i.e. a failure associated with every process of the current active instance.