Asynchronous Transaction Logging Reduces Sync Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current transaction processing systems face inefficiencies due to high log sync latency and undesirable operating system scheduling dynamics when durably storing transaction information from memory to persistent storage, leading to underutilization of CPU resources and potential service quality issues.

Innovation Solution

The system employs asynchronous communication to notify clients that a transaction has been completed before the transaction information is durably stored, allowing server processes to become unblocked and reassigned for new work while the log writer processes transaction information in the background, thereby reducing log sync latency and improving CPU utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the server process waits for the log writer to durably store transaction information before notifying the client, then data reliability is ensured, but the log sync latency increases and CPU utilization decreases

Engineering Contradiction:
Improvedata reliabilityVSAvoidlog sync latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by having the server process notify the client of transaction completion before the log writer durably stores the transaction information. The server process sends the notification in advance, and the client is informed that the transaction is completed even though the durable storage is still in progress. This preliminary notification eliminates the waiting period and reduces log sync latency while maintaining data reliability through subsequent confirmation mechanisms.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If additional server processes are started to increase CPU utilization, then productivity improves, but context switching overhead increases and service quality deteriorates

Engineering Contradiction:
ImproveCPU utilizationVSAvoidcontext switching overhead
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The invention enables continuous useful action by allowing server processes to remain active and be reassigned to new transactions immediately after completing a transaction, without waiting for the log writer to finish durable storage. The asynchronous notification mechanism ensures that server processes do not remain blocked, maintaining continuous productivity and high CPU utilization without requiring additional processes or incurring context switching overhead.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If multiple server processes are unblocked simultaneously when the log writer completes durable storage, then all transactions are confirmed, but operating system scheduling dynamics deteriorate and service quality is impacted

Engineering Contradiction:
Improvetransaction confirmationVSAvoidoperating system scheduling dynamics
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system applies preliminary action by notifying each client individually when their specific transaction is completed, rather than waiting for batch confirmation from the log writer. The server process sends notifications as transactions are completed, spreading out the unblocking events over time rather than having multiple processes unblock simultaneously. This approach maintains reliable transaction confirmation while avoiding the scheduling dynamics problems caused by simultaneous unblocking.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7624112B2Asynchronously storing transaction information from memory to a persistent storage
Publication Date: 2009.11.24 ORACLE INT CORP
  • US7624112B2 patent drawing
  • US7624112B2 patent drawing
  • US7624112B2 patent drawing

AI summary

A method and apparatus for asynchronously storing transaction information related to a transaction is provided. A client process executing on a client may initiate a transaction request with a server. The server processes the transaction, commits the transaction, and writes transaction information associated with the transaction to memory without durably storing the transaction information. Thereafter, the server processing the transaction returns a message to the client that the transaction has been committed. A server process, which performed the transaction, may be reassigned to commit new work. Additional information that may be useful for the client about the result of the transaction may be contained in the message. Next, transaction information stored in memory is durably stored. A log writer may be used to durably store the transaction information to a log file. The client is subsequently notified that the transaction information has been durably stored at a client listening process.