Detecting and suppressing redundant input-output operations
US-9189419-B2 · Nov 17, 2015 · US
US10523786B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10523786-B2 |
| Application number | US-201816016455-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 22, 2018 |
| Priority date | Apr 30, 2010 |
| Publication date | Dec 31, 2019 |
| Grant date | Dec 31, 2019 |
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.
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.
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.
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
Related publications grouped by family.
Answers are generated from the same data shown on this page.