Transactional Memory Grouping for Performance Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing transactional memory systems face limitations in efficiently managing concurrent programs due to the need for generic locking and versioning mechanisms, which compromise performance and cannot combine incompatible mechanisms within a single process.

Innovation Solution

A transaction grouping feature that allows transactions to be grouped based on disjoint data access, enabling the use of distinct and specially selected locking and versioning mechanisms for each group, which can include incompatible mechanisms, thereby enhancing performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If generic locking and versioning mechanisms are used in transactional memory systems, then general applicability is achieved, but performance is compromised

Engineering Contradiction:
Improvegeneral applicabilityVSAvoidperformance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system segments transactions into different groups based on their data access patterns and characteristics. Each group can then be managed with specialized locking and versioning mechanisms tailored to its specific needs, rather than using a single generic mechanism for all transactions. This segmentation allows performance optimization for each group while maintaining general applicability across diverse workloads.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different locking and versioning mechanisms are applied to different transaction groups based on their local characteristics and requirements. Each group receives a customized mechanism that is locally optimized for its specific access patterns, data types, and performance needs, rather than applying a uniform generic mechanism everywhere.

Inventive Principle:
Principle #3Local quality

2Device complexity

If a single process uses a single locking and versioning mechanism, then implementation simplicity is maintained, but the ability to combine incompatible mechanisms is lost

Engineering Contradiction:
Improveimplementation simplicityVSAvoidability to combine incompatible mechanisms
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The process is segmented into multiple transaction groups, each capable of using different locking and versioning mechanisms. This segmentation enables the coexistence of incompatible mechanisms within a single process by isolating them in separate groups that operate independently on disjoint data sets.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The transaction group structure acts as an intermediary layer between the process and the multiple locking/versioning mechanisms. This intermediary manages the boundaries and interactions between groups using different mechanisms, allowing incompatible mechanisms to coexist without direct interference while maintaining overall process coherence.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If transactions are executed with fine-grained locking for isolation, then atomicity is achieved, but system complexity increases

Engineering Contradiction:
ImproveatomicityVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Transactions are segmented into groups with disjoint data access patterns. Within each group, fine-grained locking can be applied more effectively because the scope is reduced and conflicts are minimized. This segmentation maintains atomicity within groups while reducing overall system complexity by limiting the locking scope.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Fine-grained locking is applied partially - only within transaction groups rather than across the entire system. This partial application of fine-grained locking achieves atomicity where needed (within groups) while avoiding the excessive complexity that would result from applying it system-wide.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentEP2176763B1Memory transaction grouping
Publication Date: 2019.09.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2176763B1 patent drawingFigure 1
  • EP2176763B1 patent drawingFigure 2
  • EP2176763B1 patent drawingFigure 3

AI summary

Various technologies and techniques are disclosed for providing a transaction grouping feature for use in programs operating under a transactional memory system. The transaction grouping feature is operable to allow transaction groups to be created that contain related transactions. The transaction groups are used to enhance performance and/or operation of the programs. For example, different locking and versioning mechanisms can be used with different transaction groups. When running transactions, a hardware transactional memory execution mechanism can be used for one transaction group while a software transactional memory execution mechanism used for another transaction group.