Predictive Log Synchronization for Concurrent Data Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Concurrent programming in computer systems faces challenges with traditional locking mechanisms, which are complex and inefficient, and transactional memory programming introduces additional complexities such as overhead and programming language issues.

Innovation Solution

Predictive log synchronization (PLS) mechanisms allow modification operations to be logged and applied by a single thread, enabling other threads to predict results and make progress without waiting for locks, using a writable and read-only version of data objects to manage concurrent access.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If fine-grained locking techniques are used to independently protect portions of complex data structures, then concurrency is increased, but programming complexity increases substantially

Engineering Contradiction:
ImproveconcurrencyVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the data structure into multiple segments or portions, each protected by its own lock. This allows different threads to access different segments simultaneously, increasing concurrency while maintaining manageable lock granularity. The segmentation enables fine-grained control without requiring complex global locking mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer (such as a lock manager or synchronization protocol) that handles the complexity of coordinating access to multiple segments. This intermediary abstracts the fine-grained locking complexity from the programmer, allowing them to work with higher-level abstractions while the intermediary manages the detailed synchronization logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If locks are used to protect shared resources, then access safety is ensured, but reading operations cannot make progress concurrently

Engineering Contradiction:
Improveaccess safetyVSAvoidconcurrent read progress
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies different access control mechanisms to different portions of the data structure. Read-only portions can be accessed concurrently by multiple threads without acquiring locks, while write-protected portions use traditional locking. This local differentiation allows reading operations to make progress concurrently while maintaining safety where needed.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses preliminary actions such as versioning or tagging data structure elements with their access mode (read-only vs. write-protected) before access occurs. This preliminary classification enables the system to automatically apply appropriate synchronization semantics, allowing concurrent reads on read-only portions while protecting write portions with locks.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If transactional memory programming is used to replace locks, then programming complexity is reduced, but overhead and conflict detection mechanisms reduce performance

Engineering Contradiction:
Improveprogramming complexityVSAvoidperformance
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent applies transactional memory techniques selectively to only those portions of the code or data structure where they provide benefit, rather than wrapping entire operations in transactions. This partial application reduces the overhead of conflict detection and transaction management while still providing the programming simplicity benefits where needed.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent adjusts transaction parameters such as transaction size, nesting depth, and conflict detection sensitivity to optimize performance. By dynamically changing these parameters based on the specific operation being performed, the system can reduce overhead for simple operations while maintaining the benefits of transactional memory for complex concurrent operations.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS8060879B2Predictive log synchronization
Publication Date: 2011.11.15 ORACLE AMERICAN INC
  • US8060879B2 patent drawing
  • US8060879B2 patent drawing
  • US8060879B2 patent drawing

AI summary

A method for coordinating shared access to data objects comprises applying modification operations to a data object from a first thread of a plurality of threads on behalf of all the other threads during a session in which the first thread owns a lock on the data object. Each modification operation corresponds to a respective entry recorded in a log associated with the data object by a respective thread. The method may further comprise predicting, for a second thread, a result of a particular operation requested by the second thread on the data object. The result may be predicted using log entries corresponding to modification operations that have not yet been applied to the data object. In addition, the method includes performing one or more other operations in a non-blocking manner from the second thread during the session, where at least one other operation is dependent on the predicted result.