Patent ID: 8745630

Claim:
An apparatus for dynamically allocating resources used in a meta-data repository, the apparatus comprising: a processor; a tracking module configured to track resources allocated to a meta-data repository, the meta-data repository comprising a repository that stores meta-data related to a computer system, the resources comprising a plurality of strings and a plurality of buffers, wherein each string comprises a resource allocated to handle a single meta-data repository I/O request, a number of strings defining a number of I/O requests to the meta-data repository that may be handled concurrently, the meta-data repository comprising a repository queue configured to store one or more meta-data repository I/O requests; an adjustment evaluation module configured to evaluate repository usage of the resources allocated to the meta-data repository and ascertain whether a resource adjustment is desirable, wherein the adjustment evaluation module is configured to evaluate whether a resource adjustment increase is desirable based at least in part on an amount of meta-data repository I/O requests concurrently located in the repository queue, wherein the adjustment evaluation module is configured to evaluate whether a resource adjustment decrease is desirable based on a sum of unused resources after each I/O request over a selected interval, and a second sum of I/O requests made over the selected interval; an adjustment determination module configured to determine desirable adjustments to the resources available to the meta-data repository; and an allocation module configured to adjust resources allocated to the meta-data repository in accordance with the adjustment determination module, wherein adjusting resources comprises changing a number of strings allocated to handle concurrent meta-data repository I/O requests; wherein the tracking module, adjustment evaluation module, adjustment determination module, and allocation module each comprise one or more of hardware and a computer readable storage medium having stored thereon machine-readable instructions executable by the processor.