IP Library Granted Patent US 8,856,467
Granted Patent B2
US 8,856,467 · App. 10/993,022 · Granted Oct 7, 2014

Management of metadata in a storage subsystem

Inventors: Aaron S Mahar (Tucson, AZ); Angelique R Budaya (Tucson, AZ); James A Springer (Tucson, AZ)
Assignee: International business Machines Corporation
G06F3/064G06F3/065G06F3/0622G06F3/0605G06F3/061G06F2211/104G06F3/0683G06F11/1474G06F2212/466
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,856,467
App. No.
10/993,022
Granted
Oct 7, 2014
Kind
B2
Abstract

Methods, systems, computer program products and methods for deploying computing infrastructure for managing metadata in a storage subsystem are provided. A call is received from a client to update a portion of a metadata track. Data is also received from the client identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field. A data structure field of a client interface is then populated with the identity of the at least one field and the associated update values and an opcode field of the client interface is populated with the update type. A task control block (TCB) is then allocated to the client call and, at the direction of the TCB, various operations are performed without further activity by the client. The metadata track may also be validated before being updated to ensure that the client has access only to valid updates.

Claims (188)

1. A method for managing metadata in a storage subsystem, comprising:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type;

allocating a task control block (TCB) to the client call;

acquiring a lock whereby other clients are prevented from accessing the metadata track;

at the direction of the TCB:

staging to a cache the metadata track containing the at least one field to be updated;

copying the at least one field to the TCB;

applying the update type to map the update values of the at least one field to the metadata track; and

copying the metadata into the TCB; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

2. The method of claim 1 , further comprising reading and validating the metadata track at the direction of the TCB after staging the metadata track containing the at least one field to be updated.

3. The method of claim 2 , wherein validating the metadata track comprises:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

4. The method of claim 2 , wherein validating the metadata track comprises:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

5. The method of claim 1 , further comprising:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

6. The method of claim 1 , wherein the metadata comprises copy services metadata.

7. A method for managing metadata in a storage subsystem, comprising:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type;

reading the metadata track containing the at least one field to be updated;

validating the metadata track after reading the metadata track containing the at least one field to be updated;

applying the update type to map the update values of the at least one field to the metadata track; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

8. The method of claim 7 , wherein validating the metadata track comprises:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

9. The method of claim 7 , wherein validating the metadata track comprises:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

10. The method of claim 7 , further comprising:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

11. The method of claim 7 , further comprising acquiring a lock whereby other clients are prevented from accessing the metadata track.

12. The method of claim 7 , wherein the metadata comprises copy services metadata.

13. A system for managing metadata in a storage subsystem, comprising:

a processor; and

a memory for storing instructions executable on the processor, the instructions comprising:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

a client interface, comprising:

a data structure field for holding the identity of the at least one field and the associated update values; and

an opcode field for holding the update type;

a task control block (TCB) allocated to the client call and operable to direct, after acquisition of a lock whereby other clients are prevented from accessing the metadata track:

staging to a cache of the metadata track containing the at least one field to be updated;

copying of the at least one field to the TCB;

application of the update type to map the update values of the at least one field to the metadata track; and

copying of the metadata into the TCB; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

14. The system of claim 13 , wherein the TCB is further operable to direct a reading and validation of the metadata track after the metadata track has been staged.

15. The system of claim 14 , wherein, during the validation of the metadata track, the TCB is further operable to direct:

determining whether the metadata track is in a valid state; and

if the metadata track is not in a valid state, journal recovery of the metadata track.

16. The system of claim 14 , wherein, during the validation of the validation of the metadata track, the TCB is further operable to direct:

determining whether the metadata track is in a valid state; and

if the metadata track is not in a valid state, clear status track (CST) operation on the metadata track.

17. The system of claim 13 , the instructions further comprising:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

sending to the client, in response to the client call, the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

18. The system of claim 13 , wherein the metadata comprises copy services metadata.

19. A system for managing metadata in a storage subsystem, comprising:

a processor; and

a memory for storing instructions executable on the processor, the instructions comprising:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

a client interface, comprising:

a data structure field for holding the identity of the at least one field and the associated update values; and

an opcode field for holding the update type;

a task control block (TCB) allocated to the client call and operable to direct, after acquisition of a lock whereby other clients are prevented from accessing the metadata track:

staging to a cache the metadata track containing the at least one field to be updated;

copying the at least one field to the TCB;

reading and validating the metadata track after the metadata track has been staged;

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

20. The system of claim 19 , wherein, during the validation of the metadata track, the TCB is further operable to direct:

determining whether the metadata track is in a valid state; and

if the metadata track is not in a valid state, journal recovery of the metadata track.

21. The system of claim 19 , wherein, during the validation of the validation of the metadata track, the TCB is further operable to direct:

determining whether the metadata track is in a valid state; and

if the metadata track is not in a valid state, clear status track (CST) operation on the metadata track.

22. The system of claim 19 , the instructions further comprising:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

sending to the client, in response to the client call, the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

