Patent ID: 7694082

Claim:
A method of managing a resource in a distributed storage system having a plurality of storage devices, comprising: generating a virtual pool of resources; distributing the resources among a set of allocation pools on the storage devices; where each allocation pool comprises: a specification of minimum and maximum resources that the allocation pool can consume; and a measure of current resource usage of the allocation pool; examining a request for resources by an application to determine availability of requested resources within the set of allocation pools; if the requested resources are available, then generating a virtual session in response to the request; generating a set of tokens corresponding to the set of allocation pools, where each token represents a right to consume a minimum guaranteed amount and a maximum limit for a specific resource; sending the set of tokens to the application for selective transmission to the storage device with a command; maintaining, at each of the storage devices, a cache entry of the tokens that were recently sent to said storage devices; and tracking the token in a token cache to monitor and limit consumption of the resources in the storage devices.