Granular sync/semi-sync architecture

US9571575B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9571575-B2
Application numberUS-201414473621-A
CountryUS
Kind codeB2
Filing dateAug 29, 2014
Priority dateAug 29, 2014
Publication dateFeb 14, 2017
Grant dateFeb 14, 2017

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.

Data consistency and availability can be provided at the granularity of logical storage objects in storage solutions that use storage virtualization in clustered storage environments. To ensure consistency of data across different storage elements, synchronization is performed across the different storage elements. Changes to data are synchronized across storage elements in different clusters by propagating the changes from a primary logical storage object to a secondary logical storage object. To satisfy the strictest RPOs while maintaining performance, change requests are intercepted prior to being sent to a filesystem that hosts the primary logical storage object and propagated to a different managing storage element associated with the secondary logical storage object.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a filesystem request being generated from a storage protocol input/output request targeting a first local storage object, the filesystem request being intercepted prior to being sent to a filesystem; determining from synchronization configuration data that the first logical storage object has a synchronization relationship with a second logical storage object; determining from the synchronization configuration data a synchronization relationship type of the synchronization relationship from a plurality of synchronization relationship types; and where the synchronization relationship type is a semi-synchronous relationship type: accumulating, during a time interval, filesystem requests that target the first logical storage object, wherein the filesystem requests include the filesystem request; supplying each of the filesystem requests to the filesystem; determining dependencies among accumulated filesystem requests that indicate changes to be made to the first logical storage object; recording sequencing information to preserve the dependencies, the recording comprising recording the sequencing information into accumulated filesystem requests that have a dependency and that indicate a change to be made to the first logical storage object; and supplying, to a node associated with the second logical storage object, the sequencing information and accumulated filesystem requests that indicate changes to be made to the second logical storage object. 2. The method of claim 1 further comprising: where the synchronization relationship type is a full synchronization relationship type specifying that responses are not to be returned to requesters until changes are made to both primary logical storage objects and secondary logical storage objects: supplying the filesystem request to the filesystem; generating a request based on the filesystem request to create a generated request indicating that the second logical storage object is a target; supplying the generated request for transmission to the node associated with the second logical storage object; and upon the storage input/output request successfully being implemented upon the first logical storage object and the generated request successfully being implemented upon the second logical storage object, supplying a response to a requester of the storage protocol input/output request that indicates success of the storage input/output request. 3. The method of claim 1 further comprising eliminating redundant filesystem requests that indicate changes to be made to the first logical storage object. 4. The method of claim 1 further comprising supplying metadata that indicates a total number of the accumulated filesystem requests that indicate changes to be made to the first logical storage object. 5. The method of claim 4 further comprising recording the metadata into accumulated filesystem requests that will be supplied to the node associated with the second logical storage object. 6. The method of claim 1 , further comprising supplying a failure response to the requester that indicates failure of the storage input/output request if a change indicated by the storage input/output request is not successfully made to the second logical storage object. 7. The method of claim 1 , wherein the plurality of synchronization relationship types comprise a cascading relationship type. 8. The method of claim 1 further comprising supplying a failure response to the requester that indicates failure of the storage input/output request if a change indicated by the storage input/output request is not successfully made to the first logical storage object. 9. A non-transitory machine readable medium having stored thereon instructions for performing a method comprising program code which when executed by at least one machine, causes a machine to: receive a filesystem request being generated from a storage protocol input/output request targeting a first local storage object, the filesystem request being intercepted prior to being sent to a filesystem; determine from synchronization configuration data that the first logical storage object has a synchronization relationship with a second logical storage object; determine from the synchronization configuration data a synchronization relationship type of the synchronization relationship from a plurality of synchronization relationship types; and where the synchronization relationship type is a semi-synchronous relationship type: accumulate, during a time interval, filesystem requests that target the first logical storage object, wherein the filesystem requests include the filesystem request; supply each of the filesystem requests to the filesystem; determine dependencies among accumulated filesystem requests that indicate changes to be made to the first logical storage object; record sequencing information to preserve the dependencies, the recording comprising recording the sequencing information into accumulated filesystem requests that have a dependency and that indicate a change to be made to the first logical storage object; and supply, to a node associated with the second logical storage object, the sequencing information and accumulated filesystem requests that indicate changes to be made to the second logical storage object. 10. The non-transitory machine readable medium of claim 9 further comprising program code to: where the synchronization relationship type is a full synchronization relationship type specifying that responses are not to be returned to requestors until changes are made to both primary logical storage objects and secondary logical storage objects: supply the filesystem request to the filesystem; generate a request based on the filesystem request to create a generated request indicating that the second logical storage object is a target; supply the generated request for transmission to the node associated with the second logical storage object; and upon the storage input/output request successfully being implemented upon the first logical storage object and the generated request successfully being implemented upon the second logical storage object, supply a response to a requestor of the storage protocol input/output request that indicates success of the storage input/output request. 11. The non-transitory machine readable medium of claim 9 further comprising program code to eliminate redundant filesystem requests that indicate changes to be made to the first logical storage object. 12. The non-transitory machine readable medium of claim 9 further comprising program code to supply metadata that indicates a total number of the accumulated filesystem requests that indicate changes to be made to the first logical storage object. 13. The non-transitory machine readable medium of claim 12 further comprising program code to record the metadata into accumulated filesystem requests that will be supplied to the node associated with the second logical storage object. 14. The non-transitory machine readable medium of claim 9 further comprising program code to supply a failure response to the requester that indicates failure of the storage input/output request if a change indicated by the storage input/output request is not successfully made to the second logical storage object. 15. The non-transitory machine readable medium of claim 9 further comprising program code to supply a failure response to the requester that indicates failure of the storage input/output request if a change indicated by the storage input/output request is not successfully

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Replication mechanisms · CPC title

  • Management specifically adapted to replicated file systems · 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 US9571575B2 cover?
Data consistency and availability can be provided at the granularity of logical storage objects in storage solutions that use storage virtualization in clustered storage environments. To ensure consistency of data across different storage elements, synchronization is performed across the different storage elements. Changes to data are synchronized across storage elements in different clusters b…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification H04L67/1095. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Feb 14 2017 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).