23. The system of claim 19 , wherein the TCB is further operable to direct an acquisition of a lock whereby other clients are prevented from accessing the metadata track after the metadata track has been read.

24. The system of claim 19 , wherein the metadata comprises copy services metadata.

25. A computer program product of a non-transitory computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for managing metadata in a storage subsystem, the computer-readable code comprising instructions for:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type;

acquiring a lock whereby other clients are prevented from accessing the metadata track;

allocating a task control block (TCB) to the client call;

at the direction of the TCB:

staging to a cache the metadata track containing the at least one field to be updated;

copying, the at least one field to the TCB;

applying the update type to map the update values of the at least one field to the metadata track; and

copying the metadata into the TCB; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

26. The computer program product of claim 25 , wherein the instructions further comprise reading and validating the metadata track at the direction of the TCB after staging the metadata track containing the at least one field to be updated.

27. The computer program product of claim 26 , wherein the instructions for validating the metadata track comprise instructions for:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

28. The computer program product of claim 26 , wherein the instructions for validating the metadata track comprise instructions for:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

29. The computer program product of claim 25 , wherein the instructions further comprise:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

30. The computer program product of claim 25 , wherein the metadata comprises copy services metadata.

31. A computer program product of a non-transitory computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for managing metadata in a storage subsystem, the computer-readable code comprising instructions for:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type;

reading the metadata track containing the at least one field to be updated;

validating the metadata track after reading the metadata track containing the at least one field to be updated;

applying the update type to map the update values of the at least one field to the metadata track; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

32. The computer program product of claim 31 , wherein the instructions for validating the metadata track comprise instructions for:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

33. The computer program product of claim 31 , wherein the instructions for validating the metadata track comprise instructions for:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

34. The computer program product of claim 31 , further comprising instructions for:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

35. The computer program product of claim 31 , further comprising instructions for acquiring a lock whereby other clients are prevented from accessing the metadata track.

36. The computer program product of claim 31 , wherein the metadata comprises copy services metadata.

37. 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:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type;

allocating a task control block (TCB) to the client call;

acquiring a lock whereby other clients are prevented from accessing the metadata track;

at the direction of the TCB:

staging to a cache the metadata track containing the at least one field to be updated;

copying the at least one field to the TCB;

applying the update type to map the update values of the at least one field to the metadata track; and

copying the metadata into the TCB; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

38. The method of claim 37 , wherein the code is further capable of reading and validating the metadata track at the direction of the TCB after staging the metadata track containing the at least one field to be updated.

39. The method of claim 38 , wherein the code for validating the metadata track comprises code capable of performing the following:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

40. The method of claim 38 , wherein the code for validating the metadata track comprises code capable of performing the following:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

41. The method of claim 37 , wherein the code is further capable of:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

42. The method of claim 37 , wherein the metadata comprises copy services metadata.

43. 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:

receiving a call from a client to update a portion of a metadata track;

receiving from the client data identifying at least one field of the metadata track to be updated, associated update values for the at least one field to be updated and an update type for the at least one field;

populating a data structure field of a client interface with the identity of the at least one field and the associated update values;

populating an opcode field of the client interface with the update type; reading the metadata track containing the at least one field to be updated;

validating the metadata track after reading the metadata track containing the at least one field to be updated;

applying the update type to map the update values of the at least one field to the metadata track; and

returning control of the client interface to the client whereby the metadata track with the fields to be updated is subsequently destaged.

44. The method of claim 43 , wherein the code for validating the metadata track is capable of performing the following:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a journal recovery of the metadata track.

45. The method of claim 43 , wherein the code for validating the metadata track is capable of performing the following:

determining if the metadata track is in a valid state; and

if the metadata track is not in a valid state, performing a clear status track (CST) operation on the metadata track.

46. The method of claim 43 , wherein the code is further capable of:

creating a plurality of subsets of metadata fields which are likely to be updated during a corresponding plurality of predetermined access operations by a client, each access operation being identified by an update type; and

in response to the client call, sending to the client the subset of metadata fields corresponding to the update type provided by the client;

whereby the client is granted access only to those fields of the metadata track which are likely to be updated during the operation identified by the update type.

47. The method of claim 43 , wherein the code is further capable of acquiring a lock whereby other clients are prevented from accessing the metadata track.

48. The method of claim 43 , wherein the metadata comprises copy services metadata.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE RECEIVING PARTY NAME PREVIOUSLY RECORDED ON REEL 015405 FRAME 0424. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT TO INTERNATIONAL BUSINESS MACHINES CORPORATION EXECUTED 11/16/2004. Recorded Jun 2, 2014
From: MAHAR, AARON S; BUDAYA, ANGELIQUE R; SPRINGER, JAMES A
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 033075/0976 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 1, 2004
From: MAHAR, AARON S; BUDAYA, ANGELIQUE R; SPRINGER, JAMES A
To: INTERNATIONAL BUSINESS MACHINES (IBM) CORPORATION
Reel/Frame 015405/0424 →
Continuity (1)
Related Publication 20060106971A1 · May 18, 2006