A device controller and method are provided for performing a plurality of write transactions atomically within a non-volatile data storage device. Each transaction specifies a
logical address and the method comprises creating an address translation map for the logical addresses specified by the plurality of write transactions, by referencing an address translation
record within the non-volatile data storage device to determine for each
logical address a corresponding
physical address within the data storage device. Further, if the corresponding
physical address indicated in the address translation
record already contains valid data, the
logical address is remapped to a new
physical address in the address translation map. However, at this point the address translation
record as stored in the data storage device is not updated. Instead, the plurality of write transactions are performed using the logical address to physical
address mapping in the address translation map. Then, only once the plurality of write transactions have been performed is the address translation record updated in the non-volatile data storage device in order to identify the logical address to physical
address mapping in the address translation map. Since, at the time of performing the write transactions, any new data that updates data already stored in the data storage device is written into a different physical address location, and hence the previous version of the data is still stored on the data storage device, and given that the address translation record is not updated unless the plurality of write transactions are actually performed atomically, then this enables the state held on the data storage device to be rolled back to the state that existed prior to performing the plurality of write transactions, if any event prevents that plurality of write transactions being performed atomically.