PodBase: transparent storage management for personal devices

Personal electronic devices that include a large amount of storage are increasingly common. Already, many households use multiple mobile phones, digital cameras, MP3 players and gaming devices, in addition to desktop and notebook computers. Today, users must individually manage these devices to ensure the durability and availability of the data they store. Ensuring that data is durable, or regularly backed up, is an onerous task even for a single home computer. As the number of devices increases, it is difficult for the user to ensure that no data is lost in the event of a loss or failure of any one device. Even with the help of device-specific maintenance software, the user must keep track of all devices that need to be backed up and perform the appropriate actions on a regular basis. Anecdotal evidence suggests that many users fail to ensure the durability of their data [5, 6]. Thus, users face the risk of data loss as they are increasingly dependent on digital information. Making sure that data is available on the devices where it is needed is equally difficult. A user must regularly connect and synchronize devices to ensure, for instance, that changes to her address book are propagated to all communications devices and additions to her music library eventually is present on all devices capable of playing music. Currently, keeping devices synchronized is an inconvenient and error-prone task. In this paper, we sketch the design of PodBase, a system that automatically manages the data and storage across a household’s personal devices and frees users from the responsibility of manual data management. Data is automatically replicated to ensure both durability of data and availability of the latest data on relevant devices. The system operates transparently and takes advantage of available storage space and incidental connectivity that occurs among the devices. Once a household’s devices are introduced to PodBase, metadata is gossiped whenever devices are connected via a network, Bluetooth or USB. Moreover, during periods of connectivity, each device makes autonomous decisions about data replication. Through pairwise exchanges of data and metadata, the system makes progress towards ensuring availability and durability of data. PodBase is self-managing and requires no oversight or input from the user during normal operation. It is completely decentralized and does not rely on the presence of any single device. Given sufficient storage space, the data stored on any device can be recovered automatically in the case of device loss or storage failure. For example, if a user loses his laptop, a recent snapshot of the data that was stored on it can be recovered. Replicated data stored on a device can also be accessed by the user, which provides additional availability. We present evidence for the feasibility of our design using a storage trace gathered in 11 households, including over 40 storage devices, over a period of several months. The trace captures the interaction of storage devices as well as information such as storage device sizes, available capacity, and rate of data generation. Overall, the trace indicates that, relative to the rate at which new data tends to be generated, the design is feasible. That is, there is sufficient available storage space and devices are connected often enough to allow the transparent and timely replication of new data. The rest of the paper is structured as follows: Related work is discussed in Section 2. Section 3 describes the target environment and states PodBase’s goals. In Section 4, we sketch the design of PodBase. Section 5 studies the feasibility of PodBase using our trace data, and Section 6 concludes.