Asynchronous Replication Bandwidth Control via Budget Byte Windows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In asynchronous replication sessions, aggressive data transfer sessions compete for network bandwidth, leading to lag in recovery point objective (RPO) for sessions sharing the same port, as they do not receive enough bandwidth to transfer data efficiently.

Innovation Solution

Implementing bandwidth control by setting a limit on replication sessions, calculating proportionate shares based on the number of slices owned by control modules, and allocating budget values to initiate scans, ensuring fair data transfer and updating budget windows accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple asynchronous replication sessions share the same network port, then network resource utilization increases, but some sessions experience bandwidth starvation and lag in recovery point objective (RPO)

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidrecovery point objective (RPO)
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the bandwidth resource by introducing budget byte windows for each control module, dividing the total bandwidth into controllable portions. Each control module receives a specific budget allocation that prevents any single session from monopolizing the network port, thereby ensuring fair distribution while maintaining high utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent dynamically adjusts the budget byte window parameter for each control module based on its slice ownership and performance needs. By changing the bandwidth allocation parameter adaptively, the system optimizes data transfer efficiency for each session while preventing RPO lag, resolving the contradiction between overall productivity and individual session reliability.

Inventive Principle:
Principle #35Parameter changes

2Speed

If aggressive data transfer sessions are allowed to proceed without bandwidth limits, then their data transfer speed increases, but other sessions sharing the same port experience bandwidth starvation

Engineering Contradiction:
Improvedata transfer speedVSAvoidoverall data transfer efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent implements dynamic bandwidth allocation through budget byte windows that are continuously updated based on actual data transfer needs and slice ownership. Control modules with higher slice ownership receive larger budget allocations, allowing aggressive sessions to maintain high speed while preventing them from starving other sessions. The system dynamically adjusts allocations to maintain overall productivity.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system monitors data transfer performance and RPO metrics, using this feedback to adjust budget byte window allocations. When sessions experience bandwidth starvation, the feedback mechanism increases their budget allocation in subsequent time windows, ensuring that aggressive sessions do not permanently starve other sessions while maintaining high transfer speeds where needed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10776015B1Limiting bandwidth usage for an asynchronous replication session in a storage system
Publication Date: 2020.09.15 EMC IP HLDG CO LLC
  • US10776015B1 patent drawing
  • US10776015B1 patent drawing
  • US10776015B1 patent drawing

AI summary

An aspect of implementing bandwidth control for an asynchronous replication session includes calculating, by each of a group of control modules, a proportionate share of a requested total bandwidth limit based on a number of slices owned. The proportionate share of the bandwidth limit is indicated by a budget value via a budget byte window (BBW). An aspect further includes prior to initiating a scan of the slices by an initiator thread, identifying BBWs having a budget value equal to or exceeding a predetermined value, allocating the budget value for the BBWs to the thread, and reducing the budget value corresponding to the BBWs by the predetermined value. An aspect also includes initiating the initiator thread for slices corresponding to the identified BBWs, sending a number of bytes transmitted and corresponding number of pages to respective control modules resulting from the scanning, and updating corresponding BBWs.