EP1035482A2

Remote file version reconciliation using hash codes

Abstract

A file reconciliation process in a distributed file system uses a set of journal or log files to track the history of file modification at each of different sites, or sets of directories, in a computer system. The different sites are connected by a network link. During reconciliation, sequences of version entries associated with each file in each journal are updated and compared to determine whether (1) a conflict exists for any of the files involved in the reconciliation, and (2) if not, which version of the file is the current version. The version entries contain a hash code or digest that to a high probability uniquely identifies the contents of a file. Sequences of hash codes are used to identify the sequence of file versions. Masks and site indicator fields are included in the journal files and used to track which journal files have copies of version entries for the purpose of deleting version entries when they become obsolete.

EP1035482A2, drawing sheet 1
Sheet 1 of 6

Term

Term ended

Projected expiry passed 3 March 2020, 6.6 years ago.

  1. Priority
  2. Filed
  3. Published
  4. Projected expiry
  5. Today

5 claims: 1 independent, 4 dependent

  1. 1
    A method of reconciling different data files stored at a client site and a server site connected to each other by a remote network link, comprising the steps of:generating hash codes, each hash code uniquely identifying a corresponding version of a data file by the contents thereof;storing the generated hash codes in a client journal file and a server journal file, the hash codes in each journal file being stored in a sequence indicating the order in which different versions of the data file have been stored at the corresponding site;requesting, by the client site, a copy of the server journal file;combining the server journal file with the client journal file to generate a combined journal file at the client site;analyzing the sequences of hash codes from the combined journal file to determine (1) which version of the data file is the current version, (2) the site or sites at which the current version is stored, and (3) the site or sites at which the current version is not stored;replacing the current version of the data file from a site at which it is stored to the site or sites at which it is not stored via the network link.