Patent ID: 7562077

Claim:
A processing system comprising: a processor; a storage facility coupled to the processor and storing a first dataset and a second dataset; and a memory coupled to the processor and storing instructions which, when executed by the processor, cause the processing system to perform a process of comparing the first dataset and the second dataset to identify block-level differences therebetween, the first and second datasets each including a plurality of direct blocks containing data and a plurality of indirect blocks, each indirect block containing a plurality of pointers, each pointer pointing to one of the direct blocks or another indirect block, the process including, (a) comparing a pointer to a block in the first dataset with a corresponding pointer to a block in the second dataset, (b) if the pointer in the first dataset is identical to the corresponding pointer in the second dataset, then determining that all blocks referenced by the pointer, either directly or indirectly, are identical between the first and second datasets; (c) if the pointer in the first dataset is different from the corresponding pointer in the second dataset and points to an indirect block, then following the pointer in the first dataset down the hierarchical structure to a pointer to a direct block in the first dataset, and executing said (b) comparing with said pointer to the direct block and a corresponding pointer in the second dataset; (d) if the pointer in the first dataset is different from the corresponding pointer in the second dataset and points to a direct block, then determining that the direct block in the first dataset is different from the direct block in the second dataset; (e) identifying full pathnames of a plurality of individual data containers in the first and second dataset for which differences in individual data blocks between the first and second dataset have been identified; and (f) generating a report for output to a human user, indicating the differences in individual data blocks between the first and second datasets in association with the full path names of the individual data containers which contain the individual data blocks.