Limiting bandwidth usage on asynchronous replication sessions for a destination storage system

US10908822B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10908822-B2
Application numberUS-201916456603-A
CountryUS
Kind codeB2
Filing dateJun 28, 2019
Priority dateJun 28, 2019
Publication dateFeb 2, 2021
Grant dateFeb 2, 2021

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 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.

First claim

Opening claim text (preview).

We claim: 1. A method for implementing bandwidth control on asynchronous replication sessions for a destination storage system, the method comprising: receiving a request to set a bandwidth limit on replication sessions for the destination storage system; updating, by a system manager of the destination storage system, a remote system object with a value representing the bandwidth limit; creating a list of routing modules having ownership of each of a plurality of links going to the destination storage system; sending, by the system manager, a value representing a maximum bandwidth per link 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 calculated by dividing the maximum bandwidth limit per link by a number of the plurality of control modules, the proportionate share of the bandwidth limit indicated by a budget value in a budget byte window for each of the routing modules corresponding to a respective control module; prior to initiating a scan of the slices by an initiator thread with respect to a selected routing module, identifying a corresponding budget byte window having a budget value equal to or exceeding a predetermined value, allocating the budget value for the budget byte window to the initiator thread, and reducing the budget value corresponding to the budget byte window by the predetermined value; initiating, by the routing module, the initiator thread for slices corresponding to the identified budget byte window, the initiator thread scanning the slices; sending, by the routing module, values representing a number of bytes transmitted and corresponding number of pages to the respective control module resulting from the scanning; and updating, by the control module, the corresponding budget byte window 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 module 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 request to set the bandwidth limit includes a maximum amount of bandwidth to be used for replication sessions occurring at the destination storage system and a unique identifier of the destination 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 between a control module and a routing module. 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, saving the one of the slices and a last-offset pair in a corresponding bitmap; and if the scanning is completed but the specified size limit is not reached, updating a corresponding budget byte window for the routing module to reflect a number of pages used. 7. The method of claim 1 , further comprising: upon completion of the scanning of each of the plurality of control modules, updating corresponding budget byte windows for corresponding routing 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 to the routing modules 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 on asynchronous replication sessions for a destination 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 replication sessions for the destination storage system; updating, by a system manager of the destination storage system, a remote system object with a value representing the bandwidth limit; creating a list of routing modules having ownership of each of a plurality of links going to the destination storage system; sending, by the system manager, a value representing a maximum bandwidth per link 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 calculated by dividing the maximum bandwidth limit per link by a number of the plurality of control modules, the proportionate share of the bandwidth limit indicated by a budget value in a budget byte window for each of the routing modules corresponding to a respective control module; prior to initiating a scan of the slices by an initiator thread with respect to a selected routing module, identifying a corresponding budget byte window having a budget value equal to or exceeding a predetermined value, allocating the budget value for the budget byte window to the initiator thread, and reducing the budget value corresponding to the budget byte window by the predetermined value; initiating, by the routing module, the initiator thread for slices corresponding to the identified budget byte window, the initiator thread scanning the slices; sending, by the routing module, values representing a number of bytes transmitted and corresponding number of pages to the respective control module resulting from the scanning; and updating, by the control module, the corresponding budget byte window 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 module 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 request to set the bandwidth limit includes a maximum amount of bandwidth to be used for replication sessions occurring at the destination storage system and a unique identifier of the destination 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 between a control module and a routing module. 13. The system of claim 8 , wherein the operati

Assignees

Inventors

Classifications

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

  • G06F3/065Primary

    Replication mechanisms · CPC title

  • in relation to data integrity, e.g. data losses, bit errors · CPC title

  • G06F3/0613Primary

    in relation to throughput · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · 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 US10908822B2 cover?
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 indic…
Who is the assignee on this patent?
Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/065. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).