Distributed Database Storage Balancing via Pod Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed databases face challenges in balancing storage resources efficiently, leading to inefficient load balance and increased data recovery times, particularly in large-scale online services.

Innovation Solution

The method involves creating pods from nodes across storage racks, distributing shards based on available capacity, and ensuring replicas are assigned to different storage racks to maximize rack diversity and minimize shard overlap, using a three-stage technique of node balancer, shard balancer, and replica balancer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If data is replicated across multiple storage resources in a distributed database, then reliability and availability are improved, but storage resource balance and load distribution deteriorate

Engineering Contradiction:
Improvedata reliabilityVSAvoidstorage resource balance
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system segments data into shards and organizes storage resources into pods (groups of nodes). This segmentation allows independent management and balancing of storage resources while maintaining replication for reliability. Each pod manages its own shards and replicas, enabling granular control over resource distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The balancer module dynamically changes storage resource allocation parameters by monitoring pod capacities and shard distributions. It adjusts the number of replicas per shard and redistributes data across pods based on available capacity, transforming static replication into dynamic resource balancing.

Inventive Principle:
Principle #35Parameter changes

2Speed

If more replicas are created for data objects, then data recovery speed is improved, but data movement and storage overhead increase

Engineering Contradiction:
Improvedata recovery speedVSAvoiddata movement
Core Design Contradiction:
SpeedVSLoss of substance

Solution Approach 1:

The system pre-creates replicas of data objects across multiple nodes and pods before failures occur. This preliminary action ensures that recovery can immediately use existing replicas rather than recreating data, speeding up recovery while controlling data movement through intelligent placement.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies (replicas) of data objects across multiple storage resources. The balancer module intelligently manages these copies, ensuring optimal distribution that enables fast recovery through local replica access while minimizing redundant data movement during normal operations.

Inventive Principle:
Principle #26Copying

3Productivity

If shards are distributed across more pods, then load balance is improved, but system complexity and coordination overhead increase

Engineering Contradiction:
Improveload balanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The balancer module serves multiple functions: it monitors pod capacities, manages shard distributions, creates and moves replicas, and optimizes load balance across pods. This universal module handles diverse balancing tasks through a unified approach, reducing overall system complexity despite the multi-pod architecture.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10291707B1Systems and methods for balancing storage resources in a distributed database
Publication Date: 2019.05.14 X CORP
  • US10291707B1 patent drawing
  • US10291707B1 patent drawing
  • US10291707B1 patent drawing

AI summary

Embodiments are provided for balancing storage resources in a distributed database. According to certain aspects, various hardware components may facilitate a three-stage technique including a node balancer technique, a shard balancer technique, and a replica balancer technique. The node balancer technique may create a set of pods from a set of nodes residing across a set of storage racks. The shard balancer technique may redistribute, among the set of pods, a portion of a set of shards assigned to respective pods of the set of pods. The replica balancer technique may, for each pod, distribute the set of replicas so that the replicas reside across the storage racks of that pod.