Patent ID: 9323659
Filing Date: 2016-04-26
CPC Classification: G06F

Claim Text:
1. A method of caching data in a computer system having one or more processors, memory storing one or more storage management programs for execution by the one or more processors, non-volatile cache memory, and an interface to a non-volatile secondary storage, the method comprising: identifying two or more write requests to write data, wherein each write request of the two or more identified write requests includes an address or storage offset in the non-volatile secondary storage and write data; sequentially writing the write data for the two or more identified write requests to sequential locations in the non-volatile cache memory; and storing metadata, in the memory of the computer system, that maps the addresses or storage offsets in the non-volatile secondary storage for the write data corresponding to the two or more identified write requests to the sequential locations in the non-volatile cache memory; wherein the memory of the computer system is distinct from the non-volatile secondary storage and distinct from the non-volatile cache memory, and the non-volatile secondary storage is distinct from the non-volatile cache memory, the method further comprising: maintaining, at the computer system, a write pointer corresponding to a boundary of an unused region of the non-volatile cache memory, a clean pointer corresponding to a boundary of a clean region of the non-volatile cache memory, the clean region storing data that has been flushed to the non-volatile secondary storage and that can be read from the non-volatile cache memory by the computer system, and a flush pointer corresponding to a boundary between the clean region and a dirty region of the non-volatile cache memory, the dirty region storing data that has not been flushed to the non-volatile secondary storage and that can be read from the non-volatile cache memory by the computer system, wherein the, write, clean, and flush pointers identify distinct locations in the non-volatile cache memory; and wherein maintaining the write pointer includes advancing the write pointer as write data is sequentially written to the non-volatile cache memory, the method further including: receiving information identifying an amount of available storage in the non-volatile cache memory and information identifying a size of the address space of the non-volatile cache memory and an amount of said address space corresponding to unavailable management units in the non-volatile cache memory; wherein the size of said address space of the non-volatile cache memory remains fixed throughout performance of the method; and said maintaining further comprises maintaining said pointers so as to maintain said unused region at a size that is greater than an amount of said address space corresponding to unavailable management units in the non-volatile cache memory.