×

Handling copy on first write data for snapshot purposes

  • US 8,874,524 B1
  • Filed: 06/22/2012
  • Issued: 10/28/2014
  • Est. Priority Date: 06/22/2012
  • Status: Active Grant
First Claim
Patent Images

1. In an electronic apparatus having cache memory, a method of performing a write operation, the method comprising:

  • after a snapshot of a file system is taken, receiving a write instruction to write new data to a particular portion of the file system;

    in response to the write instruction, reading metadata to determine whether the new data is a first update of the particular portion of the file system since the snapshot was taken, the metadata being constructed and arranged to identify portions of the file system which have changed since the snapshot was taken;

    when the metadata indicates that the new data is not a first update of the particular portion of the file system since the snapshot was taken, updating original data in the cache memory with the new data, the original data corresponding to the particular portion of the file system; and

    when the metadata indicates that the new data is a first update of the particular portion of the file system since the snapshot was taken, copying the original data from the cache memory to snapshot storage which is separate from the cache memory and, after the original data is copied from the cache memory to the snapshot storage, updating the original data in the cache memory with the new data;

    wherein the portions of the file system are data blocks;

    wherein the metadata includes a first update table having a set of first update entries, each first update entry corresponding to a respective data block of the file system;

    wherein the write instruction identifies a particular data block; and

    wherein reading the metadata to determine whether the new data is a first update of the particular portion of the file system since the snapshot was taken includes reading, from the first update table, contents of a particular first update entry corresponding to the particular data block identified by the write instruction, the new data (i) not being a first update of the particular portion of the file system since the snapshot was taken when the contents of the particular first update entry define a first value, and (ii) being a first update of the particular portion of the file system since the snapshot was taken when the contents of the particular first update entry define a second value which is different than the first value.

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