1. A method of data caching and distribution, comprising: at a plurality of machines that are included in a linear communication orbit, wherein the linear communication orbit includes two end nodes, comprising a head node and a tail node: generating a data request by a first machine to request specific data; passing the data request along a data request path that tracks the linear communication orbit until the request is received at a second machine, in the linear communication orbit, that returns the specific data in response to the data request; and at a third machine between the second machine and the first machine in the linear communication orbit conditionally storing the specific data in a local cache of the third machine according to a data caching method.