A method comprising: receiving, at a dispatcher of a storage system, a request for an object from a client; identifying, by the dispatcher, candidate storage nodes of the storage system for serving the object to the client by generating an ordered list of the candidate storage nodes using a two-dimensional consistent hashing function that depends on both a flow associated with the request for the object and the object itself; and facilitating distribution of the request for the object through one or more candidate storage nodes of the candidate storage nodes according to the ordered list of the candidate storage nodes for filling the request for the object, wherein the one or more candidate storage nodes are configured to facilitate the distribution of the request for the object by selectively filling the request for the object to the client using cache admission policies formed based on popularity characteristics of requested objects at the one or more candidate storage nodes, wherein the one or more candidate storage nodes are configured to selectively fill the request for the object by: determining, at a candidate storage node of the one or more candidate storage nodes, whether to accept the request for the object using a cache admission policy of the candidate storage node formed based on popularity characteristics of the requested objects, including popularity characteristics of the requested object, at the candidate storage node; identifying whether the object is in local storage at the candidate storage node in response to accepting the request for the object at the candidate storage node; and serving the object to the client from the local storage at the candidate storage node if it is identified that the object is in the local storage. receiving, at a dispatcher of a storage system, a request for an object from a client; identifying, by the dispatcher, candidate storage nodes of the storage system for serving the object to the client by generating an ordered list of the candidate storage nodes using a two-dimensional consistent hashing function that depends on both a flow associated with the request for the object and the object itself; and facilitating distribution of the request for the object through one or more candidate storage nodes of the candidate storage nodes according to the ordered list of the candidate storage nodes for filling the request for the object, wherein the one or more candidate storage nodes are configured to facilitate the distribution of the request for the object by selectively filling the request for the object to the client using cache admission policies formed based on popularity characteristics of requested objects at the one or more candidate storage nodes, wherein the one or more candidate storage nodes are configured to selectively fill the request for the object by: determining, at a candidate storage node of the one or more candidate storage nodes, whether to accept the request for the object using a cache admission policy of the candidate storage node formed based on popularity characteristics of the requested objects, including popularity characteristics of the requested object, at the candidate storage node; identifying whether the object is in local storage at the candidate storage node in response to accepting the request for the object at the candidate storage node; and serving the object to the client from the local storage at the candidate storage node if it is identified that the object is in the local storage. determining, at a candidate storage node of the one or more candidate storage nodes, whether to accept the request for the object using a cache admission policy of the candidate storage node formed based on popularity characteristics of the requested objects, including popularity characteristics of the requested object, at the candidate storage node; identifying whether the object is in local storage at the candidate storage node in response to accepting the request for the object at the candidate storage node; and serving the object to the client from the local storage at the candidate storage node if it is identified that the object is in the local storage.