Database Proxy Shard Conflict Detection via Graph Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In database systems, horizontal partitioning across multiple shards leads to shard conflicts when retrieving data, as data from multiple shards needs to be joined, aggregated, or merged, which becomes increasingly challenging with more shards involved.

Innovation Solution

A system and method that determine shard conflicts by representing tables as vertices of a graph, identifying connections between vertices, and distributing tables across shards based on a common key, allowing for efficient data retrieval by determining if the graph is complete, thus avoiding shard conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is distributed across multiple shards based on horizontal partitioning, then data storage capacity and system scalability are improved, but query complexity and data retrieval difficulty increase due to the need to join, aggregate, or merge data from multiple shards

Engineering Contradiction:
Improvedata storage capacityVSAvoidquery processing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The system pre-computes and stores shard conflict information in a cache structure before queries are executed. When tables are distributed to shards, the system proactively determines which shard conflicts exist and stores this information for rapid retrieval during query processing, eliminating the need to perform complex conflict detection during actual queries

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The invention introduces a proxy layer between the client and database shards that handles shard conflict detection and resolution. The proxy receives queries, determines shard conflicts using pre-computed information, and routes queries appropriately, shielding clients from the complexity of distributed data retrieval while maintaining efficient query processing

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If tables are distributed across multiple shards, then system scalability and storage distribution are improved, but data retrieval efficiency deteriorates due to the need to access and merge data from multiple shards

Engineering Contradiction:
Improvesystem scalabilityVSAvoiddata retrieval efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system pre-determines shard conflicts when distributing tables to shards and caches this conflict information. During query processing, the proxy uses this pre-computed information to quickly identify which shards need to be accessed and how to merge their results, avoiding repeated conflict analysis and significantly improving retrieval efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The proxy system automatically determines shard conflicts and generates appropriate query routing without requiring client intervention or complex client-side logic. The cached shard conflict information enables the proxy to self-service query optimization, efficiently managing distributed data retrieval while maintaining high productivity

Inventive Principle:
Principle #25Self-service

3Loss of time

If shard conflict information is cached for rapid query processing, then query response time is improved, but memory usage increases due to storing conflict information in cache

Engineering Contradiction:
Improvequery response timeVSAvoidmemory usage
Core Design Contradiction:
Loss of timeVSQuantity of substance

Solution Approach 1:

The system caches shard conflict information selectively based on what is necessary for query optimization. Rather than caching all possible shard combinations, the proxy computes and caches only the shard conflicts relevant to actual query patterns, using sufficient memory to achieve fast response times without excessive memory consumption

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10496645B1System and method for analysis of a database proxy
Publication Date: 2019.12.03 SCALEBASE INC
  • US10496645B1 patent drawing
  • US10496645B1 patent drawing
  • US10496645B1 patent drawing

AI summary

A system and method for processing a database query may include determining a set of tables referenced in a query; representing the set of tables by vertices of a graph; and, if the graph is incomplete, then determining the query is associated with a shard conflict. A system and method may determine a query is not associated with a shard conflict if, and only if, the graph is complete.