Method and system for managing meta data
First Claim
1. A method for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising:
- receiving a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
determining whether the requested meta data is available in a cache; and
returning the requested meta data to the process if the meta data is available in cache;
wherein if the meta data is not available because the requested meta data is not in cache, further performing;
(i) determining whether there is 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;
(ii) allocating segments in cache to store the meta data after determining that there are enough allocatable segments in cache;
(iii) staging the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(iv) determining whether the process indicated to wait for metadata; and
(v) if the process indicated to wait for metadata, then returning the requested meta data when the requested meta data becomes available in cache.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed is a method, system, and article of manufacture for managing meta data. The meta data provides information on data maintained in a storage device. The system receives a request for meta data from a process and determines whether the requested meta data is in cache. After determining that the requested meta data is not in cache, the system determines whether there are a sufficient number of allocatable segments in cache to stage in the meta data and allocates segments in cache to store the meta data after determining that there are enough allocatable segments in cache. The system stages the requested meta data into the allocated segments. Alternatively, after determining that the requested meta data is in cache, the system determines whether a second process has exclusive access to the meta data in cache. After determining that the second process does not have exclusive access, the system indicates to the first process that access to the meta data is permitted. Otherwise, after determining that the second process has exclusive access, the system notifies the first process that access to the meta data track will be provided at a later time when the second process relinquishes exclusive access.
165 Citations
24 Claims
-
1. A method for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising:
-
receiving a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
determining whether the requested meta data is available in a cache; and
returning the requested meta data to the process if the meta data is available in cache;
wherein if the meta data is not available because the requested meta data is not in cache, further performing;
(i) determining whether there is 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;
(ii) allocating segments in cache to store the meta data after determining that there are enough allocatable segments in cache;
(iii) staging the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(iv) determining whether the process indicated to wait for metadata; and
(v) if the process indicated to wait for metadata, then returning the requested meta data when the requested meta data becomes available in cache. - View Dependent Claims (2, 3)
determining whether the process provided a callback function after determining that there is an insufficient number of segments available, wherein the process indicates to wait for meta data if the process provided the callback function;
returning wait to the process after determining that the callback function was provided; and
returning fail to the process after determining that the callback function was not provided.
-
-
3. The method of claim 1, further comprising:
-
returning fail to the process if the process did not indicate to wait for metadata; and
staging in the requested meta data after said returning fail to the process.
-
-
4. A method for managing meta data, wherein the meta data provides information on data maintained in a storage device, comprising:
-
receiving a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
determining whether the requested meta data is available in a cache;
returning the requested meta data to the process if the meta data is available in cache;
if the metadata is not available, determining whether the process indicated to wait for metadata;
processing the requested meta data in cache to produce a value after the meta data is staged into cache;
determining whether the produced value indicates that the requested meta data is valid; and
indicating that the requested meta data is valid after determining that the produced value indicates that the meta data is valid, wherein the requested meta data is returned to the process that indicated to wait for the metadata if the requested meta data in cache is indicated as valid. - View Dependent Claims (5, 6)
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 to return the requested meta data to the process.
-
-
6. The method of claim 5, further comprising;
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 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; and
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
wherein if the meta data is not available because the requested meta data is not in the cache, then the control logic causes the control unit to further;
(a) determine whether there is 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;
(b) allocate segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache;
(c) stage the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(d) determine whether the process indicated to wait for metadata; and
(e) if the process indicated to wait for metadata, then return the requested meta data when the requested meta data becomes available in cache. - View Dependent Claims (8)
determining whether the process provided a callback function after determining that there are an insufficient number of segments available, wherein the process indicates to wait for meta data if the process provided the callback function;
returning wait to the process after determining that the callback function was provided; and
returning fail to the process after determining that the callback function was not provided.
-
-
9. 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; and
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) if the meta data is not available, determine whether the process indicated to wait for metadata;
(v) if the process indicated to wait for metadata, then return the requested meta data when the requested meta data becomes available in the cache;
(vi) return fail to the process if the process did not indicate to wait for metadata; and
(vii) stage in the requested meta data after returning fail to the process.
-
-
10. 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; and
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) if the meta data is not available, determine whether the process indicated to wait for metadata;
(v) process the requested meta data in the cache to produce a value after determining that the process indicated to wait for meta data;
(vi) determine whether the produced value indicates that the requested meta data is valid; and
(vii) indicate that the requested meta data is valid after determining that the produced value indicates that the meta data is valid, wherein the requested meta data is returned to the process that indicated to wait for the metadata if the requested meta data in cache is indicated as valid. - View Dependent Claims (11, 12)
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 to return the requested meta data to the process.
-
-
12. The system of claim 11, wherein the control logic further causes the control unit to perform:
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.
-
13. 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
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) wherein if the meta data is not available because the requested meta data is not in the cache, then the control logic causes the control unit to further;
(a) determine whether there is 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;
(b) allocate segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache;
(c) stage the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(d) determine whether the process indicated to wait for metadata; and
(e) if the process indicated to wait for metadata, then return the requested meta data when the requested meta data becomes available in the cache. - View Dependent Claims (14)
determining whether the process provided a callback function after determining that there are an insufficient number of segments available, wherein the process indicates to wait for meta data if the process provided the callback function;
returning wait to the process after determining that the callback function was provided; and
returning fail to the process after determining that the callback function was not provided.
-
-
15. 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
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) if the meta data is not available, determine whether the process indicated to wait for metadata;
(v) process the requested meta data in the cache to produce a value after determining that the process indicated to wait for meta data;
(vi) determine whether the produced value indicates that the requested meta data is valid; and
(vii) indicate that the requested meta data is valid after determining that the produced value indicates that the meta data is valid, wherein the requested meta data is returned to the process that indicated to wait for the metadata if the requested meta data in cache is indicated as valid.
-
-
16. 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; and
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) if the meta data is not available because the requested meta data is not in the cache, then the control logic causes the control unit to further;
(a) determine whether there is 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;
(b) allocate segments in the cache to store the meta data after determining that there are enough allocatable segments in the cache;
(c) stage the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(d) determine whether the process indicated to wait for metadata; and
(e) if the process indicated to wait for metadata, then return the requested meta data when the requested meta data becomes available in the cache. - View Dependent Claims (17)
determining whether the process provided a callback function after determining that there are an insufficient number of segments available, wherein the process indicates to wait for meta data if the process provided the callback function;
returning wait to the process after determining that the callback function was provided; and
returning fail to the process after determining that the callback function was not provided.
-
-
18. 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; and
control logic implemented within the control unit to cause the control unit to;
(i) receive a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
(ii) determine whether the requested meta data is available in the cache;
(iii) return the requested meta data to the process if the meta data is available in the cache;
(iv) if the meta data is not available, determine whether the process indicated to wait for metadata;
(v) process the requested meta data in the cache to produce a value after determining that the process indicated to wait for meta data;
(vi) determine whether the produced value indicates that the requested meta data is valid; and
(vii) indicate that the requested meta data is valid after determining that the produced value indicates that the meta data is valid, wherein the requested meta data is returned to the process that indicated to wait for the metadata if the requested meta data in cache is indicated as valid.
-
-
19. 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:
-
receiving a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
determining whether the requested meta data is available in a cache; and
returning the requested meta data to the process if the meta data is available in cache;
wherein if the meta data is not available because the requested meta data is not in cache, further performing;
(i) determining whether there is 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;
(ii) allocating segments in cache to store the meta data after determining that there are enough allocatable segments in the cache;
(iii) staging the requested meta data into the allocated segments, wherein the requested meta data is available to the process after being staged into the allocated segments;
(iv) determining whether the process indicated to wait for metadata; and
(v) if the process indicated to wait for metadata, then returning the requested meta data when the requested meta data becomes available in cache. - View Dependent Claims (20, 21)
determining whether the process provided a callback function after determining that there is an insufficient number of segments available, wherein the process indicates to wait for meta data if the process provided the callback function;
returning wait to the process after determining that the callback function was provided; and
returning fail to the process after determining that the callback function was not provided.
-
-
21. The article of manufacture of claim 19, wherein the computer program is further capable of causing the control unit to perform the steps of:
-
returning fail to the process if the process did not indicate to wait for metadata; and
staging in the requested meta data after said returning fail to the process.
-
-
22. 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:
-
receiving a request for meta data from a process performing an Input/Output (I/O) operation with respect to customer data, wherein the process uses the meta data to more efficiently process the customer data;
determining whether the requested meta data is available in a cache;
returning the requested meta data to the process if the meta data is available in cache;
if the meta data is not available, determining whether the process indicated to wait for metadata;
processing the requested meta data in cache to produce a value after the meta data is staged into cache;
determining whether the produced value indicates that the requested meta data is valid; and
indicating that the requested meta data is valid after determining that the produced value indicates that the meta data is valid, wherein the requested meta data is returned to the process that indicated to wait for the metadata if the requested meta data in cache is indicated as valid. - View Dependent Claims (23)
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 to return the requested meta data to the process.
-
-
24. The article of manufacture of claim 25, wherein the computer program is further capable of causing the control unit to perform the steps of:
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.
Specification