Data reduction techniques in a flash-based key/value cluster storage
US-9606870-B1 · Mar 28, 2017 · US
US10691373B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10691373-B2 |
| Application number | US-201816038612-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 18, 2018 |
| Priority date | Jul 18, 2018 |
| Publication date | Jun 23, 2020 |
| Grant date | Jun 23, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
An apparatus in one embodiment comprises at least one processing device comprising a processor coupled to a memory. The processing device is configured to receive a request to write a given data object to a write buffer of at least one storage system, to allocate an entry in the write buffer, to generate a header for the given data object comprising a first portion indicating a validation status, to write the header to the allocated entry of the write buffer with the first portion of the header comprising a value indicating invalid status, to write the given data object to the allocated entry of the write buffer, and to update the header of the allocated entry by modifying the value of the first portion of the header to indicate valid status responsive to a successful write of the given data object to the allocated entry of the write buffer.
Opening claim text (preview).
What is claimed is: 1. An apparatus comprising: at least one processing device comprising a processor coupled to a memory; the processing device being configured: to receive a request to write a given data object to a write buffer of at least one storage system; to allocate an entry in the write buffer for storage of the given object; to generate a header for the given data object, the header comprising a first portion indicating a validation status of the given data object; to write the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object; to write the given data object to the allocated entry of the write buffer; and to update the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer; wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects; wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating the header of the allocated entry of the write buffer comprise atomic write operations; and wherein a size of the given data object violates at least one of the one or more size constraints such that writing the given data object to the allocated entry of the write buffer does not comprise an atomic write operation. 2. The apparatus of claim 1 wherein the processing device is implemented in one of: a host device configured to communicate over a network with said at least one storage system that comprises the write buffer; and said at least one storage system that comprises the write buffer. 3. The apparatus of claim 1 wherein the allocated entry comprises an existing entry in the write buffer with a header having a first portion with a value indicating an invalid status for its associated data object. 4. The apparatus of claim 1 wherein the allocated entry comprises a new entry in the write buffer. 5. The apparatus of claim 1 wherein the header for the given data object further comprises a second portion indicating a unique identifier for the given data object. 6. The apparatus of claim 5 wherein the unique identifier for the given data object is provided by an application that is a source of the write request. 7. The apparatus of claim 5 wherein the unique identifier for the given data object comprises a first portion indicating an object type and a second portion indicating an object identifier. 8. The apparatus of claim 5 wherein the processing device is further configured: to search the write buffer for an existing entry with a header having a second portion with the unique identifier for the given data object; and to update the header of the existing entry by modifying a value of a first portion thereof to indicate an invalid status responsive to the successful write of the given data object to the allocated entry of the write buffer. 9. The apparatus of claim 1 wherein writing the given data object to the allocated entry of the write buffer comprises writing the given data object consecutively after the header in the allocated entry of the write buffer. 10. The apparatus of claim 1 wherein the processing device is configured to recover a journal provided by the write buffer utilizing validation status provided by first portions of headers in entries of the write buffer. 11. The apparatus of claim 10 wherein, when during recovery of the journal provided by the write buffer at least two entries thereof have headers with first portions indicating valid status for a same data object, selecting one of the at least two entries as a valid entry and invalidating remaining ones of the at least two entries by modifying values of the first portions of the headers thereof to indicate invalid status. 12. A method comprising: receiving a request to write a given data object to a write buffer of at least one storage system; allocating an entry in the write buffer for storage of the given object; generating a header for the given data object, the header comprising a first portion indicating a validation status of the given data object; writing the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object; writing the given data object to the allocated entry of the write buffer; and updating the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer; wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects; wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating the header of the allocated entry of the write buffer comprise atomic write operations; wherein a size of the given data object violates at least one of the one or more size constraints such that writing the given data object to the allocated entry of the write buffer does not comprise an atomic write operation; and wherein the method is implemented by at least one processing device comprising a processor coupled to a memory. 13. The method of claim 12 wherein the header for the given data object further comprises a second portion indicating a unique identifier for the given data object, and further comprising: searching the write buffer for an existing entry with a header having a second portion with the unique identifier for the given data object; and updating the header of the existing entry by modifying a value of a first portion thereof to indicate an invalid status responsive to the successful write of the given data object to the allocated entry of the write buffer. 14. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes said at least one processing device: to receive a request to write a given data object to a write buffer of at least one storage system; to allocate an entry in the write buffer for storage of the given object; to generate a header for the given data object, the header comprising a first portion indicating a validation status of the given data object; to write the header for the given data object to the allocated entry of the write buffer with the first portion of the header comprising a value indicating an invalid status for the given data object; to write the given data object to the allocated entry of the write buffer; and to update the header of the allocated entry by modifying the value of the first portion of the header to indicate a valid status for the given data object responsive to a successful write of the given data object to the allocated entry of the write buffer; wherein the write buffer is associated with one or more size constraints for atomicity of writing data objects; wherein a size of the header meets the one or more size constraints such that writing the header for the given data object to the allocated entry of the write buffer and updating th
Improving I/O performance · CPC title
Organizing or formatting or addressing of data · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
by allocating resources to storage systems · CPC title
involving logging of persistent data for recovery · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.