1. A method of data caching and distribution, comprising: at a computational machine having a local cache: receiving from a first machine a data request that is used to request specific data; determining whether the computational machine stores the specific data in the local cache; and in accordance with a determination that the computational machine does not store the specific data in the local cache, responding to the data request, by: passing the data request to a second machine, and when the second machine returns the specific data to the computational machine, returning the specific data to the first machine and determining whether to store the specific data in the local cache according to a data caching method.