Shard Management for Scalable Database Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database systems face challenges in scaling processing capacity to match workload demands, leading to disruptions and high costs due to the need for frequent capacity adjustments, especially in managed relational database services where client applications may experience interruptions from dropped connections.

Innovation Solution

A database system that supports both client-managed and system-managed tables within a common database, allowing for intelligent query routing and dynamic resource allocation, enabling flexible scaling of computing resources to optimize performance without interrupting client applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Power

If database capacity is increased to match peak workload demands, then processing capacity is improved, but cost increases and disruption risk increases during scaling operations

Engineering Contradiction:
Improveprocessing capacityVSAvoidapplication disruption risk
Core Design Contradiction:
PowerVSReliability

Solution Approach 1:

The database table is divided into multiple shards that can be independently scaled. Each shard is a partition of the table data that can be managed separately, allowing the system to scale only the portion needed for peak workloads without affecting the entire database, thus avoiding application disruptions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically assigns and reassigned shards to different database nodes based on workload demands. Shards can be moved between nodes without interrupting client connections, enabling flexible capacity adjustment while maintaining continuous service availability.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If database capacity is frequently adjusted to match workload changes, then adaptability to workload is improved, but disruption to client applications increases

Engineering Contradiction:
Improveworkload adaptationVSAvoidconnection stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

By segmenting the table into shards, the system can adjust capacity at the shard level without affecting overall database connectivity. Client connections remain stable while individual shards can be scaled independently to match varying workload patterns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system uses a router as an intermediary between client applications and database nodes. The router manages connection routing and can redirect queries to different shards or nodes during scaling operations, preventing direct disruption to client applications while enabling capacity adjustments.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If system-managed tables use automated scaling, then operational complexity is reduced, but control over resource allocation is lost

Engineering Contradiction:
Improveoperational simplicityVSAvoidresource allocation control
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system provides dynamic resource allocation where computing and storage resources are automatically adjusted based on workload. The router dynamically assigns shards to available nodes, enabling flexible resource management that adapts to changing demands while simplifying operational tasks for users.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12105692B1Shard management for scaling database tables
Publication Date: 2024.10.01 AMAZON TECH INC
  • US12105692B1 patent drawing
  • US12105692B1 patent drawing
  • US12105692B1 patent drawing

AI summary

Shard management may be implemented for scalable database tables. A table may be identified as aligned with another table of the database according to a common shard key across multiple shards that are mapped to respective storage volumes of a data store of the database according to a placement hierarchy. Different portions of the table may be stored across the shards as respective table slices with corresponding portions of the other table as respective other table slices with same values of the shard key. Metadata for performing access requests to the database may be updated to identify individual ones of the table slices stored with individual ones of the other table slices as respective table slice groups that are mapped to respective ones of the shards in the placement hierarchy.