Database Proxy Write Request Persistence via Commit Log

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database proxy technologies face challenges in handling write requests, leading to delayed acknowledgments for clients and uncertainty about the success of write operations, which can impact data integrity and system performance.

Innovation Solution

A method and system that involves storing write requests in a commit log and a cache within a database proxy module, allowing for immediate acknowledgment to the client while ensuring data integrity by confirming successful writing to the database store before removing the request from the log.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the write request is acknowledged as successful only after confirmation from the database store, then data integrity is ensured, but the client operation is delayed

Engineering Contradiction:
Improvedata integrityVSAvoidacknowledgment delay
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by storing the write request in a commit log before receiving confirmation from the database store. This allows the system to proactively prepare for potential failures by persisting the write operation in non-volatile memory in advance, enabling later recovery without waiting for database confirmation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The commit log acts as an intermediary between the client and the database store. It temporarily holds write requests and provides acknowledgment to clients while ensuring data can be recovered even if the database store fails, thus mediating between speed of acknowledgment and data integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the write request is acknowledged immediately upon receipt, then client operation speed is improved, but data integrity is compromised

Engineering Contradiction:
Improveoperation speedVSAvoiddata integrity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary action by immediately storing the write request in the commit log and providing acknowledgment to the client before the write operation is fully confirmed. This preliminary persistence in non-volatile memory ensures that even though acknowledgment is immediate, the data can be recovered if needed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a copy of the write request in the commit log, separating the acknowledgment function from the actual write confirmation. The client receives acknowledgment based on the copy in the commit log, while the original write operation continues in the background, allowing speed without sacrificing integrity.

Inventive Principle:
Principle #26Copying

3Device complexity

If the write request is not tracked after acknowledgment, then system complexity is reduced, but uncertainty about write success increases

Engineering Contradiction:
Improvetracking complexityVSAvoidwrite success certainty
Core Design Contradiction:
Device complexityVSLoss of information

Solution Approach 1:

The commit log serves itself by automatically tracking write requests through its persistent storage mechanism. Once a write request is stored in the commit log, the system can independently verify its status later without requiring complex external tracking infrastructure, thus reducing complexity while maintaining information about write success.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11429595B2Persistence of write requests in a database proxy
Publication Date: 2022.08.30 MARVELL ASIA PTE LTD
  • US11429595B2 patent drawing
  • US11429595B2 patent drawing
  • US11429595B2 patent drawing

AI summary

A database proxy includes a computing device and a hardware-accelerated database proxy module. The computing device and the database proxy module. The database proxy is configured to receive a write request from a client; store the write request in a commit log in a first non-volatile memory device; in response to storing the write request in the commit log, return to the client a signal acknowledging success of the write request; store the write request in a cache in a second non-volatile memory device; cause the write request to be written in a database store; and based on a first determination that the write request is stored in the cache and on a second determination that the write request is written in the database store, remove the write request from the commit log.