I/O bandwidth reduction using storage-level common page information

US10523786B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10523786-B2
Application numberUS-201816016455-A
CountryUS
Kind codeB2
Filing dateJun 22, 2018
Priority dateApr 30, 2010
Publication dateDec 31, 2019
Grant dateDec 31, 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.

I/O bandwidth reduction using storage-level common page information is implemented by a storage server, in response to receiving a request from a client for a page stored at a first virtual address, determining that the first virtual address maps to a page that is a duplicate of a page stored at a second virtual address or that the first and second virtual addresses map to a deduplicated page within a storage system, and transmitting metadata to the client mapping the first virtual address to a second virtual address that also maps to the deduplicated page. For one embodiment, the metadata is transmitted in anticipation of a request for the redundant/deduplicated page via the second virtual address. For an alternate embodiment, the metadata is sent in response to a determination that a page that maps to the second virtual address was previously sent to the client.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a first computing device, comprising: receiving a request from a second computing device for a first data block via a first address; determining that the first data block is a duplicate of a second data block stored at a second address based upon a determination that a data structure maps the first address and the second address to same deduplicated data, wherein the data structure is populated by a deduplication algorithm to map addresses to deduplicated data; and transmitting a response to the second computing device to indicate that the first address is mapped to the second address, wherein the response indicates to the second computing device that the second computing device has local access to the second data block using the second address. 2. The method of claim 1 , comprising: determining that the first data block is locally stored by the first computing device at the first address. 3. The method of claim 1 , comprising: determining that the second data block is locally stored by the second computing device as the duplicate of the first data block. 4. The method of claim 1 , comprising: determining that the second data block is stored within a cache associated with the second computing device based upon the first address and the second address corresponding to duplicate data blocks. 5. The method of claim 1 , wherein the deduplication algorithm populates the data structure with entries mapping addresses to data blocks deduplicated by the deduplication algorithm, wherein the request is determined to be redundant based upon the request mapping to multiple addresses within the data structure. 6. The method of claim 1 , comprising: performing a prediction that the first data block is stored within a cache associated with the second computing device as the second data block. 7. The method of claim 1 , comprising: transmitting the first data block to the second computing device based upon a prediction that the first data block is no longer stored as the second data block in a cache associated with the second computing device. 8. The method of claim 1 , comprising: transmitting the first data block to the second computing device based upon a prediction that the first data block is no longer stored as the second data block by the second computing device. 9. The method of claim 1 , comprising: determining that the first address and the second address map to duplicate data blocks based upon the first address and the second address mapping to a same unique identifier. 10. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a first computing device, causes the first computing device to: receive a request from a second computing device for a first data block via a first address; determine that the first data block is a duplicate of a second data block stored at a second address based upon a determination that a data structure maps the first address and the second address to same deduplicated data, wherein the data structure is populated by a deduplication algorithm to map addresses to deduplicated data; and transmit a response to the second computing device to indicate that the first address is mapped to the second address, wherein the response indicates to the second computing device that the second computing device has local access to the second data block using the second address. 11. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the first computing device to: determine that the first data block is locally stored by the first computing device at the first address. 12. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the first computing device to: determine that the second data block is locally stored by the second computing device as the duplicate of the first data block. 13. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the first computing device to: determine that the second data block is stored within a cache associated with the second computing device. 14. The non-transitory machine readable medium of claim 10 , wherein the data structure maps addresses to data blocks. 15. A computing device comprising: a memory comprising machine executable code; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: receive a request from a second computing device for a first data block via a first address; determine that the first data block is a duplicate of a second data block stored at a second address based upon a determination that a data structure maps the first address and the second address to same deduplicated data, wherein the data structure is populated by a deduplication algorithm to map addresses to deduplicated data; and transmit a response to the second computing device to indicate that the first address is mapped to the second address, wherein the response indicates to the second computing device that the second computing device has local access to the second data block using the second address. 16. The computing device of claim 15 , wherein the machine executable code causes the processor to: determine that the second data block is locally stored by the second computing device as the duplicate of the first data block. 17. The computing device of claim 15 , wherein the machine executable code causes the processor to: perform a prediction that the first data block is stored within a cache associated with the second computing device as the second data block. 18. The computing device of claim 15 , wherein the machine executable code causes the processor to: transmit the first data block to the second computing device based upon a prediction that the first data block is no longer stored as the second data block in a cache associated with the second computing device. 19. The computing device of claim 15 , wherein the machine executable code causes the processor to: transmit the first data block to the second computing device based upon a prediction that the first data block is no longer stored as the second data block by the second computing device. 20. The computing device of claim 15 , wherein the response indicates that the first data block is an equivalent of the second data block.

Assignees

Inventors

Classifications

  • for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title

  • Digital input from, or digital output to, record carriers {, e.g. RAID, emulated record carriers or networked record carriers} · CPC title

  • Address space sharing · CPC title

  • for peripheral storage systems, e.g. disk cache · CPC title

  • Multiple user address space allocation, e.g. using different base addresses (interprocessor communication G06F15/163) · 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 US10523786B2 cover?
I/O bandwidth reduction using storage-level common page information is implemented by a storage server, in response to receiving a request from a client for a page stored at a first virtual address, determining that the first virtual address maps to a page that is a duplicate of a page stored at a second virtual address or that the first and second virtual addresses map to a deduplicated page w…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F12/10. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Dec 31 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).