Kubernetes Database Backup Consistency via Ordered Quiescing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Kubernetes lacks a mechanism to specify the order in which database application pods should be quiesced for snapshot backups, leading to inconsistencies across cluster deployments.

Innovation Solution

An application template processing system is implemented that uses hook mechanisms to suspend and resume operations in a specific order, ensuring application consistency across all nodes in a Kubernetes cluster by utilizing prehook and posthook commands to manage database quiescing and unquiescing processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If database pods are quiesced in arbitrary order during backup, then backup operations can be performed, but application consistency across cluster nodes is compromised

Engineering Contradiction:
Improveapplication consistencyVSAvoidbackup process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by quiescing database pods in a specific predetermined order before performing backups. The system identifies the primary pod and quiesces it first, then quiesces secondary pods in sequence, ensuring that data is consistently captured across the cluster before the backup operation begins. This prevents inconsistency issues that would arise from arbitrary quiescing orders.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If database operations are suspended during backup, then data consistency is maintained, but processor resource consumption increases and backup time extends

Engineering Contradiction:
Improvedata integrityVSAvoidbackup efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the database cluster into a primary pod and multiple secondary pods, applying different quiescing strategies to each segment. The primary pod is quiesced first to ensure data consistency, then secondary pods are quiesced in sequence. This segmentation allows the backup process to maintain data integrity while optimizing resource consumption by processing pods in manageable segments rather than all at once.

Inventive Principle:
Principle #1Segmentation

3Productivity

If multiple database pods are backed up simultaneously, then backup throughput increases, but application consistency across nodes cannot be guaranteed

Engineering Contradiction:
Improvebackup throughputVSAvoidcluster consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent applies preliminary action by establishing a predetermined quiescing sequence before initiating parallel backup operations. The primary pod is quiesced first, followed by secondary pods in a specific order. This preliminary ordering ensures that even when backups proceed in parallel, the data consistency requirements are met because the quiescing has already established the proper sequence.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies dynamics by allowing the backup process to adapt its parallelization strategy based on the quiescing sequence. While maintaining the required quiescing order for consistency, the system can dynamically parallelize backup operations across multiple pods once they are quiesced, optimizing throughput without compromising reliability.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12056015B2Application template for application consistent backup and restore of database applications in kubernetes
Publication Date: 2024.08.06 EMC IP HLDG CO LLC
  • US12056015B2 patent drawing
  • US12056015B2 patent drawing
  • US12056015B2 patent drawing

AI summary

Embodiments of an application template process that provides application consistent backups for a wide range of database applications and deployment configurations. The defined application template allows specifying suspend (quiesce) and restart (unquiesce) commands for each type of database application and template selectors to select resources to sequence dependent resources to ensure application consistency of the backup operation in a cluster configuration. Prehook and posthook annotations provide entry points for execution of appropriate program scripts to suspend and restart the respective resource during execution of the application.