Strongly Consistent Secondary Index for Distributed Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed database systems, maintaining a strongly consistent secondary index is challenging, as it requires synchronization across multiple locations, and eventually consistent indexes can lead to false positives and negatives, affecting query accuracy and reliability.

Innovation Solution

Implementing a strongly consistent secondary index that maintains pointers to items in a distributed data set, ensuring that all changes are reflected consistently across the index, preventing false negatives and allowing for immediate detection of false positives, thereby ensuring accurate query results without the need for separate update replication techniques.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a secondary index is maintained in a distributed database system, then query efficiency is improved, but consistency across multiple locations becomes difficult to maintain

Engineering Contradiction:
Improvequery efficiencyVSAvoidconsistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary actions by maintaining the secondary index at the client level before distributed queries are executed. The client-side request handling engine proactively builds and maintains the secondary index locally, so that when queries need to be executed, the index is already available and synchronized, eliminating the need for complex real-time synchronization across distributed locations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The client acts as an intermediary between the distributed database system and the query execution. The client-side request handling engine receives queries, uses its local secondary index to process them efficiently, and only interacts with the distributed database when necessary. This intermediary approach allows query optimization to occur locally without requiring the entire distributed system to maintain consistent indexes.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If eventually consistent indexes are used, then system complexity is reduced, but false positives and negatives occur affecting query accuracy

Engineering Contradiction:
Improvesystem complexityVSAvoidquery accuracy
Core Design Contradiction:
Device complexityVSMeasurement precision

Solution Approach 1:

The client-side request handling engine provides self-service by automatically maintaining its own secondary index without requiring complex distributed synchronization mechanisms. The system serves itself by locally managing index creation, updates, and queries, which reduces overall system complexity while maintaining high query accuracy through local consistency.

Inventive Principle:
Principle #25Self-service

3Reliability

If separate update replication techniques are implemented, then index consistency is improved, but system complexity and overhead increase

Engineering Contradiction:
Improveindex consistencyVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the secondary index maintenance functionality from the centralized distributed database system and places it at the client level. By taking out the index management responsibility from the distributed system, the patent eliminates the need for complex update replication techniques while maintaining index consistency locally at each client.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10936559B1Strongly-consistent secondary index for a distributed data set
Publication Date: 2021.03.02 AMAZON TECH INC
  • US10936559B1 patent drawing
  • US10936559B1 patent drawing
  • US10936559B1 patent drawing

AI summary

A secondary index may be implemented for a distributed data set that is strongly consistent. Updates to a distributed data set that add or remove items from the distributed data set may be reflected in the secondary index as part of performing the update. Pointers to items to be added to a distributed data set may be included in the secondary index as part of processing an insertion request for the new items. Pointers to items removed from a distributed data set may be removed from the secondary index as part of processing a deletion request. Changes to the secondary index may be performed so that the secondary index does not fail to identify items that are present in the distributed data set.