Thread Lock Management for Distributed Data Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed data systems, concurrent access to shared data by multiple processes leads to data inconsistencies and resource inefficiencies, particularly in multithreaded environments where 'data clobbering' occurs due to overlapping updates.

Innovation Solution

A distributed data system with a lock mechanism that grants locks to processes for portions of primary data, ensuring only the thread that requested the lock can access it, and buffers requests from other processes, releasing the lock when no longer needed or upon request, thereby reducing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple processes concurrently access and update distributed data, then system productivity and resource utilization improve, but data consistency deteriorates leading to data clobbering

Engineering Contradiction:
Improvesystem productivityVSAvoiddata consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces a lock mechanism as an intermediary between multiple processes and the distributed data. When a process needs to access or update data, it first acquires a lock through the lock mechanism, which prevents other processes from accessing the same data simultaneously. This mediator ensures data consistency while allowing controlled concurrent access, resolving the contradiction between productivity and reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If a lock mechanism is implemented to prevent data clobbering, then data consistency is improved, but system complexity and resource overhead increase

Engineering Contradiction:
Improvedata consistencyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The lock mechanism is segmented into discrete lock objects that can be independently acquired and released. Each lock corresponds to a specific data portion, allowing fine-grained control rather than requiring a single global lock. This segmentation reduces system complexity by breaking down the locking mechanism into manageable, modular components that can be independently managed.

Inventive Principle:
Principle #1Segmentation

3Reliability

If locks are frequently acquired and released for each data access, then data consistency is maintained, but processing speed and resource efficiency deteriorate

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The patent merges multiple lock operations by allowing a process to hold onto a lock across multiple data access operations. Instead of acquiring and releasing locks for every individual data access, the lock is retained throughout the entire transaction or process execution, reducing the frequency of lock acquisition and release operations. This merging approach maintains data consistency while significantly improving processing speed and reducing resource overhead.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8095657B2First thread lock management for distributed data systems
Publication Date: 2012.01.10 ORACLE AMERICAN INC
  • US8095657B2 patent drawing
  • US8095657B2 patent drawing
  • US8095657B2 patent drawing

AI summary

A distributed data system may include nodes hosting at least one multi-threaded process operable to access portions of distributed data. A lock mechanism may grant locks to multi-threaded processes for portions of the distributed data. Only a process holding a lock may access a portion corresponding to the lock. Threads of other processes may not access the portion. A process may include a first thread to request access to a distributed data portion that may acquire a lock for the distributed data portion on behalf of the process. In one embodiment, the lock mechanism may require only a thread that acquired a lock release the lock on behalf of a process. In embodiments, the first thread may release the lock in response to no more threads of the process require access to the distributed data portion and/or in response to a request to release the lock.