Distributed Database Attosharding for Scalable Data Distribution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed databases face inefficiencies in scaling due to increased inter-node communication and data redistribution, leading to performance decline and making incremental scaling computationally inefficient and time-consuming.

Innovation Solution

Implementing a distributed database as a set of clusters with attosharding, where the key space is divided into segments proportional to the number of nodes, allowing for weighted random distribution of writes and targeted reads, optimizing both write and read operations by ensuring proportional loads across clusters.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If consistent hashing is used to distribute data among nodes, then data distribution is achieved, but scaling becomes computationally inefficient and time-consuming due to data redistribution

Engineering Contradiction:
Improvescaling capabilityVSAvoidscaling time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent divides the key space into attoshards, where each attoshard is a segment containing keys for multiple cluster segments. This segmentation allows the system to work with smaller, manageable portions of data during scaling operations, reducing the computational overhead and time required for data redistribution when nodes are added or removed from the cluster.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the number of nodes in the cluster changes, then cluster scalability is improved, but inter-node communication increases causing performance decline

Engineering Contradiction:
Improvecluster scalabilityVSAvoiddatabase performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements weighted random distribution of write operations across clusters, where each cluster receives a proportion of writes based on its size. This local quality approach ensures that larger clusters handle more writes while smaller clusters handle fewer, optimizing the distribution of workload and reducing unnecessary inter-node communication overhead, thereby maintaining performance during scaling operations.

Inventive Principle:
Principle #3Local quality

3Stability of the object's composition

If data is moved from original node to new node during scaling, then data distribution is maintained, but the operation becomes computationally inefficient

Engineering Contradiction:
Improvedata distribution consistencyVSAvoidcomputational efficiency
Core Design Contradiction:
Stability of the object's compositionVSUse of energy by moving object

Solution Approach 1:

The patent pre-computes and stores the mapping between tokens and cluster segments in attoshards before scaling operations occur. This preliminary action allows the system to quickly determine data locations during scaling without performing complex real-time computations, reducing the computational energy required while maintaining data distribution consistency when nodes are added or removed.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20220100799A1Data access optimization in distributed database
Publication Date: 2022.03.31 NEW RELIC INC
  • US20220100799A1 patent drawing
  • US20220100799A1 patent drawing
  • US20220100799A1 patent drawing

AI summary

A distributed database receives an instruction to read or write data. The instruction includes a key. The database includes a key space defined by attoshards. An attoshard is a segment of key space having a size, in keys, proportional to a total number of nodes in the database. The attoshard includes keys for cluster segments at predefined positions in the attoshard. Each cluster segment corresponds to one cluster. A node of the database hashes the key to generate a token. The node performs a modulo operation on the token using the total number of nodes in the database to compute a remainder value. The node determines a cluster segment of an attoshard based on a position in the attoshard defined by the remainder value. The node determines a cluster for the instruction based on the cluster segment and executes the instruction at the determined cluster.