1. A method for a storage device having a flash-based cache, a non-volatile random access memory (NVRAM) and a disk-based storage unit, the method comprising: storing, by a controller of the storage device, a first version of data at an address in the flash-based cache; storing, by the controller, a second version of the data in the disk-based storage unit but not in the flash-based cache, the second version of the data being different than the first version of the data; and in response to storing the second version of the data in the disk-based storage unit but not in the flash-based cache, storing, by the controller, only the address of the first version of the data in an invalidate buffer instantiated on the NVRAM so as to mark the first version of the data in the flash-based cache as invalid.