×

Time indexed file system

  • US 8,060,481 B1
  • Filed: 05/23/2006
  • Issued: 11/15/2011
  • Est. Priority Date: 06/30/2005
  • Status: Active Grant
First Claim
Patent Images

1. A method for managing data in a file system, the method comprising:

  • allocating by a computing device one or more blocks for use in storing data corresponding to a file;

    storing the file data in the blocks;

    updating an inode corresponding to the file responsive to said allocating, the inode including attributes and an extent map corresponding to the file, the inode being configured to simultaneously identify multiple versions of the file corresponding to multiple points in time, wherein the update includes adding data to the inode which identifies the one or more blocks;

    in response to detecting a write to the file, subsequent to said updating, is directed to particular blocks of the one or more blocks;

    allocating one or more new blocks for use in storing data which corresponds to the file;

    creating a new entry in the extent map of the inode which identifies the new blocks, said new entry being simultaneously maintained along with entries of the one or more entries in the extent map;

    updating a first entry of the extent map to identify the particular blocks to which the write was directed and a time at which the write occurred;

    wherein said extent map simultaneously maintains entries for multiple updates which have been made to the file at multiple points in time, and wherein each entry of the extent map includes a key comprising an offset to corresponding data within the file and a timestamp associated with a time of an update of a corresponding extent map entry;

    in response to detecting the write corresponds to one or more blocks of an original extent;

    splitting the original extent at a first block corresponding to the beginning of the write; and

    splitting the original extent at a last block corresponding to the end of the write.

View all claims
  • 7 Assignments
Timeline View
Assignment View
    ×
    ×