Secure relational file system with version control, deduplication, and error correction
First Claim
1. A computer implemented method for storing data and managing changes to said data in a storage device for backup and restore, said method employing a secure relational file system comprising at least one processor configured to execute computer program instructions for performing said method, said method comprising:
- receiving said data for said backup and said restore by said secure relational file system;
generating first metadata associated with said received data for said backup by said secure relational file system, said first metadata comprising file-to-sector mapping information associated with disk storage of said received data in a plurality of sectors in said storage device, said file-to-sector mapping information configured to identify a position of said received data in said storage device and one or more of unused sectors among said sectors and unused data blocks in said storage device for reducing size of storage required for said backup of said received data;
splitting said received data into a plurality of fixed sized data chunks by said secure relational file system using said generated first metadata;
generating second metadata for each of said fixed sized data chunks by said secure relational file system for said restore of said received data, said second metadata comprising logical boundaries used for said splitting of said received data;
creating a plurality of fixed sized data blocks by prepending said generated second metadata to said fixed sized data chunks by said secure relational file system;
splitting said fixed sized data chunks of each of said created fixed sized data blocks into a plurality of variable sized data chunks by said secure relational file system using a plurality of context aware breakpoints in said fixed sized data chunks;
generating a unique identifier for each of said variable sized data chunks by said secure relational file system;
generating third metadata for said each of said variable sized data chunks by said secure relational file system, said third metadata comprising said generated unique identifier;
creating a plurality of variable sized data blocks by said secure relational file system by prepending said generated third metadata of said each of said variable sized data chunks and said generated second metadata from said each of said created fixed sized data blocks to said each of said variable sized data chunks;
identifying unique variable sized data chunks of said created variable sized data blocks using each said generated unique identifier from said generated third metadata by said secure relational file system, in communication with one or more databases of said secure relational file system for deduplication of said variable sized data chunks;
storing said identified unique variable sized data chunks in one or more chunk files of said secure relational file system by said secure relational file system for said backup and said restore of said received data;
adding a location of storage of each of said identified unique variable sized data chunks in said one or more chunk files to said generated third metadata by said secure relational file system; and
storing said generated first metadata, said generated second metadata extracted from each of said created variable sized data blocks, and said generated third metadata of said identified unique variable sized data chunks and duplicate variable sized data chunks extracted from said each of said created variable sized data blocks in said one or more databases with minimum additional storage consumption by said secure relational file system for said restore of said received data.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer implemented method and a secure relational file system (SRFS) for storing and managing data for backup and restore are provided. The SRFS receives data, generates first metadata including file-to-sector mapping information, splits the data into fixed sized data chunks (FSDCs), generates second metadata including logical boundaries used for splitting, creates fixed sized data blocks by prepending the second metadata to the FSDCs, splits each FSDC into variable sized data chunks (VSDCs), generates third metadata including unique identifiers (UIDs) for the VSDCs, creates variable sized data blocks (VSDBs) by prepending the third metadata and the second metadata to each VSDC, identifies unique variable sized data chunks (UVSDCs) of the VSDBs using the UIDs, stores the UVSDCs in chunk files, and stores the first metadata, the second metadata extracted from the VSDBs, and storage locations of the UVSDCs with the third metadata of the UVSDCs and duplicate VSDCs in databases.
-
Citations
24 Claims
-
1. A computer implemented method for storing data and managing changes to said data in a storage device for backup and restore, said method employing a secure relational file system comprising at least one processor configured to execute computer program instructions for performing said method, said method comprising:
-
receiving said data for said backup and said restore by said secure relational file system; generating first metadata associated with said received data for said backup by said secure relational file system, said first metadata comprising file-to-sector mapping information associated with disk storage of said received data in a plurality of sectors in said storage device, said file-to-sector mapping information configured to identify a position of said received data in said storage device and one or more of unused sectors among said sectors and unused data blocks in said storage device for reducing size of storage required for said backup of said received data; splitting said received data into a plurality of fixed sized data chunks by said secure relational file system using said generated first metadata; generating second metadata for each of said fixed sized data chunks by said secure relational file system for said restore of said received data, said second metadata comprising logical boundaries used for said splitting of said received data; creating a plurality of fixed sized data blocks by prepending said generated second metadata to said fixed sized data chunks by said secure relational file system; splitting said fixed sized data chunks of each of said created fixed sized data blocks into a plurality of variable sized data chunks by said secure relational file system using a plurality of context aware breakpoints in said fixed sized data chunks; generating a unique identifier for each of said variable sized data chunks by said secure relational file system; generating third metadata for said each of said variable sized data chunks by said secure relational file system, said third metadata comprising said generated unique identifier; creating a plurality of variable sized data blocks by said secure relational file system by prepending said generated third metadata of said each of said variable sized data chunks and said generated second metadata from said each of said created fixed sized data blocks to said each of said variable sized data chunks; identifying unique variable sized data chunks of said created variable sized data blocks using each said generated unique identifier from said generated third metadata by said secure relational file system, in communication with one or more databases of said secure relational file system for deduplication of said variable sized data chunks; storing said identified unique variable sized data chunks in one or more chunk files of said secure relational file system by said secure relational file system for said backup and said restore of said received data; adding a location of storage of each of said identified unique variable sized data chunks in said one or more chunk files to said generated third metadata by said secure relational file system; and storing said generated first metadata, said generated second metadata extracted from each of said created variable sized data blocks, and said generated third metadata of said identified unique variable sized data chunks and duplicate variable sized data chunks extracted from said each of said created variable sized data blocks in said one or more databases with minimum additional storage consumption by said secure relational file system for said restore of said received data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A secure relational file system for storing data and managing changes to said data in a storage device for backup and restore, said secure relational file system comprising:
-
a non-transitory computer readable storage medium configured to store computer program instructions defined by modules of said secure relational file system; at least one processor communicatively coupled to said non-transitory computer readable storage medium, said at least one processor configured to execute said defined computer program instructions; and said modules of said secure relational file system comprising; a data reader configured to receive and read said data for said backup and said restore; a first metadata generation module configured to generate first metadata associated with said received data for said backup, said first metadata comprising file-to-sector mapping information associated with disk storage of said received data in a plurality of sectors in said storage device, said file-to-sector mapping information configured to identify a position of said received data in said storage device and one or more of unused sectors among said sectors and unused data blocks in said storage device for reducing size of storage required for said backup of said received data; a fixed sized data splitter configured to split said received data into a plurality of fixed sized data chunks using said generated first metadata; a second metadata generation module configured to generate second metadata for each of said fixed sized data chunks for said restore of said received data, said second metadata comprising logical boundaries used by said fixed sized data splitter for said splitting of said received data; said fixed sized data splitter further configured to create a plurality of fixed sized data blocks by prepending said generated second metadata to said fixed sized data chunks; a variable sized data splitter configured to split said fixed sized data chunks of each of said created fixed sized data blocks into a plurality of variable sized data chunks using a plurality of context aware breakpoints in said fixed sized data chunks; a unique identifier generator configured to generate a unique identifier for each of said variable sized data chunks; a third metadata generation module configured to generate third metadata for said each of said variable sized data chunks, said third metadata comprising said generated unique identifier; said variable sized data splitter configured to create a plurality of variable sized data blocks by prepending said generated third metadata of said each of said variable sized data chunks and said generated second metadata from said each of said created fixed sized data blocks to said each of said variable sized data chunks; a deduplication engine configured to identify unique variable sized data chunks of said created variable sized data blocks using each said generated unique identifier from said generated third metadata, in communication with one or more databases of said secure relational file system for deduplication of said variable sized data chunks; a data writer configured to store said identified unique variable sized data chunks in one or more chunk files for said backup and said restore of said received data; said data writer further configured to add a location of storage of each of said identified unique variable sized data chunks in said one or more chunk files to said generated third metadata; and said data writer further configured to store said generated first metadata, said generated second metadata extracted from each of said created variable sized data blocks, and said generated third metadata of said identified unique variable sized data chunks and duplicate variable sized data chunks extracted from said each of said created variable sized data blocks in said one or more databases with minimum additional storage consumption for said restore of said received data. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer program product comprising a non-transitory computer readable storage medium, said non-transitory computer readable storage medium storing computer program codes that comprise instructions executable by at least one processor, said computer program codes comprising:
-
a first computer program code for receiving data for backup and restore; a second computer program code for generating first metadata associated with said received data for said backup, said first metadata comprising file-to-sector mapping information associated with disk storage of said received data in a plurality of sectors in a storage device, said file-to-sector mapping information configured to identify a position of said received data in said storage device and one or more of unused sectors among said sectors and unused data blocks in said storage device for reducing size of storage required for said backup of said received data; a third computer program code for splitting said received data into a plurality of fixed sized data chunks using said generated first metadata; a fourth computer program code for generating second metadata for each of said fixed sized data chunks for said restore of said received data, said second metadata comprising logical boundaries used for said splitting of said received data; a fifth computer program code for creating a plurality of fixed sized data blocks by prepending said generated second metadata to said fixed sized data chunks; a sixth computer program code for splitting said fixed sized data chunks of each of said created fixed sized data blocks into a plurality of variable sized data chunks using a plurality of context aware breakpoints in said fixed sized data chunks; a seventh computer program code for generating a unique identifier for each of said variable sized data chunks; an eighth computer program code for generating third metadata for each of said variable sized data chunks, said third metadata comprising said generated unique identifier; a ninth computer program code for creating a plurality of variable sized data blocks by prepending said generated third metadata of said each of said variable sized data chunks and said generated second metadata from said each of said created fixed sized data blocks to said each of said variable sized data chunks; a tenth computer program code for identifying unique variable sized data chunks of said created variable sized data blocks using each said generated unique identifier from said generated third metadata, in communication with one or more databases for deduplication of said variable sized data chunks; an eleventh computer program code for storing said identified unique variable sized data chunks in one or more chunk files for said backup and said restore of said received data; a twelfth computer program code for adding a location of storage of each of said identified unique variable sized data chunks in said one or more chunk files to said generated third metadata; and a thirteenth computer program code for storing said generated first metadata, said generated second metadata extracted from each of said created variable sized data blocks, and said generated third metadata of said identified unique variable sized data chunks and duplicate variable sized data chunks extracted from said each of said created variable sized data blocks in said one or more databases with minimum additional storage consumption for said restore of said received data. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification