In certain aspects, the invention features a system and method for caching
results, including receiving a job for computation by a distributed
computing system having one or more node computing devices in
communication with a cache, processing, on one of the node computing
devices, the job to create an intermediate result for storage in the
cache, wherein the intermediate result includes data wherein a time
required to obtain the data by computation or retrieval from a data
storage external to the distributed computer system is at least
marginally greater than that of retrieving the intermediate result from
the cache. In accordance with such aspects, the system and method further
includes storing the intermediate result in the cache, and accessing the
cache by presenting a lookup function to the cache, wherein the lookup
function includes a key and a compute function configured to produce the
intermediate result.