Cluster scale synchronization of producer consumer file access via multi-protocol nodes

US9830331B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9830331-B2
Application numberUS-201514703745-A
CountryUS
Kind codeB2
Filing dateMay 4, 2015
Priority dateMay 4, 2015
Publication dateNov 28, 2017
Grant dateNov 28, 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.

In a storage cluster, a producer and a consumer can be remote from each other and have different capabilities. For example, a consumer may be running on a computing node (hereinafter “node”) that operates faster than a node hosting a producer. In addition, network conditions can impact communications to/from the producer and/or the consumer. This environment allows the possibility of a consumer violating sequential access constraints of a file when a producer is writing to the file. This can lead to the consumer reading incorrect data. A file system can ensure compliance with serialization of a concurrently accessed file by obtaining a lock on a subsequent file range before releasing a currently held write lock.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: obtaining a write lock for a first computing entity on a first range of a file in response to a first request to write to the file from the first computing entity and after determining that the first range is not locked, wherein the file is hosted in a storage cluster; determining a second range of the file to be written for the first computing entity; obtaining a write lock for the first computing entity on the second range after determining that the first computing entity will write to the second range and before releasing the write lock on the first range; preventing a second computing entity, which runs on a different computing node than the first computing entity, from reading a third range of the file that at least partially overlaps with either the first range or the second range while the first computing entity has the write locks on both the first and second ranges; and obtaining a shared lock for the second computing entity for reading the third range after obtaining the first computing entity the write lock on the second range and releasing the write lock on the first range. 2. The method of claim 1 further comprising translating a second request into the first request, wherein the second request was received from a client accessing the storage cluster. 3. The method of claim 2 , wherein translating the second request into the first request comprises translating a file access protocol request into a local file system operation. 4. The method of claim 1 , wherein the write lock is an exclusive byte range lock and the read lock is a shared byte range lock. 5. The method of claim 1 further comprising preventing a third computing entity from obtaining a second write lock on a fourth range of the file that at least partially overlaps with the either the first range or the second range of the file. 6. The method of claim 1 , wherein the second range is indicated in either the first request or a third request, wherein the third request requests writing by the first computing entity to the second range. 7. One or more non-transitory machine-readable media having program code stored therein, the program code comprising program code to: obtain a write lock for a first computing entity on a first range of a file in response to a first request to write to the file from the first computing entity and after determining that the first range is not locked, wherein the file is hosted in a storage cluster; determine a second range of the file to be written for the first computing entity; obtain a write lock for the first computing entity on the second range after a determination that the first computing entity will write to the second range and before release of the write lock on the first range; prevent a second computing entity, which runs on a different computing node than the first computing entity, from reading a third range of the file that at least partially overlaps with either the first range or the second range while the first computing entity has the write locks on both the first and second ranges; and obtain a shared lock for the second computing entity for reading the third range after obtaining of the write lock on the second range for the first computing entity and release of the write lock on the first range. 8. The one or more non-transitory machine-readable media of claim 7 further having stored therein program code to translate a second request into the first request, wherein the second request was received from a client accessing the storage cluster. 9. The one or more non-transitory machine-readable media of claim 8 , wherein the program code to translate the second request into the first request comprises program code to translate a file access protocol request into a local file system operation. 10. The one or more non-transitory machine-readable media of claim 7 , wherein the write lock is an exclusive byte range lock and the read lock is a shared byte range lock. 11. The one or more non-transitory machine-readable media of claim 7 further having stored therein program code to prevent a third computing entity from obtaining a second write lock on a fourth range of the file that at least partially overlaps with the either the first range or the second range of the file. 12. The one or more non-transitory machine-readable media of claim 7 , wherein the second range is indicated in either the first request or a third request, wherein the third request requests writing by the first computing entity to the second range. 13. The one or more non-transitory machine-readable media of claim 7 , wherein the third range is the same as either the first range or the second range. 14. The one or more non-transitory machine-readable media of claim 7 , further having stored therein program code to release the write lock on the first range after obtaining of the write lock on the second range for the first computing entity. 15. An apparatus comprising: a processor; a network interface; and a machine readable medium having program code stored therein, the program code executable by the processor to cause the apparatus to, obtain a write lock for a first computing entity on a first range of a file in response to a first request to write to the file from the first computing entity and after determining that the first range is not locked, wherein the file is hosted in a storage cluster; determine a second range of the file to be written for the first computing entity; obtain a write lock for the first computing entity on the second range after a determination that the first computing entity will write to the second range and before release of the write lock on the first range; prevent a second computing entity, which runs on a different computing node than the first computing entity, from reading a third range of the file that at least partially overlaps with either the first range or the second range while the first computing entity has the write locks on both the first and second ranges; and obtain a shared lock for the second computing entity for reading the third range after obtaining of the write lock on the second range for the first computing entity and release of the write lock on the first range. 16. The apparatus of claim 15 , wherein the machine readable medium further has stored therein program code to translate a second request into the first request, wherein the second request was received from a client accessing the storage cluster. 17. The apparatus of claim 16 , wherein the program code to translate the second request into the first request comprises program code to translate a file access protocol request into a local file system operation. 18. The apparatus of claim 15 , wherein the machine readable medium further has stored therein program code to prevent a third computing entity from obtaining a second write lock on a fourth range of the file that at least partially overlaps with the either the first range or the second range of the file. 19. The apparatus of claim 15 , wherein the second range is indicated in either the first request or a third request, wherein the third request requests writing by the first computing entity to the second range. 20. The apparatus of claim 15 , wherein the machine readable medium further has stored therein program code to release the write lock on the first range after obtaining of the write lock on the second range for the first computing entity.

Assignees

Inventors

Classifications

  • Concurrency control, e.g. optimistic or pessimistic approaches · CPC title

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

  • Physics · mapped topic

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 US9830331B2 cover?
In a storage cluster, a producer and a consumer can be remote from each other and have different capabilities. For example, a consumer may be running on a computing node (hereinafter “node”) that operates faster than a node hosting a producer. In addition, network conditions can impact communications to/from the producer and/or the consumer. This environment allows the possibility of a consumer…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/1767. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 28 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).