Transactional Memory Shadow Copy Serialization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Optimistic concurrency control in software transactional memory systems does not effectively address privatization-related issues, leading to unexpected results and serialization anomalies when concurrent threads access shared memory locations, particularly in scenarios involving privatization and in-place writing.

Innovation Solution

A software transactional memory system that employs a buffered write process using shadow copies of objects and a transaction ordering process to ensure that transactions commit in the correct abstract serialization order, using entered and exited commit counters to manage the commit process and prevent conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If optimistic concurrency control is used in software transactional memory systems, then forward progress is improved and operations are relatively inexpensive, but privatization-related problems and serialization anomalies occur leading to unexpected results

Engineering Contradiction:
Improveforward progressVSAvoidcorrectness of transaction execution
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by recording all read and write operations during the transaction execution phase, before actual commit occurs. This allows the system to validate serialization order and detect conflicts in advance, preventing privatization-related problems while maintaining optimistic concurrency control benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary validation mechanism that acts as a mediator between transaction execution and commit. This intermediary layer validates the serialization order and checks for privatization issues, ensuring correctness without blocking forward progress during the main transaction execution.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If in-place writing is performed during privatization, then memory efficiency is improved, but serialization anomalies occur and unexpected writes or undo operations happen

Engineering Contradiction:
Improvememory usageVSAvoidtransaction serialization order
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent segments the transaction execution into distinct phases: a read-write phase where in-place writing occurs for memory efficiency, and a separate validation/commit phase where serialization order is enforced. This segmentation allows in-place writing to proceed without causing serialization anomalies, as the validation phase catches and resolves any ordering issues before final commit.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Before allowing in-place writes during privatization, the system performs preliminary validation to ensure the write operations maintain serialization order. This preliminary check prevents serialization anomalies while still allowing the memory-efficient in-place writing mechanism to be used during the transaction body.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2150900B1Transactional memory using buffered writes and enforced serialization order
Publication Date: 2019.05.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2150900B1 patent drawingFigure 1
  • EP2150900B1 patent drawingFigure 2
  • EP2150900B1 patent drawingFigure 3

AI summary

Various technologies and techniques are disclosed that support buffered writes and enforced serialization order in a software transactional memory system. A buffered write process is provided that performs writes to shadow copies of objects and writes content back to the objects after validating a respective transaction during commit. When a write lock is first obtained for a particular transaction, a shadow copy is made of a particular object. Writes are performed to and reads from the shadow copy. After validating the particular transaction during commit, content is written from the shadow copy to the particular object. A transaction ordering process is provided that ensures that an order in which the transactions are committed matches an abstract serialization order of the transactions. Transactions are not allowed to commit until their ticket number matches a global number that tracks the next transaction that should commit.