Active Standby Database Nodes for Data Persistence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In-memory database systems face challenges in ensuring data persistence and availability due to the volatile nature of main memory and less reliable hardware environments, leading to potential data loss during node failures.

Innovation Solution

Implementing a system with active and standby nodes that use write-through and autorefresh techniques to propagate updates across nodes, ensuring data persistence and availability by maintaining a subset of updates on each node and utilizing a backend database system for durability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in main memory for improved access speed, then responsiveness and throughput are improved, but data persistence and reliability deteriorate due to volatile memory

Engineering Contradiction:
Improvedata access speedVSAvoiddata persistence
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent introduces a transaction log as an intermediary between main memory and disk storage. The log captures all data modifications in a persistent format, allowing the in-memory database to maintain high-speed access while ensuring data persistence through the logged transactions that can be recovered after system failures.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent creates a copy of critical data and transaction information in a persistent transaction log on disk storage. This copy mechanism allows the primary in-memory database to operate at high speed while the logged copy ensures data persistence and enables recovery operations without affecting the performance of the main memory-based database operations.

Inventive Principle:
Principle #26Copying

2Reliability

If data replication and active-standby systems are implemented to improve reliability, then data availability is improved, but system complexity increases

Engineering Contradiction:
Improvedata availabilityVSAvoidsystem architecture complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the database system into distinct functional components: the primary in-memory database engine, the transaction log writer, and the recovery manager. This segmentation allows each component to operate independently with clearly defined responsibilities, reducing overall system complexity while maintaining high availability through the transaction log's role in failover scenarios.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The transaction log is designed to be self-sufficient for recovery operations. It contains all necessary transaction information in a structured format that can be automatically processed during recovery without requiring complex external coordination, thereby simplifying the failover mechanism and reducing system complexity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8868504B2Database system with active standby and nodes
Publication Date: 2014.10.21 ORACLE INT CORP
  • US8868504B2 patent drawing
  • US8868504B2 patent drawing
  • US8868504B2 patent drawing

AI summary

A system includes an active node and a standby node and zero or more replica nodes. Each of the nodes includes a database system, such as an in-memory database system. Client updates applied to the active node are written through to the standby node, and the standby node writes the updates through to a primary database and updates the replica nodes. Commit ticket numbers tag entries in transaction logs and are used to facilitate recovery if either of the active node or the standby node fails. Updates applied to the primary database are autorefreshed to the active node and written through by the active node to the standby node which propagates the updates to the replica nodes. Bookmarks are used to track updated records of the primary database and are used to facilitate recovery if either of the active node or the standby node fails.