Managing atomic updates on metadata tracks in a storage system
First Claim
1. A method for performing atomic updates on metadata tracks in a storage subsystem, comprising:
- staging a first of a plurality of metadata tracks to be updated from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
repeating the staging and journaling steps for each other metadata track to be updated;
applying each journaled update to the respective metadata track in the cache storage; and
destaging each of the metadata tracks from the cache storage to the disk storage.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods, systems, computer program products and methods for deploying computing infrastructure for managing metadata in a storage subsystem are provided. A first metadata track is staged from disk storage to a cache storage after which a journal entry is stored in a nonvolatile storage (NVS). The journal entry includes an opcode and update data for the track. The opcode identifies the type of update to be performed and the number of tracks to be updated in the operation. Each of the other metadata tracks is staged and a corresponding journal entry stored. The journaled updates are then applied to the respective metadata track in the cache storage and the tracks destaged from cache to the disk storage.
101 Citations
40 Claims
-
1. A method for performing atomic updates on metadata tracks in a storage subsystem, comprising:
-
staging a first of a plurality of metadata tracks to be updated from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
repeating the staging and journaling steps for each other metadata track to be updated;
applying each journaled update to the respective metadata track in the cache storage; and
destaging each of the metadata tracks from the cache storage to the disk storage. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for performing atomic updates on metadata tracks in a storage subsystem, comprising:
-
determining an order to process a plurality N-1 of metadata tracks to be updated;
for the first through N-1 st metadata tracks in the determined order;
staging a first of the plurality of metadata tracks from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
applying the first journal entry to an in-flight area; and
destaging the metadata track from the cache storage to the disk storage;
for the Nth metadata track;
staging the Nth metadata track from the disk storage to the cache storage;
storing a first journal entry in the NVS for the Nth metadata track, the first journal entry comprising an opcode and update data for the first metadata track;
applying the journaled update of the Nth metadata track to the respective metadata track in the cache storage; and
destaging the Nth metadata track from the cache storage to the disk storage; and
for the first through N-1 st metadata tracks in a reverse order of the determined order;
staging the metadata track to the cache storage;
storing a second journal entry in NVS for the metadata track, the second journal entry comprising the opcode;
applying the update data stored in the in-flight area to the metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (7, 8)
-
-
9. A method for performing atomic updates on metadata tracks in a storage subsystem, comprising:
-
determining an order to process a plurality of metadata tracks to be updated;
determining the largest generation number in each of the metadata tracks;
incrementing the generation in each of the metadata tracks;
storing a journal entry in a nonvolatile storage (NVS) for each of the metadata tracks in the determined order, the first journal entry comprising the generation number, an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated; and
for each of the metadata tracks, in the determined order;
staging a first of the metadata track from a disk storage to a cache storage;
applying the journaled update to the respective metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (10)
-
-
11. A system for performing atomic update on metadata tracks in a storage subsystem, comprising:
-
a cache storage;
a nonvolatile storage (NVS);
means for staging a first of a plurality of metadata tracks to be updated from a disk storage to the cache storage;
means for storing a first journal entry in the NVS for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
means for staging each other metadata track to be updated;
means for journaling each other metadata track to be updated;
means for applying each journaled update to the respective metadata track in the cache storage; and
means for destaging each of the metadata tracks from the cache storage to the disk storage. - View Dependent Claims (12, 13, 14, 15)
-
-
16. A system for performing atomic updates on metadata tracks in a storage subsystem, comprising:
-
a cache storage;
a nonvolatile storage (NVS);
means for determining an order to process a plurality N-1 of metadata tracks to be updated;
means for processing the first through N-1 st metadata tracks in the determined order by;
staging a first of the plurality of metadata tracks from a disk storage to the cache storage;
storing a first journal entry in the NVS for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
applying the first journal entry to an in-flight area; and
destaging the metadata track from the cache storage to the disk storage;
means for processing the Nth metadata track by;
staging the Nth metadata track from the disk storage to the cache storage;
storing a first journal entry in the NVS for the Nth metadata track, the first journal entry comprising an opcode and update data for the first metadata track;
applying the journaled update of the Nth metadata track to the respective metadata track in the cache storage; and
destaging the Nth metadata track from the cache storage to the disk storage; and
means for processing the first through N-1 st metadata tracks in a reverse order of the determined order by;
staging the metadata track to the cache storage;
storing a second journal entry in NVS for the metadata track, the second journal entry comprising the opcode;
applying the update data stored in the in-flight area to the metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (17, 18)
-
-
19. A system for performing atomic updates on metadata tracks in a storage subsystem, comprising:
-
a cache storage;
a nonvolatile storage (NVS);
means for determining an order to process a plurality of metadata tracks to be updated;
means for determining a largest generation number in each of the metadata tracks;
means for incrementing the generation in each of the metadata tracks;
means for storing a journal entry in the NVS for each of the metadata tracks in the determined order, the first journal entry comprising the generation number, an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated; and
after journal entries for all of the metadata tracks have been stored in the NVS, means for completing the atomic update of the metadata tracks in the determined order by;
staging a metadata track from a disk storage to a cache storage;
applying the journaled update to the respective metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (20)
-
-
21. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for performing atomic updates on global metadata tracks in a storage subsystem, the computer-readable code comprising instructions for:
-
staging a first of a plurality of metadata tracks to be updated from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
repeating the staging and journaling steps for each other metadata track to be updated;
applying each journaled update to the respective metadata track in the cache storage; and
destaging each of the metadata tracks from the cache storage to the disk storage. - View Dependent Claims (22, 23, 24, 25)
-
-
26. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for performing atomic updates on metadata tracks in a storage subsystem, the computer-readable code comprising instructions for:
-
determining an order to process a plurality N-1 of metadata tracks to be updated;
for the first through N-1 st metadata tracks in the determined order;
staging a first of the plurality of metadata tracks from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
applying the first journal entry to an in-flight area; and
destaging the metadata track from the cache storage to the disk storage;
for the Nth metadata track;
staging the Nth metadata track from the disk storage to the cache storage;
storing a first journal entry in the NVS for the Nth metadata track, the first journal entry comprising an opcode and update data for the first metadata track;
applying the journaled update of the Nth metadata track to the respective metadata track in the cache storage; and
destaging the Nth metadata track from the cache storage to the disk storage; and
for the first through N-1 st metadata tracks in a reverse order of the determined order;
staging the metadata track to the cache storage;
storing a second journal entry in NVS for the metadata track, the second journal entry comprising the opcode;
applying the update data stored in the in-flight area to the metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (27, 28)
-
-
29. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for performing atomic updates on metadata tracks in a storage subsystem, the computer-readable code comprising instructions for:
-
determining an order to process a plurality of metadata tracks to be updated;
determining the largest generation number in each of the metadata tracks;
incrementing the generation in each of the metadata tracks;
storing a journal entry in a nonvolatile storage (NVS) for each of the metadata tracks in the determined order, the first journal entry comprising the generation number, an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated; and
for each of the metadata tracks, in the determined order;
staging a first of the metadata track from a disk storage to a cache storage;
applying the journaled update to the respective metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (30)
-
-
31. A method for deploying computing infrastructure, comprising integrating computer readable code into a computing system, wherein the code, in combination with the computing system, is capable of performing the following:
-
staging a first of a plurality of metadata tracks to be updated from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
repeating the staging and journaling steps for each other metadata track to be updated;
applying each journaled update to the respective metadata track in the cache storage; and
destaging each of the metadata tracks from the cache storage to the disk storage. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A method for deploying computing infrastructure, comprising integrating computer readable code into a computing system, wherein the code, in combination with the computing system, is capable of performing the following:
-
determining an order to process a plurality N-1 of metadata tracks to be updated;
for the first through N-1 st metadata tracks in the determined order;
staging a first of the plurality of metadata tracks from a disk storage to cache storage;
storing a first journal entry in a nonvolatile storage (NVS) for the metadata track, the first journal entry comprising an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated;
applying the first journal entry to an in-flight area; and
destaging the metadata track from the cache storage to the disk storage;
for the Nth metadata track;
staging the Nth metadata track from the disk storage to the cache storage;
storing a first journal entry in the NVS for the Nth metadata track, the first journal entry comprising an opcode and update data for the first metadata track;
applying the journaled update of the Nth metadata track to the respective metadata track in the cache storage; and
destaging the Nth metadata track from the cache storage to the disk storage; and
for the first through N-1 st metadata tracks in a reverse order of the determined order;
staging the metadata track to the cache storage;
storing a second journal entry in NVS for the metadata track, the second journal entry comprising the opcode;
applying the update data stored in the in-flight area to the metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (37, 38)
-
-
39. A method for deploying computing infrastructure, comprising integrating computer readable code into a computing system, wherein the code, in combination with the computing system, is capable of performing the following:
-
determining an order to process a plurality of metadata tracks to be updated;
determining the largest generation number in each of the metadata tracks;
incrementing the generation in each of the metadata tracks;
storing a journal entry in a nonvolatile storage (NVS) for each of the metadata tracks in the determined order, the first journal entry comprising the generation number, an opcode and update data for the metadata track, the opcode identifying a type of metadata update and a number of metadata tracks to be updated; and
for each of the metadata tracks, in the determined order;
staging a first of the metadata track from a disk storage to a cache storage;
applying the journaled update to the respective metadata track in the cache storage; and
destaging the metadata track from the cache storage to the disk storage. - View Dependent Claims (40)
-
Specification