1. A method of caching data in a communication network, the method comprising: partitioning, at an originating server of the communication network, a data resource into multiple data partitions; assigning, at the originating server, a unique address to each of the data partitions; generating, by the originating server, a hashed partition address for each data partition based on the unique address for each data partition; distributing, from the originating server, each of the data partitions to at least one of a plurality of proxy servers based on the hashed partition address corresponding to each data partition, wherein the plurality of proxy servers and a local device are configured as a multilevel hierarchical cache of partitions for an application running on the local device, the multilevel hierarchical cache of partitions comprising at least a first level cache and a second level cache running on the local device, wherein each of the proxy servers is configured to: receive a read request for one of the data partitions stored at least one of the proxy servers, wherein the read request is received from the second level proxy based on the second level proxy determining the second level proxy does not contain the requested data partition in response to receiving a previous read request from the first level proxy when the first level proxy does not contain the requested data partition; and transmit the one of the data partitions to a source of the read request in response to the read request.