Database Replica Partitioning for Multi-Access Pattern Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing database systems face performance deterioration when scaling up or out, especially for tables with multiple access patterns involving columns other than the partitioning column, leading to inefficiencies in query processing and inability to meet stringent performance goals, such as generating billing documents for millions of customers within a short timeframe.
Innovation Solution
The database system is modified to create replica tables with different partition specifications than the original, allowing queries to be routed to either the original or replica tables based on real-time performance predictions, optimizing access patterns and distributing partitions across multiple servers for improved performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If database tables are partitioned to improve query performance for specific access patterns, then query execution time is reduced, but the system cannot efficiently handle multiple different access patterns involving different columns
Solution Approach 1:
The patent creates replica tables that are copies of the original partitioned table, but with different partition specifications. Each replica table is partitioned according to a specific access pattern, allowing the system to efficiently handle multiple different query types by routing them to the appropriate replica table.
Solution Approach 2:
The patent changes the partitioning parameters (partition column and partition method) to create different replica tables. By varying these parameters, the system generates specialized tables optimized for different access patterns, thereby improving adaptability while maintaining fast query performance.
2Productivity
If the database system creates multiple replica tables with different partition specifications, then it can handle multiple access patterns efficiently, but the system complexity increases
Solution Approach 1:
The patent introduces a query routing mechanism that acts as an intermediary between incoming queries and the multiple replica tables. This router analyzes the query's access pattern and directs it to the most appropriate replica table, managing the complexity of having multiple tables while maintaining high processing efficiency.
Solution Approach 2:
The patent segments the database system into multiple specialized replica tables, each handling a specific access pattern. This segmentation allows independent optimization of each table for its intended purpose while the routing mechanism coordinates them, improving overall productivity without overwhelming complexity.
3Speed
If replica tables are created to optimize specific access patterns, then query performance improves, but storage requirements and maintenance overhead increase
Solution Approach 1:
The patent makes the same underlying data serve multiple functions by creating replica tables with different partition specifications. Each replica table provides the same data but organized differently, allowing a single data set to be optimized for multiple access patterns without requiring completely separate data stores.
Data Source
AI summary
A method of modifying a database architecture to improve database performance is disclosed. A replication database table is generated from an original database table. The original database table is divided into a first plurality of partitions optimized for handling accesses for satisfying a first type of query. The replication database table is divided into a second plurality of partitions optimized for handling accesses for satisfying a second type of database query. Based on receiving the database query of the first type, the query of the first type is routed to one host of a plurality of hosts to satisfy the query, the one host hosting one of the first plurality of partitions; based on receiving the database query of the second type, the query is routed to the same or another host of the plurality of hosts to satisfy the query, the second host hosting one of the second plurality of partitions.


