Replication of log-structured data

US10346387B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10346387-B2
Application numberUS-201615180720-A
CountryUS
Kind codeB2
Filing dateJun 13, 2016
Priority dateJun 13, 2016
Publication dateJul 9, 2019
Grant dateJul 9, 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.

A method includes a primary storage unit receiving a first write request including a first key and a first value; persisting the first value in a first non-volatile memory in association with the first key; broadcasting the first write request and a first set of globally-durable keys to secondary storage units; receiving, from the secondary storage units, an acknowledgement of the first write request and a first set of locally-durable keys, each of the first sets of locally-durable keys including the first key; the primary storage unit receiving a second write request including a second key and a second value; persisting the second value in the first non-volatile memory in association with the second key; and broadcasting the second write request and a second set of globally-durable keys to the secondary storage units, the second set of locally-durable keys including the first key. A system is also disclosed.

First claim

Opening claim text (preview).

What is claimed is: 1. A system comprising a primary storage unit and one or more secondary storage units: a primary storage unit comprising: a first non-volatile memory; a first memory storing processor-executable process steps; and a first processor to execute the processor-executable process steps to cause the primary storage unit to: define two or more epochs from a directory of available storage units and storage cluster configuration information, each of the epochs specifying a primary storage unit and a respective set of secondary storage units of the one or more secondary storage units; set each of the one or more secondary storage units to a respective epoch selected from the two or more epochs; designate one of the two or more epochs as a current epoch; receive a first write request from a client including a first key and a first value; persist the first value in the first non-volatile memory in association with the first key; broadcast the first write request and a first set of globally-durable keys to the one or more secondary storage units; receive, from each of the one or more secondary storage units set to the current epoch, an acknowledgement of the first write request and a first set of locally-durable keys, each of the first sets of locally-durable keys including the first key; each of the one or more secondary storage units not set to the current epoch ignores or rejects the first write request; in response to the reception of the acknowledgement of the first write request and the first set of locally-durable keys from each of the one or more secondary storage units, transmit an acknowledgement of the first write request to the client; receive a second write request from the client including a second key and a second value; persist the second value in the first non-volatile memory in association with the second key; and broadcast the second write request and a second set of globally-durable keys to the one or more secondary storage units, the second set of globally-durable keys including the first key; wherein the primary storage unit stores a first configuration index associated with the storage cluster, wherein the first write request includes a configuration index, and wherein the first processor is to execute the processor-executable process steps to cause the primary storage unit to: determine whether the received configuration index is identical to first configuration index; and ignore the first write request if it is determined that the received configuration index is not identical to first configuration index. 2. The system according to claim 1 , comprising: a secondary storage unit comprising: a second non-volatile memory; a second memory storing processor-executable process steps; and a second processor to execute the processor-executable process steps to cause the secondary storage unit to: receive the first write request from the primary storage unit; in response to reception of the first write request, persist the first value in the second non-volatile memory in association with the first key, and transmit the acknowledgement of the first write request and the first set of locally-durable keys to the primary storage unit; receive the second write request and the second set of globally-durable keys from the primary storage unit; and in response to reception of the second write request and the second set of globally-durable keys, persist the second value in the second non-volatile memory in association with the second key, persist a listing of the second set of globally-durable keys, and transmit the acknowledgement of the second write request and a second set of locally-durable keys to the primary storage unit, the second set of locally-durable keys including the first key and the second key. 3. The system according to claim 2 , comprising: a management host comprising: a third memory storing processor-executable process steps; and a third processor to execute the processor-executable process steps to cause the management host to: determine to remove a storage unit from the storage cluster; instruct each storage unit of the storage cluster to become read-only; receive a list of globally-durable and locally-durable keys from one or more of the storage units of the cluster; determine a recovery set of globally-durable keys based on the lists of globally-durable and locally-durable keys; define a second storage cluster comprising two or more storage units, the two or more storage units comprising a prior storage unit which was a storage unit of the storage cluster and a prior storage unit which was not a storage unit of the storage cluster; and transmit the recovery set of globally-durable keys to the two or more storage units of the second storage cluster. 4. The system according to claim 1 , the first processor to further execute the processor-executable process steps to cause the system to: receive a third write request from a second client including a third key and a third value; persist the third value in the first non-volatile memory in association with the third key; broadcast the third write request and a third set of globally-durable keys to the one or more secondary storage units; receive, from each of the one or more secondary storage units, an acknowledgement of the third write request and a third set of locally-durable keys, each of the third sets of locally-durable keys including the first key, the second key and the third key; and in response to the reception of the acknowledgement of the third write request and the third set of locally-durable keys from each of the one or more secondary storage units, transmit an acknowledgement of the second write request to the client. 5. The system according to claim 4 , the first processor to further execute the processor-executable process steps to cause the system to: receive a fourth write request from the second client including a fourth key and a fourth value; persist the fourth value in the first non-volatile memory in association with the fourth key; broadcast the fourth write request and a fourth set of globally-durable keys to the one or more secondary storage units; receive, from each of the one or more secondary storage units, an acknowledgement of the fourth write request and a fourth set of locally-durable keys, each of the fourth sets of locally-durable keys including the first key, the second key, the third key and the fourth key; and in response to the reception of the acknowledgement of the fourth write request and the fourth set of locally-durable keys from each of the one or more secondary storage units, transmit an acknowledgement of the third write request to the second client. 6. The system according to claim 1 , comprising: a management host comprising: a third memory storing processor-executable process steps; and a third processor to execute the processor-executable process steps to cause the management host to: determine to remove a storage unit from the storage cluster; instruct each storage unit of the storage cluster to become read-only; receive a list of globally-durable and locally-durable keys from one or more of the storage units of the cluster; determine a recovery set of globally-durable keys based on the lists of globally-durable and locally-durable keys; define a second storage cluster comprising two or more storage units, the two or more storage units comprising a prior storage unit which was a storage unit of the storage cluster and a prior storage unit which was not a storage unit of the storage cluster; and transmit the recovery set of globally-durable keys to the two or more storage units of the second storage cluster. 7. The system according to claim 6 , wherein determination

Assignees

Inventors

Classifications

  • Ensuring data consistency and integrity · CPC title

  • using more than 2 mirrored copies · CPC title

  • maintaining the standby controller/processing unit updated (initialisation or re-synchronisation thereof G06F11/1658 and subgroups) · CPC title

  • Change logging, detection, and notification (replication G06F16/27) · CPC title

  • Optimisation of the communication load · 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 US10346387B2 cover?
A method includes a primary storage unit receiving a first write request including a first key and a first value; persisting the first value in a first non-volatile memory in association with the first key; broadcasting the first write request and a first set of globally-durable keys to secondary storage units; receiving, from the secondary storage units, an acknowledgement of the first write r…
Who is the assignee on this patent?
Sap Se
What technology area does this patent fall under?
Primary CPC classification G06F16/2358. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 09 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 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).