Distributed Sorted Set Indexing for Scalable In-Memory Databases

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional in-memory database systems face limitations in scalability and data availability when handling large sorted sets, as they are typically confined to the memory of a single server and lack efficient indexing and horizontal scaling capabilities.

Innovation Solution

A distributed in-memory database system that indexes key-value pairs based on scores, allowing for the distribution of sorted sets across multiple nodes, enabling concurrent processing, horizontal scaling, and data replication across a wide area network.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored in memory of a single server, then access speed is fast, but scalability is limited

Engineering Contradiction:
Improveaccess speedVSAvoidscalability
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent divides the sorted set data into multiple shards distributed across different server nodes. Each node maintains a portion of the data in its own memory, allowing the system to scale horizontally by adding more nodes while maintaining fast in-memory access speeds for each partition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a distributed dimension by organizing data across multiple nodes with hierarchical indexing. The index structure spans multiple nodes, enabling the system to scale from a single-server to multi-node architecture while preserving O(log n) access complexity through the hierarchical index organization.

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

2Adaptability or versatility

If sorted set is distributed across multiple nodes, then scalability improves, but indexing complexity increases

Engineering Contradiction:
ImprovescalabilityVSAvoidindexing complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The index structure is segmented into hierarchical levels distributed across nodes. Each node maintains local index entries for its sharded data, and parent nodes maintain aggregated indexes. This segmentation reduces the indexing complexity at each individual node while maintaining global scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent employs hierarchical indexing mechanisms that automatically balance and reorganize data across nodes. The indexing system dynamically adjusts to data distribution changes, similar to how vibration systems self-regulate, reducing manual intervention complexity while maintaining scalability.

Inventive Principle:
Principle #18Mechanical vibration

3Productivity

If data is confined to single server memory, then access efficiency is high, but data availability decreases

Engineering Contradiction:
Improveaccess efficiencyVSAvoiddata availability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments data across multiple server nodes, where each node holds a shard of the sorted set in its memory. This segmentation ensures that if one node fails, other nodes continue to serve data, improving data availability while maintaining efficient in-memory access for each partition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically adjusts data replication parameters and node allocation based on load and availability requirements. By changing operational parameters such as replication factors and shard distribution strategies, the system maintains high access efficiency while improving data availability through distributed redundancy.

Inventive Principle:
Principle #35Parameter changes

4Quantity of substance

If sorted set grows in size, then more data can be stored, but single server memory limit is reached

Engineering Contradiction:
Improvedata sizeVSAvoidmemory capacity
Core Design Contradiction:
Quantity of substanceVSVolume of stationary object

Solution Approach 1:

The patent segments the growing sorted set into multiple shards distributed across an expanding number of server nodes. As data size increases, new nodes can be added to the cluster, with each node holding a portion of the data in its memory, thus overcoming the single-server memory limit while maintaining in-memory access speeds.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimension (single server) to multi-dimensional (distributed cluster) architecture. By organizing data across multiple nodes in a distributed hierarchy, the system can store larger quantities of data in memory collectively across the cluster, enabling horizontal scaling beyond individual server memory constraints.

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

Data Source

PatentUS10802796B1Distributed sorted set
Publication Date: 2020.10.13 VMWARE INC
  • US10802796B1 patent drawing
  • US10802796B1 patent drawing

AI summary

Systems, methods, and computer program products of distributing sorted sets to multiple nodes of a distributed in-memory database system are described. The distributed in-memory database system is a database system based on key-value pairs. The system receives data records including user data and scores for sorting. The system maps the user data to keys in the key-value pairs. The system maps the scores to the values in the key-value pairs. The system then distributes the mapped key-value pairs to the nodes. The distributed in-memory database system is indexed on the values.