PRESTO sensors perform three tasks: (i) use the model predictions to determine which observations to push, (ii) maintain a local archive of all observations, and (iii) respond to pull requests from the proxy.
The PRESTO sensor acts as a mirror for the prediction model at the
proxy--both the proxy and the sensor execute the model in a
completely identical fashion. Consequently, at each sampling instant,
the sensor knows the exact estimate of the sampled value at the proxy
and can determine whether the estimate is accurate. Only those samples
that deviate significantly from the prediction are pushed. As explained
earlier, the proxy transmits all the parameters of the model to each
sensor during system initialization. In addition, the proxy also
specifies a threshold
that defines the worst-case
deviation in the model prediction that the proxy can tolerate. Let
denote the actual observation at time
and let
denote
the predicted value computed using Equation 3.
Then,
PRESTO sensors archive all sensed values into an energy-efficient NAND
flash store; the flash archive is a log of tuples of the
form:
. A simple index is maintained to
permit random access to any entry in the log. A pull request from a
proxy involves the use of this index to locate the requested data in
the archive, followed by a read and a transmit.