Secondary Index Throughput Provisioning for Online Tables

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Creating secondary indexes in database systems can be resource-intensive and lead to throughput capacity contention, potentially starving user access requests during the indexing process, especially in distributed data stores where maintaining consistency between the primary table and secondary index is challenging.

Innovation Solution

A method to recommend and provision additional throughput capacity for generating a secondary index, allowing incremental indexing while ensuring user access requests are not blocked, by determining the creation throughput capacity based on the table's existing capacity and estimated creation time, and automatically provisioning resources to complete the indexing process efficiently.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If additional throughput capacity is provisioned for secondary index creation, then index creation speed is improved, but system complexity and resource allocation difficulty increase

Engineering Contradiction:
Improveindex creation speedVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary calculations to determine the required throughput capacity before initiating secondary index creation. By estimating the table size, current throughput capacity, and desired creation time, the system pre-calculates the necessary additional capacity provision, avoiding resource shortages during execution and simplifying the allocation process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system continuously monitors the secondary index creation progress and adjusts throughput capacity allocation based on actual performance metrics. This feedback mechanism ensures efficient resource utilization by reallocating capacity dynamically, reducing overall system complexity through automated adaptive management rather than static over-provisioning.

Inventive Principle:
Principle #23Feedback

2Loss of time

If throughput capacity is increased for secondary index creation, then creation time is reduced, but user access requests may still be blocked during indexing

Engineering Contradiction:
Improveindex creation timeVSAvoiduser access availability
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system segments the throughput capacity into dedicated indexing capacity and user access capacity. By separating these functions, the system can provision additional capacity specifically for index creation without impacting user access requests, eliminating blocking while maintaining fast creation speeds through parallel processing of indexing and user queries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts the allocation of throughput capacity during secondary index creation based on real-time workload conditions. This dynamic adaptation allows the system to optimize between indexing speed and user access availability, ensuring that user requests are never blocked while achieving efficient creation times through flexible resource management.

Inventive Principle:
Principle #15Dynamics

3Reliability

If incremental indexing is implemented, then user access requests are not blocked, but indexing completeness and consistency may be compromised

Engineering Contradiction:
Improveuser access continuityVSAvoidindex consistency
Core Design Contradiction:
ReliabilityVSManufacturing precision

Solution Approach 1:

The system maintains continuous indexing operation during table writes, ensuring that the secondary index is constantly updated as data changes. This continuous incremental indexing approach guarantees index consistency with the primary table while allowing uninterrupted user access, as the indexing process never blocks and always reflects the current state of the data.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system implements feedback mechanisms that monitor indexing progress and data changes in real-time. This feedback ensures that incremental indexing remains complete and consistent by detecting and rectifying any discrepancies between the primary table and secondary index, maintaining data integrity throughout the continuous indexing process.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10146814B1Recommending provisioned throughput capacity for generating a secondary index for an online table
Publication Date: 2018.12.04 AMAZON TECH INC
  • US10146814B1 patent drawing
  • US10146814B1 patent drawing
  • US10146814B1 patent drawing

AI summary

A data storage system may implement recommending throughput capacity for generating a secondary index for an online table. Secondary indexes may be created for a table stored in multiple partitions in the data storage system. The data storage system may allow users to provision throughput capacity to process access requests at secondary indexes. The throughput capacity may also be used to perform updates at the secondary index as part of generating the secondary index. A creation throughput capacity may be determined that compensates for performing the updates to generate the secondary index. A user may receive a recommendation with the creation throughput capacity for creating the secondary index and may accept or modify the creation throughput capacity. The creation throughput may be automatically provisioned to create the secondary index, in some embodiments.