1. A method for dynamically allocating access to a shared resource based on quota shares, the method comprising: computing, by a client node, an expected size of quota shares needed by the client node based on a historical rate of resource consumption by the client node, the historical rate of consumption for the client node based on information recorded in a vector, the vector including slots corresponding to time periods, each slot storing index or file usage of the client node during a time period, block usage of the client node during the time period, and a time stamp of the time period; transmitting, by the client node, a request to a manager node for a number of quota shares based on the expected size; receiving, by the client node, from the manager node, an indication that the request for the number of quota shares is one of: granted, denied, and granted-in-part, the indication including a number of quota shares granted to the client node by the manager node; and self-ruling, by the client node, the shared resource based on the indication, the self-ruling performed for an expected self-rule time that is based on the number of quota shares granted to the client node, the self-ruling include assigning the shared resource to a specific operation.