Serializing access to fault tolerant memory

US10540109B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10540109-B2
Application numberUS-201415314710-A
CountryUS
Kind codeB2
Filing dateSep 2, 2014
Priority dateSep 2, 2014
Publication dateJan 21, 2020
Grant dateJan 21, 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.

According to an example, a lock may be requested by a first redundancy controller from a parity media controller to perform a first sequence that accesses multiple memory modules in a stripe. The lock may be acquired for the stripe so that the first sequence may be performed on the stripe. The lock may then be released from the stripe.

First claim

Opening claim text (preview).

What is claimed is: 1. A method to serialize concurrent accesses by multiple redundancy controllers to fault tolerant memory, the method comprising: requesting, by a first redundancy controller, a lock from a parity media controller to perform a first sequence that accesses multiple memory modules in a stripe acquiring the lock for the stripe; performing the first sequence on the stripe; and releasing the lock for the stripe, wherein acquiring the lock for the stripe comprises: determining from a stripe-specific flag in the parity media controller whether the stripe is locked or unlocked; and in response to the stripe being currently locked, adding the lock request to a conflict queue of the parity media controller for later grant of the lock when the current lock is released, and in response to the stripe being unlocked, acquiring the lock for the stripe; and wherein releasing the lock for the stripe comprises: identifying that a duration of the lock has exceeded a predetermined time threshold; removing the lock for the stripe; flagging the stripe's parity cacheline as invalid. 2. The method of claim 1 , wherein acquiring the lock for the stripe comprises: providing the first redundancy controller exclusive access to the stripe, wherein the exclusive access prevents a second redundancy controller from concurrently performing a second sequence that accesses multiple memory modules in the stripe during the lock. 3. The method of claim 1 , wherein releasing the lock for the stripe comprises unlocking the stripe in response to the first redundancy controller completing the first sequence that accesses multiple memory modules in the stripe. 4. The method of claim 1 , wherein the stripe includes data stored in at least one data memory modules and parity stored in at least one parity memory module. 5. The method of claim 1 , wherein the first redundancy controller comprises a server. 6. A computing device to serialize concurrent accesses by multiple redundancy controllers to fault tolerant memory, comprising: a hardware redundancy controller to: access a media controller that hosts a parity cacheline in a stripe prior to performing a sequence that accesses multiple memory modules in the stripe; and obtain a lock for the stripe from the media controller, wherein to obtain the lock for the stripe, the media controller is to: determine from a stripe-specific flag in the media controller whether the stripe is locked or unlocked; and in response to the stripe being currently locked, add the lock request to a conflict queue for later granting of the lock when the current lock is released, and in response to the stripe being unlocked, obtain the lock for the stripe; and wherein the media controller is to: identify that a duration of the lock has exceeded a predetermined time thershold; release the lock for the stripe; and flag the stripe's parity as invalid. 7. The computing device of claim 6 , wherein the hardware redundancy controller is to release the lock for the stripe in response to completion of the sequence that accesses multiple memory modules in the stripe. 8. The computing device of claim 6 further comprising the media controller comprising the conflict queue. 9. A system to serialize concurrent accesses by multiple redundancy controllers to fault tolerant memory, comprising: a plurality of servers comprising a plurality of redundancy controllers, each of the redundancy controllers being dedicated to one of the plurality of servers; a plurality of memory modules each including a media controller and a memory, wherein the memory modules are connected to the plurality of redundancy controllers through a memory fabric, wherein each of the redundancy controllers is to: determine that a first sequence accesses multiple memory modules in a stripe; acquire a lock for the stripe from a parity media controller to perform the first sequence; perform the first sequence on the stripe; and release the lock for the stripe; wherein to release the lock for the stripe, the media controller is to: identify that a duration of the lock has exceeded a predetermined time thershold; release the lock for the stripe; and flag the stripe's parity cacheline as invalid. 10. The system of claim 9 , wherein to acquire the lock for the stripe, the media controller is to: determine from a stripe-specific flag in the parity media controller whether the stripe is locked or unlocked; add the lock request to a conflict queue for later grant of the lock in response to the stripe being locked; and acquire the lock for the stripe in response to the stripe being unlocked. 11. The system of claim 10 , wherein the media controller comprises the conflict queue. 12. The system of claim 11 , wherein the conflict queue comprises a first in first out (FIFO) queue. 13. The system of claim 9 , wherein to release the lock for the stripe, a redundancy controller is to unlock the stripe in response to completing the first locked sequence. 14. The system of claim 9 , wherein a redundancy controller is to rebuild a stripe containing a parity cacheline flagged as invalid by performing a locked stripe rebuild sequence.

Assignees

Inventors

Classifications

  • Improving the reliability of storage systems · CPC title

  • G06F3/0637Primary

    Permissions · CPC title

  • Improving or facilitating administration, e.g. storage management · CPC title

  • G06F11/108Primary

    Parity data distribution in semiconductor storages, e.g. in SSD · CPC title

  • Management of space entities, e.g. partitions, extents, pools · 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 US10540109B2 cover?
According to an example, a lock may be requested by a first redundancy controller from a parity media controller to perform a first sequence that accesses multiple memory modules in a stripe. The lock may be acquired for the stripe so that the first sequence may be performed on the stripe. The lock may then be released from the stripe.
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F3/0637. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 21 2020 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).