1. A computer program product for dynamically allocating access to a shared resource based on quota shares, the computer program product comprising: a computer readable storage medium having program instructions embodied therewith, the program instructions readable by a client node in a system that includes a plurality of client nodes to cause the client node to perform a method comprising: computing, by the 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, wherein the manager node is configured to allocate quota shares across the plurality of client nodes; receiving, 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.