Non-idempotent primitives in fault-tolerant memory

US10409681B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10409681-B2
Application numberUS-201515500067-A
CountryUS
Kind codeB2
Filing dateJan 30, 2015
Priority dateJan 30, 2015
Publication dateSep 10, 2019
Grant dateSep 10, 2019

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 retransmission sequence involving non-idempotent primitives in a fault-tolerant memory fabric may be modified. For example, a redundancy controller may request a sequence to access a stripe in the fault-tolerant memory fabric, wherein the sequence involves a non-idempotent primitive. In response to determining an expiration of a time threshold for the non-idempotent primitive, the redundancy controller may read other data in other cachelines in the stripe, calculate a new parity value by performing an idempotent exclusive-or primitive on the new data with the other data in the stripe, and write the new parity to the stripe using an idempotent write primitive.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for modifying a retransmission sequence involving non-idempotent primitives in a fault-tolerant memory fabric, the method comprising: requesting, by a redundancy controller, a sequence to access a stripe in the fault-tolerant memory fabric, wherein the sequence involves a non-idempotent primitive; and in response to determining an expiration of a time threshold for the non-idempotent primitive, reading other data in other cachelines in the stripe, using redundant array of independent disks (RAID) to regenerate data that was potentially corrupted by a first transmission of the non-idempotent primitive, writing the regenerated data to the stripe, reissuing the non-idempotent primitive on an alternate fabric route, calculating a new parity value by performing an idempotent exclusive-or primitive on the new data with the other data in the stripe, and writing the new parity to the stripe using the idempotent write primitive. 2. The method of claim 1 , further comprising: acknowledging that the requested non-idempotent primitive has been completed on the stripe in response to receiving a response to the requested non-idempotent primitive within the time threshold. 3. The method of claim 2 , wherein acknowledging that the non-idempotent primitive has been completed on the stripe further comprises: requesting another non-idempotent primitive in the sequence; in response to determining an expiration of the time threshold for the other non-idempotent primitive, reading other data in the other cachelines in the stripe, using RAID to regenerate data that was potentially corrupted by a first transmission of the other non-idempotent primitive, writing the regenerated data to the stripe, calculating a new parity value by performing an idempotent exclusive-or primitive on the new data with the other data in the stripe, and writing the new parity to the stripe using the idempotent write primitive. 4. The method of claim 1 , wherein the time threshold is a predefined duration in which a completion message to a requested primitive is expected to be received at the redundancy controller from the media controller. 5. The method of claim 1 , further comprising: obtaining a stripe lock prior to requesting the sequence to access the stripe in the memory fabric; and releasing the stripe lock in response to completing the sequence. 6. The method of claim 1 , wherein the non-idempotent primitive comprises an optimized swap primitive that merges a data read primitive and a data write primitive into a single primitive. 7. The method of claim 1 , wherein the non-idempotent primitive comprises an optimized exclusive-or primitive that merges a parity read primitive and a parity write primitive merged into a single primitive. 8. The method of claim 7 , wherein the optimized exclusive-or primitive further comprises: performing the idempotent exclusive-or primitive on old data from the cacheline with the new data from the cacheline to determine a resulting exclusive-or value; performing the idempotent exclusive-or primitive on the resulting exclusive-or value with an old parity to determine a new parity; and writing the new parity to the stripe using the idempotent write primitive. 9. The method of claim 1 , wherein prior to requesting the sequence to access the stripe, determining whether the redundancy controller is in degraded mode; and in response to determining that the redundancy controller is in the degraded mode, requesting an alternate sequence involving only idempotent primitives. 10. A redundancy controller to modify a retransmission sequence involving non-idempotent primitives in a fault-tolerant memory fabric, the redundancy controller comprising: a time module to identify a time threshold for receiving an acknowledgement to a non-idempotent primitive; a sequence module to initiate a sequence that includes at least one non-idempotent primitive to access a stripe in the fault-tolerant memory fabric; and a modification module to, in response to the time module determining an expiration of the time threshold for the non-idempotent primitive: request a read of other data in other cachelines in the stripe, request the use of redundant array of independent disks (RAID) to regenerate data that was potentially corrupted by a first transmission of the non-idempotent primitive, request a write of the regenerated data to the stripe, request a computation of a new parity value, wherein the computation includes performing an idempotent exclusive-or primitive on the new data with the other data in the stripe, and request the idempotent write primitive to write the new parity to the stripe. 11. The redundancy controller of claim 10 , wherein in response to receiving the acknowledgement of the non-idempotent primitive within the time threshold, the sequence module is to acknowledge that the requested non-idempotent primitive has been completed on the stripe. 12. The redundancy controller of claim 10 , wherein the sequence module is to: obtain a stripe lock prior to requesting the sequence to access the stripe in the memory fabric; and release the stripe lock in response to completing the sequence. 13. A non-transitory computer readable medium to obtain a lock for a stripe from a media controller to perform a sequence of non-idempotent primitives, including machine readable instructions executable by a processor to: request a lock on the stripe; request a sequence with a non-idempotent primitive on the stripe; in response to determining an expiration of a time threshold for receiving a completion message for the non-idempotent primitive, initiate a use of redundant array of independent disks (RAID) to regenerate data that was potentially corrupted by a first transmission of the non-idempotent primitive, initiate a write of the regenerated data to the stripe, initiate a computation of a new parity value, wherein the computation includes performing an idempotent exclusive-or primitive on the new data with the other data in other cachelines in the stripe, and initiate the idempotent write primitive to write the new parity to the stripe; in response to receiving a response to the non-idempotent primitive within the time threshold, acknowledge the completion of the non-idempotent primitive on the stripe; and release the lock for the stripe. 14. The non-transitory computer readable medium of claim 13 , wherein to acknowledge the completion of the non-idempotent primitive on the stripe, the machine readable instructions are executable by the processor to request another non-idempotent primitive in the sequence. 15. The non-transitory computer readable medium of claim 13 , wherein in response to determining the expiration of the time threshold for the other non-idempotent primitive, the machine readable instructions are executable by the processor to: initiate a read of the other data in the other cachelines in the stripe, initiate a use of RAID to regenerate data that was potentially corrupted by a first transmission of the non-idempotent primitive, initiate a write of the regenerated data to the stripe, initiate a computation of a new parity value by performing an idempotent exclusive-or primitive on the new data with the other data in the stripe, and initiate a write of the new parity to the stripe using the idempotent write primitive.

Assignees

Inventors

Classifications

  • using redundant communication media · CPC title

  • Transmit or communication errors · CPC title

  • Reconstruction on already foreseen single or plurality of spare disks · CPC title

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

  • Disk arrays, e.g. RAID, JBOD · 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 US10409681B2 cover?
According to an example, a retransmission sequence involving non-idempotent primitives in a fault-tolerant memory fabric may be modified. For example, a redundancy controller may request a sequence to access a stripe in the fault-tolerant memory fabric, wherein the sequence involves a non-idempotent primitive. In response to determining an expiration of a time threshold for the non-idempotent p…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F11/1443. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Sep 10 2019 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).