Fine-Grained Virtualization for Database Scaling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing database scaling techniques face challenges in efficiently managing write-based workloads, as they often require disruptive migration and result in resource waste or performance degradation, especially when handling burst workloads or sudden changes in memory consumption.

Innovation Solution

Implementing fine-grained virtualization resource provisioning allows for dynamic, non-disruptive scaling of database resources, such as CPU and memory, by monitoring utilization and adjusting resources in real-time to match workload demands without permanent scaling operations, thereby preventing resource waste and ensuring efficient resource allocation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If database instances are migrated to scale processing capacity, then resource allocation can be adjusted, but application disruption and connection drops occur

Engineering Contradiction:
Improveresource allocation flexibilityVSAvoidapplication continuity
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments database instances into multiple database slices, where each slice can be independently scaled. This allows resource allocation to be adjusted at the slice level rather than requiring migration of entire database instances, thereby maintaining application continuity while enabling flexible resource adaptation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a database proxy as an intermediary layer between client applications and database instances. The proxy manages connections and routes requests to appropriate database slices, allowing resource scaling to occur without disrupting application connections. The proxy acts as a mediator that absorbs the impact of resource changes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If database instances are migrated for scaling, then capacity can be changed, but migration costs and downtime increase

Engineering Contradiction:
Improvescaling efficiencyVSAvoidmigration downtime
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements dynamic resource allocation where database slices can be created, modified, or deleted on-demand without fixed migration schedules. Resources are allocated dynamically based on workload requirements, eliminating the need for planned migration downtime and enabling continuous scaling operations.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent allows database slices to be pre-created with anticipated resource requirements before scaling events occur. When scaling is needed, pre-configured slices can be activated immediately without migration downtime, as the structural preparation has already been completed in advance.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If fixed capacity is allocated to database instances, then resource management is simplified, but resource waste occurs during burst workloads

Engineering Contradiction:
Improveresource management simplicityVSAvoidresource waste
Core Design Contradiction:
Ease of manufactureVSLoss of energy

Solution Approach 1:

The patent implements partial resource allocation where database slices can be created with specific resource capacities matched to actual workload needs. Rather than allocating full fixed capacity to all instances, resources are partially allocated based on demand, allowing simple resource management policies to work efficiently without wasting capacity during low-utilization periods.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent enables dynamic modification of resource capacity parameters for database slices without requiring structural changes or migrations. Resource parameters such as CPU, memory, and storage can be adjusted independently and immediately, allowing the system to adapt to burst workloads while maintaining simple management through standardized parameter interfaces.

Inventive Principle:
Principle #35Parameter changes

4Device complexity

If coarse resource capacity adjustments are made, then scaling operations are simpler, but resource precision and efficiency decrease

Engineering Contradiction:
Improvescaling operation complexityVSAvoidresource allocation precision
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The patent segments database instances into smaller database slices that can be independently managed with fine-grained resource controls. This segmentation enables precise resource allocation at the slice level while keeping individual slice management simple, avoiding the need for complex coarse-grained adjustments across entire database instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic resource provisioning where slice capacities can be adjusted in real-time based on monitoring metrics. This dynamic approach replaces complex predetermined scaling operations with simple, automated, fine-grained adjustments that precisely match actual resource utilization patterns.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20220164228A1Fine-grained virtualization resource provisioning for in-place database scaling
Publication Date: 2022.05.26 AMAZON TECH INC
  • US20220164228A1 patent drawing
  • US20220164228A1 patent drawing
  • US20220164228A1 patent drawing

AI summary

Fine-grained virtualization provisioning may be performed for in-place database scaling. Computing resource utilization for a database on a host system is obtained for a period of time. The computing resource utilization may be evaluated with respect to a target capacity for the database. If a scaling event is detected based on the evaluation, a modified target capacity may be determined and used to make an adjustment of the computing resources permitted to be used by the database.