Using locks of different scopes in a data storage system to optimize performance and complexity

US9864643B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9864643-B1
Application numberUS-201514788732-A
CountryUS
Kind codeB1
Filing dateJun 30, 2015
Priority dateMay 5, 2015
Publication dateJan 9, 2018
Grant dateJan 9, 2018

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.

Embodiments are directed to methods for allowing an I/O path of a data storage system to directly modify an object model while bypassing the highly-contested transaction lock used by a control path. This may be done by introducing a local lock to be used for individual resources within the object model. The control path also uses this local lock mechanism (in the context of a transaction lock) for essential resources that might be accessed by the I/O path in order to avoid accessing a given essential resource at the same time as the I/O path. A data storage system, apparatus, and computer program product for performing similar methods are also provided.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a data storage system (DSS), the method comprising: receiving, by an I/O path instance operating on a storage processor of the DSS, a plurality of storage write commands directed at data storage of the DSS; determining that fulfillment of a first storage write command of the plurality of storage write commands necessitates a change to a particular essential resource of an object model of the DSS, the object model defining settings for resources of objects that describe elements of the DSS; determining that fulfillment of a second storage write command of the plurality of storage write commands does not necessitate any change to any essential resource within the object model of the DSS; fulfilling the first storage write command by the I/O path instance: obtaining a lock on the particular essential resource of the object model, the lock on the particular essential resource preventing any entity other than the I/O path instance operating on the storage processor of the DSS from changing the particular essential resource; making the change to the particular essential resource within memory of the storage processor while the particular essential resource is locked by the I/O path instance; subsequent to making the change, releasing the lock on the particular essential resource; and performing a remainder of the first storage write command with respect to the data storage of the DSS; and fulfilling the second storage write command by the I/O path instance performing the second storage write command with respect to the data storage of the DSS without obtaining a lock on any essential resource of the object model. 2. The method of claim 1 , wherein the storage processor is a first storage processor and fulfilling the first storage command by the I/O path instance further includes, subsequent to making the change and prior to releasing the lock on the particular essential resource: writing the change to an object model portion of persistent storage of the DSS; and synchronizing with a second storage processor of the DSS to ensure that the second storage processor maintains a consistent copy of the object model within memory of the second storage processor. 3. The method of claim 2 , wherein the method further comprises: subsequent to receiving the first storage write command by the I/O path instance, receiving, by a control path instance operating on one of the first storage processor and the second storage processor of the DSS, a control command directing the control path instance to make another change to the particular essential resource of the object model of the DSS; obtaining a transaction lock by the control path instance, the transaction lock preventing any other control path instance from changing any essential resource of the object model of the DSS; subsequent to obtaining the transaction lock, waiting for the lock on the particular essential resource to be released and subsequently obtaining another lock on the particular essential resource by the control path instance, the other lock preventing any entity other than the control path instance from changing the particular essential resource; making the other change to the particular essential resource within memory of the one of the first storage processor and the second storage processor by the control path instance while the particular essential resource is locked by the control path instance; and subsequent to making the other change, by the control path instance: (1) writing the other change to the object model portion of persistent storage of the DSS; (2) synchronizing with the other of the first storage processor and the second storage processor of the DSS to ensure that both the first storage processor and the second storage processor maintain consistent copies of the object model within memory; (3) releasing the other lock on the particular essential resource; and (4) releasing the transaction lock. 4. The method of claim 2 , wherein the method further comprises: subsequent to receiving the first storage write command by the I/O path instance, receiving, by a control path instance operating on one of the first storage processor and the second storage processor of the DSS, a control command directing the control path instance to make another change to another particular essential resource of the object model of the DSS; obtaining a transaction lock by the control path instance, the transaction lock preventing any other control path instance from changing any essential resource of the object model of the DSS; subsequent to obtaining the transaction lock, obtaining another lock on the other particular essential resource by the control path instance, the other lock preventing any entity other than the control path instance from changing the other particular essential resource; making the other change to the particular essential resource within memory of the one of the first storage processor and the second storage processor by the control path instance while the other particular essential resource is locked by the control path instance; and subsequent to making the other change, by the control path instance: (1) writing the other change to the object model portion of persistent storage of the DSS; (2) synchronizing with the other of the first storage processor and the second storage processor of the DSS to ensure that both the first storage processor and the second storage processor maintain consistent copies of the object model within memory; (3) releasing the other lock on the other particular essential resource; and (4) releasing the transaction lock. 5. The method of claim 4 , wherein the method further comprises: receiving, by another I/O path instance operating on one of the first storage processor and the second storage processor of the DSS, a third storage write command directed at data storage of the DSS; determining that fulfillment of the third storage write command of the plurality of storage write commands necessitates yet another change to the other particular essential resource; waiting for the other lock on the other particular essential resource to be released and subsequently obtaining yet another lock on the other particular essential resource by the other I/O path instance, the yet other lock preventing any entity other than the other I/O path instance from changing the other particular essential resource; making the yet other change to the other particular essential resource within memory of the one of the first storage processor and the second storage processor by the other I/O path instance while the other particular essential resource is locked by the other I/O path instance; and subsequent to making the yet other change, by the other I/O path instance: (1) writing the yet other change to the object model portion of persistent storage of the DSS; (2) synchronizing with the other of the first storage processor and the second storage processor of the DSS to ensure that both the first storage processor and the second storage processor maintain consistent copies of the object model within memory; and (3) releasing the yet other lock on the other particular essential resource; and (4) performing a remainder of the third storage write command with respect to the data storage of the DSS. 6. The method of claim 4 , wherein the method further comprises: receiving, by another I/O path instance operating on one of the first storage processor and the second storage processor of the DSS, a third storage write command directed at data storage of the DSS; determining that fulfillment of the third storage write command of the plurality of storage write commands necessitates yet another change to yet another particular essential resource

Assignees

Inventors

Classifications

  • being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus · CPC title

  • G06F9/526Primary

    Mutual exclusion algorithms · 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 US9864643B1 cover?
Embodiments are directed to methods for allowing an I/O path of a data storage system to directly modify an object model while bypassing the highly-contested transaction lock used by a control path. This may be done by introducing a local lock to be used for individual resources within the object model. The control path also uses this local lock mechanism (in the context of a transaction lock) …
Who is the assignee on this patent?
Emc Corp, Emc Ip Holding Co Llc
What technology area does this patent fall under?
Primary CPC classification G06F13/4221. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 09 2018 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 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).