Patent ID: 9684663
Date: 2017-06-20
CPC Classifications: G06F

Claim:
1. A method of providing access to an updated version of a file in a document management system comprising an application executing on a processor external to a storage device, wherein a file translation layer (FTL) map is maintained by an FTL between logical block addresses (LBAs) maintained by a file system and physical block addresses (PBAs) maintained by the storage device, the method comprising: receiving by the storage device a first command from the processor, the first command sent responsive to the application receiving an update comprising modified content of a first file and creation of a second file into which the modified content is copied, while access to the first file is maintained, wherein parameters of the first command include a first list of LBAs corresponding to the first file, and a second list of LBAs corresponding to the second file, wherein the first list of LBAs is mapped to a first list of PBAs representing storage locations of the first file on the storage device, and the second list of LBAs is mapped to a second list of PBAs representing storage locations of the second file on the storage device, and wherein the first list of LBAs is different from the second list of LBAs, and the first list of PBAs is different from the second list of PBAs; atomically remapping the first list of LBAs so that the first list of LBAs is mapped to the second list of PBAs in order, wherein for each LBA of the first list of LBAs, a mapping is created in the FTL map between a LBA of the first list of LBAs and a corresponding PBA of the second list of PBAs; trimming a mapping of the first list of LBAs to the first list of PBAs, wherein for every LBA of the first list of LBAs, a mapping is removed in the FTL map between a LBA of the first list of LBAs and a corresponding PBA of the first list of PBAs; and unmapping a mapping of the second list of LBAs to the second list of PBAs, wherein for every LBA of the second list of LBAs, a mapping is removed in the FTL map between a LBA of the second list of LBAs and a corresponding PBA of the second list of PBAs.