Opportunistic Asynchronous De-Duplication in Block Level Backups
First Claim
1. A method being performed on a computer processor, said method comprising:
- receiving a first set of backup data from a first client, said first set of backup data being block based backup data;
storing said first set of backup data in a first client backup database;
receiving a second set of backup data from a second client, said second set of backup data being block based backup data;
storing said second set of backup data in a second client backup database;
comparing said first backup database and said second backup database to identify a first common block; and
storing said first common block in a common backup database and removing said first common block from both of said first client backup database and said second client backup database.
2 Assignments
0 Petitions
Accused Products
Abstract
A block based backup system may store backed up data from multiple clients by maintaining backup databases for each client, where each backup database may include blocks of data. The backup system may perform a de-duplication process by examining the databases to identify common blocks and moving the common blocks to a common database. The common blocks may be removed from the client backup databases and a pointer substituted for the data, thus compacting the client backup databases. The de-duplication operation may be performed at an opportunistic time, such as after the clients have completed any data transfer to the backup system.
-
Citations
20 Claims
-
1. A method being performed on a computer processor, said method comprising:
-
receiving a first set of backup data from a first client, said first set of backup data being block based backup data; storing said first set of backup data in a first client backup database; receiving a second set of backup data from a second client, said second set of backup data being block based backup data; storing said second set of backup data in a second client backup database; comparing said first backup database and said second backup database to identify a first common block; and storing said first common block in a common backup database and removing said first common block from both of said first client backup database and said second client backup database. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A backup server device comprising:
-
a processor; a plurality of client databases, each of said client databases comprising a repository for blocks of data and a backup database comprising backup definitions and references to said blocks of data from said backup definitions; a communications engine that; establishes a first communication session with a first client device; determines that a first client database is associated with said first client device; receives a first plurality of said blocks of data; stores said first plurality of said blocks of data in said first client database as a first backup; establishes a second communication session with a second client device; determines that a second client database is associated with said second client device; receives a second plurality of said blocks of data; and stores said second plurality of said blocks of data in said second client database; an optimization engine that; analyzes said first client database and said second client database to identify a first common block; adds said first common block to a common client database; adds pointers to said first common block from said first client database and said second client database; and removes said first common block from said first client database and from said second client database. - View Dependent Claims (14, 15, 16)
-
-
17. A backup client device comprising:
-
a storage device comprising a first file system to backup; a backup engine that; establishes a communication session with a backup server; generates a first set of block identifiers representing each block of data in said first file system; determines that an incremental backup is to be performed; and transmits said first set of block identifiers and a subset of said blocks of data in said file system to said backup server. - View Dependent Claims (18, 19, 20)
-
Specification