Tier aware caching solution to increase application performance
AssigneePrimaryIO, Inc.
InventorsSumit Kumar, Sumit Kapoor
Life of this patent
Estimating the term…
Abstract
An embodiment of the invention provides a method comprising: permitting an application to be aware to be aware of a distribution of a data of the application across a cache and a permanent storage device. The cache comprises a solid state device and the permanent storage device comprises a disk or a memory. In yet another embodiment of the invention, an apparatus comprises: a caching application program interface configured to permit an application to be aware to be aware of a distribution of a data of the application across a cache and a permanent storage device. A caching application program interface is configured to determine an input/output strategy to consume the data based on the distribution of the data.
Claims20
A system, comprising:
- a first memory having a first memory type;
- a second memory having a second memory type distinct from the first memory type;
- a third memory having a third memory type distinct from both the first and second memory types;
- an application running on a processor, the application structured to provide a caching application program interface (API) with a first list of logical blocks;
- and
- a caching module communicatively coupled with the first, second, and third memories, the caching module structured to:
- provide the caching API with a second list of logical blocks, the second list including each logical block from the first list that is present in the first memory;
- and
- provide the application with each logical block from the first list that is present in the second and third memories.
A method, comprising:
- generating, in an application, a first list of logical blocks that may be present in either a first memory, a second memory, or a third memory;
- providing the first list of logical blocks to a caching application program interface (API);
- generating, in a caching module, a second list of logical blocks, the second list including each logical block from the first list that is present in the first memory;
- providing the second list of logical blocks to the caching API;
- and
- providing the application with each logical block from the first list that is present in the second and third memories.
Dependencies are inferred from the claim text.