CPC G06F 12/10 (2013.01) [G06F 3/0607 (2013.01); G06F 3/065 (2013.01); G06F 9/30036 (2013.01); G06F 9/30123 (2013.01); G06F 9/3877 (2013.01); G06F 11/1004 (2013.01); G06F 11/1088 (2013.01); G06F 12/0246 (2013.01); G06F 12/0815 (2013.01); G06F 12/12 (2013.01); G06F 12/1408 (2013.01); G06F 3/0679 (2013.01); G06F 2212/1052 (2013.01); G06F 2212/657 (2013.01)] | 13 Claims |
1. A method comprising:
receiving from a user a first request to write first data at a first virtual location;
writing the first data to a first physical location on a persistent storage system;
recording a first mapping from the first virtual location to the first physical location;
receiving from the user a second request to write second data at the first virtual location;
writing the second data to a second physical location on the persistent storage system, the second physical location corresponding to a next free block in a sequence of blocks on the persistent storage system, and being different from the first physical location, wherein each block on the persistent storage system is written to once, before any block of the persistent storage system is written to a second time;
replacing the first mapping with a second mapping from the first virtual location to the second physical location; and
marking the first physical location as dirty.
|