Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment

US9600184B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9600184-B2
Application numberUS-201514866461-A
CountryUS
Kind codeB2
Filing dateSep 25, 2015
Priority dateDec 6, 2007
Publication dateMar 21, 2017
Grant dateMar 21, 2017

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.

An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the first and second data have at least a portion of overlapping data. The second storage request is received after the first storage request. The append/invalidate module updates an index by marking data being overwritten as invalid. A restructure module updates the index based on the first data and updates the index based on the second data. The updated index is organized to indicate that the second data is more current than the first data regardless of processing order. The modules prevent access to the index until the modules have completed updating the index.

First claim

Opening claim text (preview).

What is claimed is: 1. An apparatus comprising: a controller configured to: receive, at a first time, a first storage request to store data on a non-volatile storage medium; receive, at a second time after the first time, a second storage request to store data on the non-volatile storage medium; and update an index based on the second storage request before updating the index based on the first storage request, wherein the index is updated with information corresponding to the second storage request, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. 2. The apparatus of claim 1 , wherein updating the index based on the second storage request before updating the index based on the first storage request indicates that the second storage request is more current than the first storage request. 3. The apparatus of claim 1 , wherein the controller is further configured to order the first and second storage requests to service the second storage request before the first storage request. 4. The apparatus of claim 1 , wherein the controller is further configured to compress data corresponding to the first and second storage requests before servicing the first and second storage requests. 5. The apparatus of claim 1 , wherein the controller is further configured to receive a read request prior to receiving the first storage request. 6. The apparatus of claim 5 , wherein the read request is performed after servicing one or more of the first and second storage requests. 7. An apparatus comprising: means for receiving, at a first time, a first storage command to store data on a non-volatile storage media; means for receiving, at a second time after the first time, a second storage command to store data on the non-volatile storage media; means for ordering the first and second storage commands to perform the second storage command before the first storage command; and means for updating an index based on the second storage command before updating the index based on the first storage command, wherein the index is updated with information corresponding to the second storage command, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. 8. The apparatus of claim 7 , further comprising means for blocking performing at least a portion of the first storage command that overlaps with a portion of the second storage command. 9. The apparatus of claim 7 , further comprising means for compressing data corresponding to the first and second storage commands before performing the first and second storage commands. 10. The apparatus of claim 7 , further comprising means for receiving a read request after receiving the first storage command and prior to receiving the second storage command. 11. The apparatus of claim 10 , wherein the read request is performed after performing both of the first and second storage commands. 12. A method comprising: receiving, at a first time, a first storage request to store data on a non-volatile storage media; receiving, at a second time after the first time, a second storage request to store data on the non-volatile storage media; servicing the second storage request before servicing the first storage request; and updating an index based on the second storage request before updating the index based on the first storage request, wherein the index is updated with information corresponding to the second storage request, the index comprises mappings between physical addresses and logical addresses, and the index is used to update one or more of a forward map and a reverse map. 13. The method of claim 12 , comprising receiving a read request prior to receiving the first storage request. 14. The method of claim 13 , wherein the read request is performed after servicing one or more of the first and second storage requests. 15. The method of claim 12 , comprising receiving a read request after receiving the first storage request and prior to receiving the second storage request. 16. The method of claim 15 , wherein the read request is performed after servicing both of the first and second storage requests. 17. The method of claim 12 , wherein the at least one of the first and second storage requests is a request to store data comprising a data segment and a data header. 18. The method of claim 17 , wherein the data header comprises source parameters.

Assignees

Inventors

Classifications

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Management of blocks · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP] · CPC title

  • Management of files · 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 US9600184B2 cover?
An apparatus, system, and method are disclosed for coordinating storage requests in a multi-processor/multi-thread environment. An append/invalidate module generates a first append data storage command from a first storage request and a second append data storage command from a second storage request. The storage requests overwrite existing data with first and second data including where the fi…
Who is the assignee on this patent?
Longitude Entpr Flash S A R L, Sandisk Technologies Llc
What technology area does this patent fall under?
Primary CPC classification G06F3/061. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 21 2017 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).