An Energy-Optimized Object Storage System for Memory-Constrained Sensor Devices
Recent gains in energy-efficiency of new-generation NAND flash storage
have strengthened the case for in-network storage by data-centric
sensor network applications. We argue that a simple file system
abstraction is inadequate for realizing the full benefits of
high-capacity low-power NAND flash storage in data-centric
applications. Instead we advocate a rich object storage abstraction to
support flexible use of the storage system for a variety of application
needs and one that is specifically optimized for memory and
energy-constrained sensor platforms. We propose Capsule, an
energy-optimized log-structured object storage system for flash
memories that enables sensor applications to exploit storage resources
in amultitude of ways.
Capsule provides the abstraction of typed storage objects to applications; supported object types include streams, indexes, stacks and queues. A novel aspect of Capsule is that it also allows composition of objects
for instance, a stream and index object can be composed to archive
sensed data. The objects expose a data structure-like interface,
allowing applications to easily manipulate data.
Capsule seamlessly supports storage on a multitude of platforms (both NAND and NOR flashes) with the help of a hardware abstraction layer;
the same application can be used on any supported platform. Currently
we support storage on the following platforms: Mica2, MicaZ, Mica2
Dot, Telos and our custom NAND flash board. However, the use of an
abstraction layer allows supporting a new platform a breeze.
Capsule supports checkpointing and rollback
of storage objects, allowing the application to tolerate software
faults and device failures. The application state is automatically
restored when the device restarts.
We provide our own file system implementation on Capsule that allows applications using Matchbox and ELF to be ported to Capsule.
Flash offers a finite storage medium; once it fills up, free
space needs to be created before any further data can be stored on it.
Basic Capsule objects perform memory reclamation by supporting compaction.
The Capsule architecture is shown here:
Our research also looked at providing an ultra-low power storage
substrate specific to sensor devices. We found NAND flash to provide an
extremely low-power high-capacity alternative to current storage
solutions and we built custom adapters to allow us to work with NAND
Capsule has been written using nesC on TinyOS. The Turtle project of the PRISMS
group at UMass-Amherst is using Capsule for the sensor application
being deployed on the turtles so the code has already undergone a
rigorous round of testing.
Documentation and Support: Capsule is work in progress -- preliminary
documentation has been provided in the README along with some sample
applications. For support queries, send email to firstname.lastname@example.org
Gaurav Mathur, Paul Chukiu, Peter Desnoyers, Deepak Ganesan and Prashant Shenoy, A Storage-centric Camera Sensor Network, Proceedings of the Fourth ACM Conference on Embedded Networked Sensor Systems - Demonstrations (SenSys), Boulder CO, November 1-3, 2006.
This work is supported by a grant from the Engineering Research Centers
program of the National Science Foundation under cooperative agreement
EEC-0313747, CNS-0626873, CNS-0546177, CNS-052072, CNS-0325868, and