Limiting bandwidth usage for an asynchronous replication session in a storage system

US10776015B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-10776015-B1
Application numberUS-201916453132-A
CountryUS
Kind codeB1
Filing dateJun 26, 2019
Priority dateJun 26, 2019
Publication dateSep 15, 2020
Grant dateSep 15, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

We claim: 1. A method for implementing bandwidth control for an asynchronous replication session at a storage system, the method comprising: receiving a request to set a bandwidth limit on the replication session; updating, by a system manager of the storage system, a replication session object with a value representing the bandwidth limit; sending, by the system manager, the value representing the bandwidth limit to each of a plurality of control modules of the storage system; calculating, by each of the control modules, a proportionate share of the bandwidth limit based on a number of slices owned by each of the control modules, the proportionate share of the bandwidth limit indicated by a budget value via a budget byte window; prior to initiating a scan of the slices by an initiator thread, identifying one or more budget byte windows of the plurality of control modules having a budget value equal to or exceeding a predetermined value, allocating the budget value for the one or more budget byte windows to the initiator thread, and reducing the budget value corresponding to the one or more budget byte windows by the predetermined value; initiating, by a routing module for each of the control modules, the initiator thread for slices corresponding to the identified one or more budget byte windows, the initiator thread scanning the slices; sending, by the routing module, values representing a number of bytes transmitted and corresponding number of pages to respective control modules resulting from the scanning; and updating, by the control modules, corresponding budget byte windows based on the values sent by the routing module. 2. The method of claim 1 , further comprising: suppressing scanning, by the initiator thread, of slices corresponding to the control modules identified with a budget byte window having a budget value that is less than the predetermined value. 3. The method of claim 1 , wherein the proportionate share of the bandwidth limit for each of the plurality of control modules is calculated by dividing the value representing the bandwidth limit by a number of the plurality of control modules of the storage system. 4. The method of claim 1 , wherein each of the plurality of control modules manages 256 slices of storage devices in the storage system and the budget byte window is represented as a page size multiplied by the 256 slices. 5. The method of claim 4 , wherein the budget byte window reflects a maximum number of address/hash pairs for a control-to-routing task. 6. The method of claim 1 , further comprising: during the scanning of one of the slices, creating control-to-routing tasks for pages up to a specified size limit; if the scanning is not completed after the specified size limit is reached, marking the one of the slices as incomplete, and saving the one of the slices and a last-offset pair in a corresponding replication session object slice table; and if the scanning is completed but the specified size limit is not reached, updating a corresponding budget byte window to reflect a number of pages used. 7. The method of claim 1 , further comprising: upon completion of the scanning of all of the plurality of control modules, updating corresponding budget byte window for each of the plurality of control modules, the updating comprising: for each of the plurality of control modules: determining a number of bytes currently sent during the replication session as a running sum of bytes transmitted from routing modules plus pages inflight multiplied by a running average of bytes per page from the routing modules; and determining an effective number of bytes to send as a time since a last reset in milliseconds multiplied by the budget value minus the number of bytes currently sent; wherein the updating the corresponding budget byte window comprises updating the budget byte window with the effective number of bytes to send; wherein an updated budget byte window is used to determine whether sufficient budget exists to send a selected control-to-routing task to a respective routing module. 8. A system for implementing bandwidth control for an asynchronous replication session at a storage system, comprising; a memory comprising computer-executable instructions; and a processor executing the computer-executable instructions, the computer-executable instructions when executed by the processor cause the processor to perform operations comprising: receiving a request to set a bandwidth limit on the replication session; updating, by a system manager of the storage system, a replication session object with a value representing the bandwidth limit; sending, by the system manager, the value representing the bandwidth limit to each of a plurality of control modules of the storage system; calculating, by each of the control modules, a proportionate share of the bandwidth limit based on a number of slices owned by each of the control modules, the proportionate share of the bandwidth limit indicated by a budget value via a budget byte window; prior to initiating a scan of the slices by an initiator thread, identifying one or more budget byte windows of the plurality of control modules having a budget value equal to or exceeding a predetermined value, allocating the budget value for the one or more budget byte windows to the initiator thread, and reducing the budget value corresponding to the one or more budget byte windows by the predetermined value; initiating, by a routing module for each of the control modules, the initiator thread for slices corresponding to the identified one or more budget byte windows, the initiator thread scanning the slices; sending, by the routing module, values representing a number of bytes transmitted and corresponding number of pages to respective control modules resulting from the scanning; and updating, by the control modules, corresponding budget byte windows based on the values sent by the routing module. 9. The system of claim 8 , wherein the operations further comprise: suppressing scanning, by the initiator thread, of slices corresponding to the control modules identified with a budget byte window having a budget value that is less than the predetermined value. 10. The system of claim 8 , wherein the proportionate share of the bandwidth limit for each of the plurality of control modules is calculated by dividing the value representing the bandwidth limit by a number of the plurality of control modules of the storage system. 11. The system of claim 8 , wherein each of the plurality of control modules manages 256 slices of storage devices in the storage system and the budget byte window is represented as a page size multiplied by the 256 slices. 12. The system of claim 11 , wherein the budget byte window reflects a maximum number of address/hash pairs for a control-to-routing task. 13. The system of claim 8 , wherein the operations further comprise: during the scanning of one of the slices, creating control-to-routing tasks for pages up to a specified size limit; if the scanning is not completed after the specified size limit is reached, marking the one of the slices as incomplete, and saving the one of the slices and a last-offset pair in a corresponding replication session object slice table; and if the scanning is completed but the specified size limit is not reached, updating a corresponding budget byte window to reflect a number of pages used. 14. The system of claim 8 , wherein the operations further comprise: upon completion of the scanning of all of the plurality of control modules, updating corresponding budget byte window for each of the plurality of con

Assignees

Inventors

Classifications

  • involving virtual machines · CPC title

  • using file system or storage system metadata · CPC title

  • Management of the data involved in backup or backup restore · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • Replication mechanisms · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10776015B1 cover?
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…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F11/1448. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 15 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).