×

Methods and systems for file replication utilizing differences between versions of files

  • US 9,934,301 B2
  • Filed: 10/02/2012
  • Issued: 04/03/2018
  • Est. Priority Date: 03/28/2003
  • Status: Active Grant
First Claim
Patent Images

1. A system for performing file store synchronization across multiple servers, comprising:

  • a processor; and

    a memory coupled with and readable by the processor and storing therein a set of instructions which, when executed by the processor, causes the processor to initiate a file store synchronization process by;

    receiving a first file from a first computer server, the first file comprising a plurality of physical blocks of data located at various allocated positions on a memory device of the first computer server;

    receiving a second file from a second computer server, the second file comprising a second plurality of physical blocks of data located at various allocated positions on the memory device of the second computer server;

    performing, in logical order for each particular physical block of the first plurality of the physical blocks of the first file;

    (a) determining a first signature parameter for the particular physical block of the first file by retrieving a predetermined number of bits from a predetermined location within the particular physical block of the first file, wherein the first signature parameter for the particular physical block of the first file is determined based upon a subset of the data within the particular physical block that is less than all of the data in the particular physical block;

    (b) determining a first signature parameter for a corresponding physical block of the second file by retrieving the same predetermined number of bits from the same predetermined location within the corresponding physical block of the second file, wherein the first signature parameter for the corresponding physical block of the second file is determined based upon a subset of the data within the corresponding physical block that is less than all of the data in the corresponding physical block;

    (c) determining whether the retrieved bits comprising the first signature parameter for the particular physical block of the first file match the retrieved bits comprising the first signature parameter for the corresponding physical block of the second file; and

    (d) in response to determining that the first signature parameter for the particular physical block of the first file matches the first signature parameter of the corresponding physical block of the second file, performing the following additional steps for the particular physical block of the first file;

    (i) determining a second signature parameter for the particular physical block of the first file, by executing at least one of a cyclic redundancy check (CRC) algorithm or an MD5 algorithm, using as input all bits of the particular physical block of the first file;

    (ii) determining a second signature parameter for the corresponding physical block of the second file, by executing at least one of a cyclic redundancy check (CRC) algorithm or an MD5 algorithm, using as input all bits of the corresponding physical block of the second file;

    (iii) determining whether the second signature parameter comprising the output of the one or more algorithms for the particular physical block of the first file matches the second signature parameter comprising the output of the one or more algorithms for the corresponding physical block of the second file; and

    (iv) in response to determining that the second signature parameter of the particular physical block of the first file matches the second signature parameter of the corresponding physical block of the second file, creating a delta file using the second signature parameters of the at least one physical block of the second file by generating primitive commands and corresponding logical data parameters for the primitive commands, wherein the logical data parameters comprise logical offset addresses for the base file and logical data lengths for the base file; and

    initiating a file store synchronization process between the first computer server and the second computer server, using the delta file as input to the file store synchronization process.

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