Dynamic Partition Rebalancing in Distributed Streaming Storage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed data storage systems face performance issues due to server overload, as traditional load-balancing techniques require significant downtime for redistribution, which can negatively impact the efficiency of cloud computing environments.

Innovation Solution

A system that performs an efficient data redistribution process by analyzing metadata to identify overloaded servers and implementing a sequence of partition reassignments, minimizing downtime and overhead, using a load balancing engine to create a redistribution mapping and reassign partitions across brokers in a Kafka® distributed streaming platform.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional load-balancing techniques are used to redistribute data across servers, then server overload is reduced, but significant downtime is required for redistribution

Engineering Contradiction:
Improveserver performanceVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically rebalances partition distribution across brokers while maintaining operational continuity. The load balancing engine continuously monitors partition distribution and performs incremental reassignments based on current broker capacity and load conditions, allowing the system to adapt to changing conditions without requiring complete redistribution downtime.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary analysis of the current partition distribution state and broker capacities before executing rebalancing operations. The load balancing engine evaluates multiple reassignment scenarios and selects optimal paths that minimize downtime, preparing reassignment sequences in advance to reduce operational disruption.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data redistribution is performed to balance server loads, then server performance is improved, but system overhead increases

Engineering Contradiction:
Improveserver performanceVSAvoidsystem overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system performs partial rebalancing operations that address only the specific load imbalances detected, rather than complete system-wide redistribution. The load balancing engine identifies and corrects only the partitions that contribute to broker overload, reducing the computational overhead and resource consumption associated with full redistribution while still achieving performance improvement.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If partition reassignment is performed frequently to maintain balance, then load distribution is optimized, but system complexity increases

Engineering Contradiction:
Improveload distribution efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The load balancing engine implements continuous feedback monitoring of broker load conditions and partition distribution. The system periodically evaluates whether rebalancing operations are necessary based on current system state, triggering reassignments only when imbalances exceed defined thresholds. This feedback mechanism optimizes load distribution while avoiding unnecessary operations that would increase system complexity.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10992740B2Dynamically balancing partitions within a distributed streaming storage platform
Publication Date: 2021.04.27 SALESFORCE INC
  • US10992740B2 patent drawing
  • US10992740B2 patent drawing
  • US10992740B2 patent drawing

AI summary

Described is a system that improves the performance of brokers that store partitions of data within a distributed data streaming platform by performing an efficient data redistribution process. The system may obtain data (e.g. metadata) describing the distribution storage partitions amongst storage brokers and determine the current (or initial) distribution may negatively impact the performance of the platform. Accordingly, the system may perform an efficient redistribution by performing a particular sequence of partition reassignments amongst brokers.