Asynchronous Replication Bandwidth Allocation via Budget Byte Window

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

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

Innovation Solution

Implementing bandwidth control by setting a maximum bandwidth limit per link and calculating a proportionate share for each control module, using a budget byte window to manage and allocate bandwidth effectively across replication sessions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple asynchronous replication sessions share the same network port, then bandwidth resources are utilized more efficiently, but some sessions experience bandwidth starvation and lag in recovery point objective (RPO)

Engineering Contradiction:
Improvebandwidth utilization efficiencyVSAvoidrecovery point objective (RPO)
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the total bandwidth limit into proportionate shares for each control module based on the number of slices owned. Each routing module maintains a budget byte window that tracks its allocated bandwidth share, preventing any single session from monopolizing the network resources and ensuring fair distribution across multiple replication sessions.

Inventive Principle:
Principle #1Segmentation

2Speed

If aggressive replication sessions consume more bandwidth, then their data transfer speed increases, but other sessions sharing the same port receive insufficient bandwidth and lag behind

Engineering Contradiction:
Improvedata transfer speedVSAvoidRPO lag time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system implements feedback mechanisms where routing modules monitor their bandwidth consumption against allocated budgets and control modules adjust the budget byte windows based on actual usage. This feedback loop prevents aggressive sessions from exceeding their fair share and ensures that time-sensitive replication sessions maintain their RPO targets.

Inventive Principle:
Principle #23Feedback

3Device complexity

If no bandwidth limiting is imposed on replication sessions, then system complexity remains low, but bandwidth competition causes RPO lag for non-aggressive sessions

Engineering Contradiction:
Improvebandwidth control mechanism complexityVSAvoiddata integrity and availability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent introduces bandwidth limit parameters and budget byte window parameters that can be configured to control replication session behavior. By changing these parameters, the system can adjust the level of bandwidth control applied, balancing the trade-off between system complexity and data reliability based on specific operational requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10908822B2Limiting bandwidth usage on asynchronous replication sessions for a destination storage system
Publication Date: 2021.02.02 EMC IP HLDG CO LLC
  • US10908822B2 patent drawing
  • US10908822B2 patent drawing
  • US10908822B2 patent drawing

AI summary

An aspect of implementing bandwidth limits on replication sessions for a destination includes creating a list of routing modules having ownership of links going to the destination, calculating, by control modules, a proportionate share of a requested total bandwidth limit based on a number of slices owned and the number of routing modules. The proportionate share of the bandwidth limit is indicated by a budget value of a budget byte window (BBW). An aspect further includes prior to initiating a scan of the slices, identifying a BBW having a budget value equal or greater than the value, allocating the budget value to a thread, and reducing the budget value of the BBW by the predetermined value. An aspect also includes scanning the slices corresponding to the identified BBW, sending a number of bytes transmitted and corresponding number of pages to respective control modules resulting from the scanning, and updating corresponding BBW.