Asynchronous Transaction Logging Reduces Sync Latency
Find Innovative SolutionsGenerate 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
Engineering 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
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.
2Productivity
If additional server processes are started to increase CPU utilization, then productivity improves, but context switching overhead increases and service quality deteriorates
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.
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
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.
Data Source
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.


