Claims
- 1. A method for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising the steps of:
receiving a request for meta data from a process; determining whether the requested meta data is in cache; determining whether there are a sufficient number of allocatable segments in cache to stage in the meta data after determining that the requested meta data is not in cache; allocating segments in cache to store the meta data after determining that there are enough allocatable segments in cache; and staging the requested meta data into the allocated segments.
- 2. The method of claim 1, further comprising the steps of:
determining whether the process provided a callback function after determining that there are an insufficient number of segments available; returning wait to the process after determining that a callback function was provided to wait for the meta data to be staged into the allocated segment; and returning fail to the process after determining that a callback function was not provided.
- 3. The method of claim 2, further comprising the step of staging in the requested meta data after returning fail to the process.
- 4. The method of claim 1, further comprising the steps of:
processing the meta data to produce a value; determining whether the produced value indicates that the meta data is valid; and indicating that the meta data is valid after determining that the produced value indicates that the meta data is valid.
- 5. The method of claim 4, further comprising the steps of:
incrementing a counter indicating a number of processes that have access to the meta data; and returning a success notification and a pointer to the meta data in cache.
- 6. The method of claim 5, further comprising the steps of;
determining whether wait was returned to the process; and calling a callback function provided by the process to perform the step of returning the success notification and pointer to the process after determining that wait was returned, wherein success notification and the pointer are returned to the process after determining that wait was not returned.
- 7. A method for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising the steps of:
receiving a request for meta data from a first process; determining whether the meta data is in cache; determining whether a second process has exclusive access to the meta data in cache after determining that the requested meta data is in cache; indicating to the first process that access to the meta data is permitted after determining that the second process does not have exclusive access; and notifying the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access after determining that the second process has exclusive access.
- 8. The method of claim 7, wherein the step of notifying the first process comprises the steps of:
determining whether the first process provided a callback function; returning wait to notify the first process that access will be provided at a later time after determining that the callback function was provided; and returning fail to the host process after determining that a callback function was not provided, wherein the first process is not notified that access will be provided at a later time if fail is returned.
- 9. The method of claim 7, further comprising the step of incrementing a value indicating a number of processes that have access to the meta data after determining that a second process does not have exclusive access.
- 10. The method of claim 9, further comprising the steps of:
determining whether the requested meta data was previously modified after determining that a second process does not have exclusive access; and indicating that the meta data was modified after determining that the meta data was not modified, wherein the step of indicating to the first process that access to the meta data is permitted occurs after indicating that the meta data was modified.
- 11. The method of claim 10, further comprising the step of identifying the meta data in a non-volatile storage unit after indicating the meta data was modified.
- 12. A method for processing a request to end track access to a meta data track from a process, comprising:
providing a queue of access requests to a meta data track; receiving a request from the process to terminate access to the meta data track; determining whether the process requesting to terminate access has exclusive access to the meta data track; processing the queue to select an access request; and granting access to the meta data track to the selected access request; determining whether the selected access request is for exclusive access to the meta data track; and granting access to the meta data track to an additional selected access request in the queue after determining that the previous selected access request is not for exclusive access.
- 13. A system for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising:
a cache; a control unit in communication with the cache; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a process; (ii) means for determining whether the requested meta data is in the cache; (iii) means for determining whether there are a sufficient number of allocatable segments in the cache to stage in the meta data after determining that the requested meta data is not in the cache; (iv) means for allocating segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache; and (v) means for staging the requested meta data into the allocated segments.
- 14. The system of claim 13, wherein the control logic further comprises:
means for determining whether the process provided a callback function after determining that there are an insufficient number of segments available; means for returning wait to the process after determining that a callback function was provided to wait for the meta data to be staged into the allocated segments; and means for returning fail to the process after determining that a callback function was not provided.
- 15. The system of claim 14, wherein the control logic further includes means for staging in the requested meta data after returning fail to the process.
- 16. The system of claim 13, wherein the control logic further includes:
means for processing the meta data to produce a value; means for determining whether the produced value indicates that the meta data is valid; and means for indicating that the meta data is valid after determining that the produced value indicates that the meta data is valid.
- 17. The system of claim 16, wherein the control logic further includes:
means for incrementing a counter indicating a number of processes that have access to the meta data; and means for returning a success notification and a pointer to the meta data in cache.
- 18. The system of claim 17, wherein the control logic further includes:
determining whether wait was returned to the process; and calling a callback function provided by the process to perform the step of returning the success notification and pointer to the process after determining that wait was returned, wherein success notification and the pointer are returned to the process after determining that wait was not returned.
- 19. A system for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising:
a cache; a control unit in communication with the cache; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a first process; (ii) means for determining whether the meta data is in cache; (iii) means for determining whether a second process has exclusive access to the meta data in cache after determining that the requested meta data is in cache; (iv) indicating to the first process that access to the meta data is permitted after determining that the second process does not have exclusive access; and (v) means for notifying the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access after determining that the second process has exclusive access.
- 20. The system of claim 19, wherein the control logic further includes:
means for determining whether the first process provided a callback function; means for returning wait to notify the first process that access will be provided at a later time after determining that the callback function was provided; and means for returning fail to the host process after determining that a callback function was not provided, wherein the first process is not notified that access will be provided at a later time if fail is returned.
- 21. The system of claim 19, wherein the control logic further includes means for incrementing a value indicating a number of processes that have access to the meta data after determining that a second process does not have exclusive access.
- 22. The system of claim 21, wherein the control logic further includes:
means for determining whether the requested meta data was previously modified after determining that a second process does not have exclusive access; and means for indicating that the meta data was modified after determining that the meta data was not modified, wherein the step of indicating to the first process that access to the meta data is permitted occurs after indicating that the meta data was modified.
- 23. The system of claim 19, wherein the control logic further includes means for identifying the meta data in a non-volatile storage unit after indicating that the meta data was modified.
- 24. A system for processing a request to end track access to a meta data track from a process, wherein the meta data provides information on data maintained in a storage device, comprising:
a cache; a control unit in communication with the cache; control logic implemented within the control unit, comprising:
(i) means for providing a queue of access requests to a meta data track; (ii) means for receiving a request from the process to terminate access to the meta data track; (iii) means for determining whether the process requesting to terminate access has exclusive access to the meta data track; (iv) means for processing the queue to select an access request; and granting access to the meta data track to the selected access request; (v) means for determining whether the selected access request is for exclusive access to the meta data track; and (vi) means for granting access to the meta data track to an additional selected access request in the queue after determining that the previous selected access request is not for exclusive access.
- 25. A system for managing meta data, comprising:
a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache and the storage unit; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a process; (ii) means for determining whether the requested meta data is in the cache; (iii) means for determining whether there are a sufficient number of allocatable segments in the cache to stage in the meta data after determining that the requested meta data is not in the cache; (iv) means for allocating segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache; and (v) means for staging the requested meta data into the allocated segments.
- 26. The system of claim 25, wherein the control logic further comprises:
means for determining whether the process provided a callback function after determining that there are an insufficient number of segments available; means for returning wait to the process after determining that a callback function was provided to wait for the meta data to be staged into the allocated segments; and means for returning fail to the process after determining that a callback function was not provided.
- 27. The system of claim 25, wherein the control logic further includes:
means for processing the meta data to produce a value; means for determining whether the produced value indicates that the meta data is valid; and means for indicating that the meta data is valid after determining that the produced value indicates that the meta data is valid.
- 28. A system for managing meta data, comprising:
a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache and the storage device; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a first process; (ii) means for determining whether the meta data is in cache; (iii) means for determining whether a second process has exclusive access to the meta data in cache after determining that the requested meta data is in cache; (iv) indicating to the first process that access to the meta data is permitted after determining that the second process does not have exclusive access; and (v) means for notifying the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access after determining that the second process has exclusive access.
- 29. The system of claim 28, wherein the control logic further includes:
means for determining whether the first process provided a callback function; means for returning wait to notify the first process that access will be provided at a later time after determining that the callback function was provided; and means for returning fail to the host process after determining that a callback function was not provided, wherein the first process is not notified that access will be provided at a later time if fail is returned.
- 30. A system for processing a request to end track access to a meta data track from a process, comprising:
a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache and the storage device; control logic implemented within the control unit, comprising:
(i) means for providing a queue of access requests to a meta data track; (ii) means for receiving a request from the process to terminate access to the meta data track; (iii) means for determining whether the process requesting to terminate access has exclusive access to the meta data track; (iv) means for processing the queue to select an access request; and granting access to the meta data track to the selected access request; (v) means for determining whether the selected access request is for exclusive access to the meta data track; and (vi) means for granting access to the meta data track to an additional selected access request in the queue after determining that the previous selected access request is not for exclusive access.
- 31. A data processing system for managing meta data, comprising:
a client computer; a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache, the storage device, and the client computer; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a process related to a process initiated by the client computer; (ii) means for determining whether the requested meta data is in the cache; (iii) means for determining whether there are a sufficient number of allocatable segments in the cache to stage in the meta data after determining that the requested meta data is not in the cache; (iv) means for allocating segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache; and (v) means for staging the requested meta data into the allocated segments.
- 32. The system of claim 31, wherein the control logic further comprises:
means for determining whether the process provided a callback function after determining that there are an insufficient number of segments available; means for returning wait to the process after determining that a callback function was provided to wait for the meta data to be staged into the allocated segments; and means for returning fail to the process after determining that a callback function was not provided.
- 33. The system of claim 31, wherein the control logic further includes:
means for processing the meta data to produce a value; means for determining whether the produced value indicates that the meta data is valid; and means for indicating that the meta data is valid after determining that the produced value indicates that the meta data is valid.
- 34. A data processing system for managing meta data, comprising:
a client computer; a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache, the storage device, and the client computer; control logic implemented within the control unit, comprising:
(i) means for receiving a request for meta data from a first process related to a process initiated by the client computer; (ii) means for determining whether the meta data is in cache; (iii) means for determining whether a second process related to a process initiated by the client computer has exclusive access to the meta data in cache after determining that the requested meta data is in cache; (iv) indicating to the first process that access to the meta data is permitted after determining that the second process does not have exclusive access; and (v) means for notifying the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access after determining that the second process has exclusive access.
- 35. The system of claim 34, wherein the control logic further includes:
means for determining whether the first process provided a callback function; means for returning wait to notify the first process that access will be provided at a later time after determining that the callback function was provided; and means for returning fail to the host process after determining that a callback function was not provided, wherein the first process is not notified that access will be provided at a later time if fail is returned.
- 36. A data processing system for processing a request to end track access to a meta data track from a process, comprising:
a client computer; a cache; a storage device, wherein the meta data provides information on data maintained in a storage device, a control unit in communication with the cache, the storage device, and the client computer; control logic implemented within the control unit, comprising:
(i) means for providing a queue of access requests to a meta data track; (ii) means for receiving a request from the process to terminate access to the meta data track; (iii) means for determining whether the process requesting to terminate access has exclusive access to the meta data track; (iv) means for processing the queue to select an access request; and granting access to the meta data track to the selected access request; (v) means for determining whether the selected access request is for exclusive access to the meta data track; and (vi) means for granting access to the meta data track to an additional selected access request in the queue after determining that the previous selected access request is not for exclusive access.
- 37. An article of manufacture for use in programming a control unit to manage meta data, wherein the control unit is in communication with a process, the article of manufacture comprising a computer usable medium including at least one computer program embedded therein that is capable of causing the control unit to perform the steps of:
receiving a request for meta data from a process; determining whether the requested meta data is in cache; determining whether there are a sufficient number of allocatable segments in cache to stage in the meta data after determining that the requested meta data is not in cache; allocating segments in cache to store the meta data after determining that there are enough allocatable segments in cache; and staging the requested meta data into the allocated segments.
- 38. The article of manufacture of claim 37, wherein the computer program is further capable of causing the control unit to perform the steps of:
determining whether the process provided a callback function after determining that there are an insufficient number of segments available; returning wait to the process after determining that a callback function was provided to wait for the meta data to be staged into the allocated segment; and returning fail to the process after determining that a callback function was not provided.
- 39. The article of manufacture of claim 38, wherein the computer program is further capable of causing the control unit to perform the step of staging in the requested meta data after returning fail to the process.
- 40. The article of manufacture of claim 37, wherein the computer program is further capable of causing the control unit to perform the steps of:
processing the meta data to produce a value; determining whether the produced value indicates that the meta data is valid; and indicating that the meta data is valid after determining that the produced value indicates that the meta data is valid.
- 41. The article of manufacture of claim 40, wherein the computer program is further capable of causing the control unit to perform the steps of:
incrementing a counter indicating a number of processes that have access to the meta data; and returning a success notification and a pointer to the meta data in cache.
- 42. The article of manufacture of claim 41, wherein the computer program is further capable of causing the control unit to perform the steps of:
determining whether wait was returned to the process; and calling a callback function provided by the process to perform the step of returning the success notification and pointer to the process after determining that wait was returned, wherein success notification and the pointer are returned to the process after determining that wait was not returned.
- 43. An article of manufacture for use in programming a control unit to manage meta data, wherein the control unit is in communication with a process, the article of manufacture comprising a computer usable medium including at least one computer program embedded therein that is capable of causing the control unit to perform the steps of:
receiving a request for meta data from a first process; determining whether the meta data is in cache; determining whether a second process has exclusive access to the meta data in cache after determining that the requested meta data is in cache; indicating to the first process that access to the meta data is permitted after determining that the second process does not have exclusive access; and notifying the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access after determining that the second process has exclusive access.
- 44. The article of manufacture of claim 43, wherein the step of notifying the first process comprises the steps of:
determining whether the first process provided a callback function; returning wait to notify the first process that access will be provided at a later time after determining that the callback function was provided; and returning fail to the host process after determining that a callback function was not provided, wherein the first process is not notified that access will be provided at a later time if fail is returned.
- 45. The article of manufacture of claim 43, wherein the computer program is further capable of causing the control unit to perform the step of incrementing a value indicating a number of processes that have access to the meta data after determining that a second process does not have exclusive access.
- 46. The article of manufacture of claim 45, wherein the computer program is further capable of causing the control unit to perform the steps of
determining whether the requested meta data was previously modified after determining that a second process does not have exclusive access; and indicating that the meta data was modified after determining that the meta data was not modified, wherein the step of indicating to the first process that access to the meta data is permitted occurs after indicating that the meta data was modified.
- 47. The article of manufacture of claim 46, wherein the computer program is further capable of causing the control unit to perform the step of identifying the meta data in a non-volatile storage unit after indicating the meta data was modified.
- 48. An article of manufacture for use in programming a control unit to process a request to end track access to a meta data track from a process, wherein the control unit is in communication with a process, the article of manufacture comprising a computer usable medium including at least one computer program embedded therein that causes the control unit to perform the steps of: providing a queue of access requests to a meta data track;
receiving a request from the process to terminate access to the meta data track; determining whether the process requesting to terminate access has exclusive access to the meta data track; processing the queue to select an access request; and granting access to the meta data track to the selected access request; determining whether the selected access request is for exclusive access to the meta data track; and granting access to the meta data track to an additional selected access request in the queue after determining that the previous selected access request is not for exclusive access.
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is related to the co-pending and commonly-assigned patent application entitled “Method and System For Recovery of Meta Data in a Storage Controller,” attorney docket no. TU998070, to Brent C. Beardsley, Michael T. Benhase, Douglas A. Martin, R. L. Morton, Kenneth W. Todd, which application was filed on the same date herewith and which application is incorporated herein by reference in its entirety.
Continuations (1)
|
Number |
Date |
Country |
Parent |
09261683 |
Mar 1999 |
US |
Child |
10269507 |
Oct 2002 |
US |