A method of caching data in a computer system (205, 205-2) having one or more processors (206, 206-2), memory (208, 208-2) storing one or more storage management programs (209, 209-2) for execution by the one or more processors (206, 206-2), non-volatile secondary storage and non-volatile cache memory (207, 207-2), the non-volatile cache memory (207, 207-2) including a controller responsive to commands sent by the one or more processors of the computer system (205, 205-2), the method comprising: receiving from the non-volatile cache memory (207, 207-2) first information identifying an amount of available storage in the non-volatile cache memory (207, 207-2) and second information identifying a size of management units in the non-volatile cache memory; identifying write requests to write data to the non-volatile cache memory (207, 207-2), each identified write request including an address or storage offset and write data; sequentially writing to the non-volatile cache memory (207, 207-2) the write data for the identified write requests, wherein said sequentially writing comprises writing to sequentially arranged locations in an address space of the non-volatile cache memory (207, 207-2); and storing metadata in the non-volatile cache memory (207, 207-2) that maps the addresses or storage offsets of the write data to respective locations in the address space of the non-volatile cache memory (207, 207-2); CHARACTERISED BY: the method further comprising maintaining, at the computer system (205, 205-2), a write pointer, a clean pointer and a flush pointer, said pointers (507, 509, 512) corresponding to boundaries of unused, clean (515, 520) and dirty regions of the non-volatile cache memory (207, 207-2), said pointers (507, 509, 512) identifying distinct locations in the predefined sequence of available management units in the non-volatile cache memory (207, 207-2), said maintaining including advancing the write pointer as write data is sequentially written to the non-volatile cache memory (207, 207-2). receiving from the non-volatile cache memory (207, 207-2) first information identifying an amount of available storage in the non-volatile cache memory (207, 207-2) and second information identifying a size of management units in the non-volatile cache memory; identifying write requests to write data to the non-volatile cache memory (207, 207-2), each identified write request including an address or storage offset and write data; sequentially writing to the non-volatile cache memory (207, 207-2) the write data for the identified write requests, wherein said sequentially writing comprises writing to sequentially arranged locations in an address space of the non-volatile cache memory (207, 207-2); and storing metadata in the non-volatile cache memory (207, 207-2) that maps the addresses or storage offsets of the write data to respective locations in the address space of the non-volatile cache memory (207, 207-2); CHARACTERISED BY: the method further comprising maintaining, at the computer system (205, 205-2), a write pointer, a clean pointer and a flush pointer, said pointers (507, 509, 512) corresponding to boundaries of unused, clean (515, 520) and dirty regions of the non-volatile cache memory (207, 207-2), said pointers (507, 509, 512) identifying distinct locations in the predefined sequence of available management units in the non-volatile cache memory (207, 207-2), said maintaining including advancing the write pointer as write data is sequentially written to the non-volatile cache memory (207, 207-2). the method further comprising maintaining, at the computer system (205, 205-2), a write pointer, a clean pointer and a flush pointer, said pointers (507, 509, 512) corresponding to boundaries of unused, clean (515, 520) and dirty regions of the non-volatile cache memory (207, 207-2), said pointers (507, 509, 512) identifying distinct locations in the predefined sequence of available management units in the non-volatile cache memory (207, 207-2), said maintaining including advancing the write pointer as write data is sequentially written to the non-volatile cache memory (207, 207-2).