We believe that difficulty of management will be a showstopper for the
growth of data storage in the home and that there is deep systems and
user-interaction research required to alleviate it. The goal of the
home storage management project is to build novel home storage
infrastructures, automated management systems, and effective user
interfaces that can, together, improve the manageability of home
storage solutions.
One of the building blocks of the home storage management project is
Perspective,
a decentralized home storage system with manageability as a principal
design point. Perspective uses a central construct called a
view to keep data synchronized between devices. A view
describes a set of objects in the semantic store in the form of a
query on per-object metadata. For example, a simple view could specify
every object, i.e., "*". More sophisticated views could specify all
objects that are of a particular type, are newer than a particular
date, or are owned by a particular user. In fact, a view can specify
an arbitrary query on any extensible metadata in the system.
In Perspective, each device registers with the system one or more
views that express the data objects that the device is interested
in. Devices only store data that matches at least one of their
views. Whenever data is created, modified, or deleted in the system, a
notification of that update is sent to all devices with views that
match the modified object. Each device sends a copy of all its views
to all other devices, allowing each device to easily determine which
other devices should receive a notification message.
Views simplify the task of storage management by enabling a wide
variety of techniques (e.g., simple replication, efficient search, and
flexible ensemble creation) in a way that is simple and understandable
to a user. Views can provide a foundation for automated tools to set
policy for storage management tasks. Using information about the
number and type of available storage devices, potential workload, and
user preferences, automated tools can find configurations that
maximize reliability, accessiblity, and performance, and then
configure the ensemble of devices by setting the views on each device.
When the workload or infrastructure changes (e.g., when a device fails
or is upgraded) an automation tool can, again, find the best new
configuration to support the user's data and workload. Users will
commonly share data both via the network and via portable devices,
both within their own home and with users from other homes. Support
for efficient search between any two devices, potentially owned by
different users, is essential. Lastly, sharing introduces
opportunities for compromising the security and privacy of a user's
data, requiring protections (more management tasks!) that are both
effective and intuitive.