1. A method comprising: receiving a definition of at least one data object and a compute object from a host at a storage compute device; associating a first key with the at least one data object and a second key with the compute object; receiving a command from the host to perform a computation that links the first and second keys, the computation being defined by the compute object and acting on the at least one data object via the storage compute device; performing the computation using the compute object and the at least one data object in response to the command; storing metadata describing an optimization of the computation and linking the metadata with at least the second key; receiving a second command to perform a second computation that references the second key and a third key associated with a second data object, the second computation being defined by the compute object and being performed on the second data object; and reusing the optimization on the second computation.