Relational SaaS Backup Using Snapshot Versioning and Schema Metadata
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data protection systems for SaaS platforms do not adequately support backup and protection of relational databases, lacking scalability, security, efficient garbage collection, and cross-snappable searching, and fail to maintain data relationships.
Innovation Solution
A comprehensive backup system that includes tables for each backend table of the source SaaS application and additional metadata tables describing the schema, with versioning control columns and metadata columns for deduplication and immutability, allowing fine-grained data recovery and searching across snapshots.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If existing data protection systems are used for SaaS platforms, then backup of non-relational data is supported, but backup of relational database data with relationships is not adequately supported
Solution Approach 1:
The backup system segments relational database backup into multiple components: backup database tables for storing data, metadata tables for describing schema, versioning control columns for tracking changes, and relationship tracking mechanisms. This segmentation allows the system to handle complex relational data structures while maintaining reliability through organized, modular backup management.
2Reliability
If comprehensive backup of relational data is implemented, then data relationships are maintained, but system complexity increases
Solution Approach 1:
The system merges multiple backup database tables with metadata tables into a unified backup structure. The metadata tables describe the schema and relationships, while the backup tables store the actual data. This merging approach maintains data relationships through structured metadata while organizing complexity into a coherent, manageable system architecture.
Solution Approach 2:
Metadata tables serve as intermediaries between the backup database tables and the original relational database schema. These metadata tables describe the schema, track relationships, and enable searching across snapshots without requiring direct complex queries into the relational structure, thereby simplifying the backup system's interaction with relational data.
3Ease of operation
If versioning control columns are added to backup tables, then fine-grained recovery is enabled, but storage requirements increase
Solution Approach 1:
The versioning control columns are added locally to each backup database table rather than creating a separate versioning structure. Each table includes its own versioning columns (e.g., birthInterSnapNumCol, deathInterSnapNumCol) that track when rows were created and deleted. This local quality approach enables fine-grained recovery at the row level while minimizing additional storage overhead compared to global versioning systems.
4Adaptability or versatility
If backup system supports cross-snappable searching, then data searching capability is improved, but processing time increases
Solution Approach 1:
The system creates a copy of the relational database structure in the backup system, including backup database tables and metadata tables that replicate the schema and relationships. This copying approach enables searching across snapshots by querying the backup structure, which is optimized for search operations. The metadata tables store schema information that can be efficiently queried to search across multiple snapshots without processing the entire dataset.
Data Source
AI summary
Methods, systems, and devices for data management are described. A method may include obtaining a new snapshot of a relational database of a source computing environment, comparing the new snapshot of the relational database to a prior snapshot of the relational database, updating, in response to the comparison indicating that data of a row of a relational database table changed between the prior snapshot and the new snapshot, a field of a second versioning control column of a corresponding row of a backup database table of the set of backup database tables to indicate a version of the new snapshot, and adding, in response to the comparison indicating that the data of the row of the relational database table changed, an additional row to the backup database table, where a field of a first versioning control column of the additional row includes an indication of the version of the new snapshot.


