×

Managing atomic updates on metadata tracks in a storage system

  • US 7,885,921 B2
  • Filed: 11/18/2004
  • Issued: 02/08/2011
  • Est. Priority Date: 11/18/2004
  • Status: Expired due to Fees
First Claim
Patent Images

1. A method for performing atomic updates on metadata tracks in a storage subsystem, comprising:

  • assigning to a plurality of metadata tracks a generation number identifying a most recent multi-track update operation in which the metadata tracks participated whereby all of the metadata tracks which participated in the same most recent multi-track update operation are assigned the same generation number;

    commencing a new update operation on the plurality of the metadata tracks by storing a first journal entry in a nonvolatile storage (NVS), the journal entry including an opcode and metadata update data, the opcode identifying a type of update to be performed and a number of metadata tracks being updated;

    determining the largest generation number in each of the selected metadata tracks being updated;

    incrementing the generation number in each of the selected metadata tracks being updated;

    staging a first of the metadata tracks being updated from a disk storage to a cache storage;

    storing a second journal entry in a nonvolatile storage (NVS) the NVS for the first metadata track, the second journal entry comprising the opcode, the update data for the first metadata track, and the incremented generation number;

    repeating the staging, storing and journaling steps for each other metadata track being updated in the new update operation;

    applying each journaled update to the respective metadata track in the cache storage;

    destaging each of the metadata tracks from the cache storage to the disk storage; and

    managing an interruption encountered while performing the new update operation by;

    after the storage subsystem recovers from the interruption, searching all of the second journal entries of the metadata tracks being updated for the incremented generation number to determine if the second journal entries have been made for all metadata tracks being updated;

    if the second journal entries have been made for all metadata tracks being updated, applying each journaled update to the respective metadata track in the cache storage; and

    if journal entries have been made for fewer than all metadata tracks being updated, discarding the second journal entries from the NVS and recommencing the new update operation.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×