Distributed Search Index Slot Allocation for Shard Scaling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current search engine indexing systems face challenges with shard sizing, leading to decreased query performance when shards grow too large, and dynamic resizing is hindered by extensive resharding, limiting the ability to adjust the number of shards.

Innovation Solution

Implementing a distributed search framework that splits an index into slots based on a slot power value, allowing for dynamic allocation and reallocation of shards to maintain performance and reduce resharding impact, with parameters like minimum and maximum shard sizes to optimize data distribution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If the number of shards is increased to handle larger data volumes, then the storage capacity and scalability are improved, but the query performance deteriorates due to increased data redistribution overhead and complexity

Engineering Contradiction:
Improvedata volumeVSAvoidquery performance
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent divides the index into slots based on a slot power value, creating a hierarchical structure where slots are allocated to shards. This segmentation allows for fine-grained control over data distribution and enables selective resharding of only the affected slots rather than the entire index, thus maintaining query performance while scaling data volume.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces dynamic slot allocation where the slot power value can be adjusted to change the number of slots and their allocation to shards. This dynamic approach allows the system to adapt to changing data volumes and query patterns without requiring complete resharding, thereby maintaining performance while improving scalability.

Inventive Principle:
Principle #15Dynamics

2Device complexity

If the shard size is increased to reduce the number of shards, then the system complexity is reduced, but the query performance deteriorates when shards exceed optimal size thresholds

Engineering Contradiction:
Improvesystem complexityVSAvoidquery performance
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

By segmenting the index into slots that can be independently allocated to shards, the system maintains manageable shard sizes even as data volume grows. Each slot represents a manageable unit that can be individually assigned, preventing any single shard from becoming too large and degrading performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of slot power values that allows control over the granularity of slot allocation. By adjusting the slot power, the system can optimize the balance between the number of slots/shards and their individual sizes, finding an optimal point that reduces complexity while maintaining performance.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

3Adaptability or versatility

If the number of shards is changed dynamically, then the scalability is improved, but extensive resharding is required which causes significant data redistribution overhead

Engineering Contradiction:
ImprovescalabilityVSAvoiddata redistribution time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The slot-based segmentation enables incremental resharding where only the slots affected by the shard count change need to be redistributed. Instead of moving entire shards or the complete index, the system can selectively reallocate specific slots to appropriate shards, dramatically reducing data redistribution time while maintaining scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system pre-calculates slot allocations based on the desired number of shards using the slot power value. When scaling is needed, the new allocation can be prepared in advance and applied incrementally, reducing the actual data movement time during the scaling operation itself.

Inventive Principle:
Principle #10Preliminary action

4Manufacturing precision

If the slot power value is increased to create more slots, then the allocation precision is improved, but the system complexity increases due to more slots to manage

Engineering Contradiction:
Improveallocation precisionVSAvoidsystem complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The slot power value serves as a single controlling parameter that determines both the number of slots and their allocation characteristics. By adjusting this single parameter, the system can achieve different levels of allocation precision without manually managing each slot, thereby managing complexity through parameterization rather than direct object management.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11347778B2Scale-out indexing for a distributed search engine
Publication Date: 2022.05.31 EMC IP HLDG CO LLC
  • US11347778B2 patent drawing
  • US11347778B2 patent drawing
  • US11347778B2 patent drawing

AI summary

Methods and systems for data indexing are disclosed. According to some embodiments, an index is split into a number of slots based on a slot power value. Each of the slots is assigned with a slot number. A first subset of the slots is allocated to a first shard mapped to the index. A second subset of the slots is allocated to a second shard mapped to the index. The first subset and the second subset are respectively allocated to the first shard and the second shard based on a shard-slot mapping.