Improving Information Availability in Storage-Centric Sensor Networks Nam Nguyen∗, Sudha Krishnamurthy†, Peng Xie‡ and Douglas Jones∗ ∗ University

of Illinois, Urbana-Champaign, Urbana, IL Telekom Laboratories, Berlin, Germany ‡ University of Connecticut, Storrs, CT {nnguyen5,dl-jones}@uiuc.edu,[email protected],[email protected] † Deutsche

Abstract—We address the issue of improving information availability in a class of delay-tolerant sensor network applications, where the sensor nodes are deployed in disconnected environments. In such environments, since there is no continuous access to a remote base station, there is a need to leverage the collaborative resources of the sensor network to support in-network storage. The stored data can then be retrieved opportunistically by mobile collectors in the proximity. We have developed a data-centric, in-network storage architecture that partitions the network into storage zones. In such a scheme, some of the storage nodes may be unavailable at the time of storage and retrieval, because they are either sleeping to conserve energy or because they have failed. We present two schemes based on random linear network coding for improving information availability within such a storage architecture. In the centralized scheme, the encoding is performed by the managers in each storage zone, whereas in the decentralized scheme, the encoding is done locally by the zone members. We have implemented the network coding schemes in TinyOS and we present results that show the impact of the zone size, duty cycle, and the degree of encoding on the decoding probability, based on our experiments on a testbed of Micaz motes.

Keywords: data-centric storage, network coding, information availability, sensor networks I. I NTRODUCTION Wireless sensor networks are primarily used to sense and gather information from the environments in which they are deployed. Depending on the urgency with which the information is relayed, sensor network applications may be broadly classified into real-time applications and delay-tolerant applications. A majority of the applications developed so far (e.g. [1], [2]) assume an infrastructure that allows easy and uninterrupted access to powerful edge devices and therefore, the sensors transmit the data they gather in real-time to a remote base station, which is responsible for correlating and storing that information. However, our work in this paper is targeted at disconnected sensor deployments, where there is no continuous access to a remote base station and mobile data collectors may opportunistically collect data when they are in the proximity. An example of such an environment is an underwater sensor network. The applications deployed in these environments are typically delay-tolerant. In these environments, there is a need for providing in-network storage for temporary periods of time and information availability is an important issue that needs to be addressed.

To improve information availability in disconnected sensor environments, we need mechanisms to transmit data reliably over unreliable channels and mechanisms to store data reliably when nodes are unavailable due to failures and power conservation issues, so that opportunistic data collectors in the proximity can collect the stored data and release the innetwork storage for future events. Our work is based on the assumption that while individual sensor nodes have limited storage and computational capabilities, the inherent redundancy in sensor networks can be leveraged to improve data persistence and fault tolerance. Our approach for improving information availability is based on network coding. By allowing intermediate nodes to opportunistically aggregate packets, network coding allows us to store data by taking advantage of the spatial and temporal correlations in the sensor data. It is well-suited for environments in which only partial or uncertain information is available for decision making. If we pick an appropriate coding scheme, then the decoder can retrieve the required number of packets for decoding from any subset of storage nodes, rather than wait for a specific node to become available. This is particularly relevant for sensor networks, where some nodes may have failed or may be sleeping to conserve energy at the time of retrieval. Previous efforts that have addressed the issue of data storage within sensor networks view a sensor network as a database and propose schemes to store data, in order to optimize the routing of queries to the appropriate storage node in the network (e.g. [3], [4]) and to use the limited storage resources to store data in a compressed manner (e.g. [5]). These schemes do not focus on ephemeral data storage in disconnected environments. Like our work, Envirostore [6] also addresses temporary data storage in disconnected sensor environments and opportunistic transfer of data to a data mule. However, unlike our work, which focuses on improving information availability and providing reliable storage in disconnected environments, Envirostore focuses on maximizing the storage capacity of a network by taking into account the residual energy of the nodes to redistribute data in the network. A. Data-Centric Storage In order to provide in-network storage for sensor networks, we have designed a distributed, data-centric storage scheme, called RESTORE [7]. RESTORE partitions the network into

(a) Comparison of communication overhead Fig. 1.

(b) Comparison of response time

Data-centric vs. local decentralized storage in sensor networks

zones. Just as a folder is a collection of files storing related information, each zone consists of nodes that store data corresponding to the same or similar events. In a multipurpose network, different zones store information about different events. For example, in the underwater sensor network scenario, a particular zone may be responsible for storing data related to oil spills, another zone may store data related to certain pollutant levels, and a third zone may store information about marine species. The mapping of events to the zones is determined by a hashing scheme and may take into account different factors, such as the location. For e.g., nodes that have a better opportunity for being in the proximity of the mobile collectors interested in information about a specific event may be designated as the storage zone for that event. The zones that detect an event use the mapping to transmit the observations to the storage zone designated to store information about that event. Each zone has a manager and a group of members. The manager knows all of its zone members and is responsible for using the collaborative resources of its zone members to provide reliable storage and the zone members are responsible for storing the information. The storage policies used by the zone manager to store data take into account the spatial and temporal correlations among the sensor data. The manager remains awake all the time, while the zone members sleep and wake up periodically and the sleep/wakeup schedules are determined by the power management policy. The manager functionality can be rotated periodically among the zone members to avoid energy depletion. When a manager receives data for storage, some zone members may be asleep and therefore, the manager needs to decide how to distribute information among its zone members for storage. Although the data transport from different detection zones to the corresponding storage zone consumes energy, there are at least two advantages in using a data-centric storage scheme for disconnected sensor deployments. First, by storing related data within a zone, we are able to correlate data better, eliminate duplicates, and thereby use the limited storage resources to

store data more compactly and efficiently in the network. Second, the storage network may be a multi-purpose network and different end-users may use their own mobile collectors to retrieve information related to different events. For example, in the underwater scenario, an oceanographic institute may send its mobile collector to collect information related to different marine species, an off-shore drilling company may send its mobile collector to retrieve information related to oil spills in the network, and a naval unit may send a ship to collect information relevant to underwater surveillance activities. These different collectors may have easier access to different regions of the network, from where they are more likely to collect the information. In such a case, there can potentially be a large latency in getting data out of multiple sources scattered randomly across the network and there is a tradeoff between work done at the time data is generated, relative to the work done at collection time. Designating different zones to store information related to the different events and distributing the zones in a way that they are easily accessible to those collectors that are interested in the information stored in that zone, enables the mobile collectors to query and retrieve data efficiently. This is also confirmed by the plots in Figure 1. The plots show the experimental results we obtained by comparing the performance of our data-centric storage scheme in RESTORE with a local, decentralized storage scheme. Both of these schemes were implemented in TinyOS and the experiments were conducted using TOSSIM [8]. A collector disseminated queries at an interval of 250 milliseconds and the results show the average performance over 30 queries for two different events. Figure 1a shows that the number of messages disseminated by the network to respond to the query is significantly higher in the case of the local storage scheme, while Figure 1b shows that the average response time is significantly higher in the case of the local storage scheme, compared to the data-centric scheme. These results confirm our intuition that by collecting related data in a group of nodes, we are able to reduce the energy spent and improve the response

time at the time of data retrieval. There are, however, a few challenges that need to be addressed, in order to provide reliable storage in a storage-centric network. First, we need to reliably transport data from one or more zones that detect an event to the storage zone (which serves as the sink), by taking advantage of the correlations in the data to limit the communication overhead. Second, after the data arrives at a zone reliably and when the zone manager wants to store the data or a mobile data collector is in the proximity to retrieve the stored data, some of the storage nodes may be unavailable, because either they have failed or they are sleeping to conserve energy. Hence, the storage scheme needs to make the information available even in the presence of power management and node failures, so that the collector can quickly recover as much data as possible from within a zone opportunistically, without having to wait for specific nodes in the zone to wake up. We are currently addressing the first issue as part of ongoing work, using an approach that combines network coding and compressed sensing. Compressed sensing can be used to take advantage of the data correlations [9], while network coding can be used to take advantage of the broadcast nature of sensor networks to provide reliable data transmission. In this paper, we assume that data arrives reliably at the storage zones and mainly focus on the second issue stated above, which deals with improving information availability of correlated data within the storage zones. While we can fully replicate the data within a zone to provide reliability, such a strategy does not utilize the limited resources of the sensor network efficiently. On the other hand, in order to use the limited storage resources more efficiently, the storage manager can distribute the data among the storage nodes so that there is no redundancy. However, if one of the storage nodes becomes unavailable at the time a collector is in the neighborhood, because either the node has failed or is sleeping to conserve energy, then the information stored in that node becomes unavailable. Instead, our approach is to use network coding techniques to improve the information availability in the network. The key intuition behind using an approach based on network coding is that if we pick an appropriate encoding strategy, then decoding depends on retrieving a certain number of packets from any subset of zone members in a storage zone and is independent of which zone members are awake. So if we choose the duty cycle in such a way that a certain number of zone members will be available during a given interval of time, then we can maximize the opportunistic retrieval of data, without depending on specific zone members to become available. The remainder of the paper is organized as follows. Section II provides a brief background on network coding and summarizes related work. In Section III, we propose two distributed network coding schemes for a storage-centric sensor network and provide a comparative analysis. In Section IV, we describe the implementation of the two schemes on Micaz motes and present experimental results comparing their performance. In Section V, we present our conclusions.

II. N ETWORK C ODING BASICS Network coding allows intermediate nodes to opportunistically recombine several input packets into one or more output packets, instead of simply forwarding them. There are different methods for combining the packets. For example, in linear network coding, an intermediate node sends a linear combination of packets it has received or wants to send [10]. Each data packet that is encoded using linear network coding is associated with a sequence of coefficients, where the coefficients g(i) and data x(i) are part of a vector of length u and are interpreted as numbers over a finite field F (2u ). A packet contains the encoding vector as well as the information vector resulting from the encoding. Decoding involves solving a system of m linear equations in n unknowns. Successful reception of information does not depend on receiving specific packet content, but rather on receiving a sufficient number of independently encoded packets. We now summarize some of the related efforts that have employed network coding for storing sensor data. Erasure coding reconstructs k measurements from any k out of n storage nodes. A centralized solution would gather all k data packets, use an erasure code to generate n (n ≥ k) encoded packets (with the same size + small overhead for identification), and would send one encoded packet to each storing node. If the erasure code is good, we can reconstruct the packets from any k encoded storage nodes and the MDS erasure code is an example of such a code [11]. Reed-solomon code is a type of erasure code used in distributed storage and redundant disk arrays. It uses a centralized solution and provides deterministic guarantees for decoding. Fountain codes are useful for distributed storage, where the nodes leave and join continuously (e.g. in a sensor environment where sensor nodes wakeup and sleep). LT and LDPC codes are examples of fountain codes. Fountain codes have faster encoding and decoding times compared to erasure codes. [12] uses fountain codes to address the problem of providing increased persistence and fault tolerance, so that historical data may be reliably retrieved from the sensors even after a subset of them have failed. Each source creates the data and disseminates the data to the storage nodes independently. When all source blocks are disseminated, each storage node generates an encoded block by XORing a subset of source blocks it has received and then stores the encoded blocks. Growth codes [13] is a variant of LT codes that uses a distributed encoding scheme to maximize the amount of information recovered by a sink at any given time, even when only a small number of codewords are received. It is targeted at disaster prone environments. The technique is based on growing codes over time and a well-designed code grows at a rate, such that the size of the codeword received by the sink is that which is most likely to be successfully decoded. The key differences between our work and the above related work are as follows. Our focus is on combining power management with storage and on improving information availability not only in the presence of node failures, but also

to address unavailability resulting from a need to conserve energy, which is important in the context of sensor networks. Our schemes are implemented in the context of a data-centric storage network, where we take advantage of the spatial and temporal correlations among the sensor data to spend some additional effort in storing data more compactly, which helps in improving the retrieval of data related to an event and allows better utilization of the resource-constrained network. While most of the results presented in the related work are based on simulations, we have implemented and evaluated our coding schemes on sensor devices within a testbed. This has helped us in gaining a more realistic view of the challenges involved in combining power management and information availability. III. N ETWORK C ODING S CHEMES IN RESTORE As explained in Section I-A, in RESTORE, the manager of a storage zone for a particular event receives data from the other zones that have detected that event. The manager then distributes this data among the members of its zone for storage, taking into account the fact that the zone members periodically sleep and wakeup following a randomized schedule. We enhance this basic storage scheme by using linear network coding to improve information availability, because some of the storage nodes may be sleeping or may have failed at the time a collector is in the proximity to retrieve the stored information. This involves first encoding the data before storage and then decoding the data upon retrieval. In our work, we assume that the decoding is done by the mobile collector or some other powerful entity outside the sensor network. Thus, there are three different entities involved in our schemes: the manager of a storage zone (henceforth, called storage manager), the members of the storage zone, and the mobile collector. Although the manager of a zone is also a member of its zone, its functionality is different from that of the other zone members. Hence, in the remainder of our discussion, zone members refer to the non-manager members of a zone. All of the computation in encoding and decoding are field operations on a finite field. In the rest of the paper, we assume a field size of 28 . The problem of linear network code design is to select what linear combinations each node of the network performs. One possibility is to use deterministic algorithms which decide what linear combinations each node must use. Another alternative is for each node in the network to select uniformly at random the coefficients over a field in an independent and decentralized manner. Basic randomized coding does not require coordination among the nodes in order to select the code coefficients. In this section, we present two different network coding schemes for RESTORE. In the first scheme, the encoding for all data related to the same event is done centrally by the manager of the zone that is storing that event. The manager chooses the random coefficients and performs the linear combinations. The second scheme uses a decentralized algorithm where the encoding is done by the zone members of a storage zone. The zone members choose the random coefficients in an independent and decentralized

manner. We evaluate the effectiveness and tradeoffs involved in both schemes and analyze the impact of different parameters, like the duty cycle, the degree of encoding, and the number of nodes in a zone (henceforth, called the zone size) on the retrieval probability. Prior to explaining the algorithms, we first explain the notations we use in our explanation. We group the set of packets that a storage manager receives from one or more zones during a given time interval into a generation. Thus, a generation consists of observations corresponding to an event that are either temporally or spatially correlated. In our schemes, the encoding is done on a generation of packets. Let n denote the number of data packets in a generation and let N be the number of nodes in a zone. We use boldface to denote a vector or matrix and normal fonts to denote scalars. We denote the original data packets as P1 , P2 , . . . , Pn , where each packet Pi is a vector whose length is determined by the packet size and field size. For example, with a field size of 28 , each byte in the packet is an element of Pi and is denoted as pi,j . For simplicity, we assume that all of the data packets have the same length, i.e., k bytes. Then the data packet Pi = (pi,1 , pi,2 , . . . , pi,k ). A. Algorithm 1: Centralized Encoding in a Zone In centralized encoding, the manager of each storage zone encodes the event-related data that it receives and then distributes the encoded data to its zone members for storage. We must emphasize that there is no single global entity that performs the encoding for the entire storage network - instead, there is a central entity within each data-centric storage zone that performs the encoding for that event. Algorithm 1 presents the steps involved in the centralized encoding scheme. We now explain this algorithm. 1) Storage Manager: Encode and Transmit: The storage manager first starts by generating a M × n(M ≥ n) coefficient matrix, A. Each row i of this matrix consists of a randomly generated vector ai , called coefficient vector, where ai = (ai,1 , ai,2 , ai,3 , . . . , ai,n ). When the storage manager receives the data packets belonging to a generation, namely, P1 , P2 , . . . Pn , it performs a linear combination of the data vector (P1 , P2 , . . . , Pn ) and the coefficient matrix A to yield an encoded vector Y = (Y1 , . . . , YM ) of length M (M ≥ n), as follows : ⎡ ⎢ ⎢ ⎢ ⎣

Y1 Y2 .. .

Y = A × [P1 , . . . , Pn ]T ⎤ ⎡ ⎤⎡ a1,1 . . . a1,n p1,1 . . . p1,k ⎥ ⎢ a2,1 . . . a2,n ⎥ ⎢ p2,1 . . . p2,k ⎥ ⎢ ⎥⎢ ⎥=⎢ ⎥⎢ .. .. ⎦ ⎣ ⎦⎣ . . aM,1 . . . aM,n

YM Yi =

n  j=1

⎤ ⎥ ⎥ ⎥ ⎦

pn,1 . . . pn,k

ai,j Pj , 1 ≤ i ≤ M

(1)

The storage manager then creates a new packet Pi (of length (n + k)), with coefficient vector ai (of length n) forming the header and encoded vector Yi (of length k) forming

Fig. 2.

Centralized encoding: Encoded packet P 2 .

the data portion of the packet Pi , as shown in Figure 2. Now the storage manager has M newly generated packets, P1 , P2 , . . . , PM , which it can then distribute to its zone members. We use M to denote the degree of encoding. In RESTORE, the zone members may be sleeping when the data packets arrive at the zone manager. Hence, the manager buffers the encoded packets until it receives a signal from a zone member indicating that it is awake and then unicasts a subset of the M encoded packets to the member that just woke up. Since the manager distributes the encoded packets approximately uniformly among the N zone members, each member that wakes up is assigned M N packets for storage, depending on their wakeup schedules. Algorithm 1 : Centralized Encoding Algorithm 1: Encoding at the storage manager: 2: Choose an M (M ≥ N ) such that M is an integer; N 3: Generate an M × n matrix A of random coefficients A = {ai,j }, 1 ≤ i ≤ M, 1 ≤ j ≤ n; 4: if (all the data packets Pj , 1 ≤ j ≤ n of a generation have arrived) then 5: Compute Yi = n j=1 ai,j Pj , 1 ≤ i ≤ M 6: Create a new packet Pi with the coefficient vector ai as the header and the encoded vector Yi as the data (1 ≤ i ≤ M ); 7: end if 8: Let E = {P1 , . . . , PM } be the set of encoded packets; 9: if (an “I AM AWAKE” signal from a zone member mi , 1 ≤ i ≤ N , arrives) then 10: Select M packets from the set E and send them to node mi ; N 11: Remove the packets sent to node mi from the set E; 12: end if

2) Zone Member: Store Data: Each zone member sleeps for a duration ts and wakes up for a duration tw , where, ts ≥ tw . Although the duty cycle of each zone member is the same, the sleep schedules are randomized, so that the nodes wake up at different times. This allows the data to be fairly uniformly distributed among the zone members. The storage manager needs to be aware of the members that are awake, in order to store data. Two possible approaches can be used for this. In the proactive approach, a node that wakes up, sends a message to its manager to inform that it is awake. In the reactive approach, the manager regularly polls for members that are awake when it has data to store, and the zone members that receive the message, send an acknowledgment to the manager. In the case in which data has to be stored frequently, the reactive approach consumes more energy. Hence, we have adopted a proactive approach. When the manager receives an “I AM AWAKE” message from a zone member, it responds if it has encoded data to send to that member. The member then stores the encoded data and then goes back to sleep after tw seconds have elapsed.

3) Collector: Collect and Decode: When a mobile data collector visits a zone and queries for the data, the storage nodes in the zone that are available at the time of the visit transmit their encoded data to the collector and replenish their storage buffers. When the collector collects at least n encoded packets, it extracts the n headers to form an n × n matrix H and the data sections to form an n × k matrix D. The rows of H consist of n out of the M rows of the original coefficient matrix, A, while D consists of n out of the M encoded vectors of Y. Since the coefficients are randomly generated by the manager, there is a high probability that the matrix H is invertible and the decoder recovers the original data packets by applying Gaussian Elimination as follows: [P1 , P2 , . . . , Pn ]T = H−1 D B. Algorithm 2: Decentralized Encoding in a Zone We now present the second algorithm where the encoding is performed in a decentralized manner within a zone. The centralized scheme has two main sources of overheads. First, there is the computational overhead of performing the matrix multiplication for every generation of packets. Second, the zone members need to send “I AM AWAKE” messages to their manager each time they wake up and this results in communication overheads. To alleviate both of these overheads, in the decentralized scheme, the packets are encoded by the individual zone members, which serve as the storage nodes. The storage manager broadcasts the data for storage, as and when it receives new data. Any zone member that is awake and receives the data, encodes and stores the data. Unlike the centralized scheme, there is no handshake between the member node and manager to inform the manager that the node is awake. While this helps in reducing the energy consumed in the exchange of messages during the handshake, on account of clock skews in an actual implementation, there may be a small probability that no storage nodes are awake when the manager disseminates some of the data packets. As a result, unlike the centralized scheme, which provides deterministic guarantees, the decentralized scheme provides probabilistic guarantees for data retrieval and we compare their performance in Section IV. We now explain the processing involved at the manager and among the members of a storage zone, as well as at the collector. Like the first algorithm, the decentralized scheme also assumes a generation consisting of n packets Pi (1 ≤ i ≤ n), where each packet, Pi = (pi1 , pi2 , . . . , pik ), is of length k. 1) Storage Manager: Encapsulate and broadcast: Upon the arrival of packet Pi belonging to a generation, the manager prepends a bit field header of length n, as shown in Figure 3. Bit i in the header of packet Pi is set to 1, while all the other bits are set to zero, and this is used by the zone members to identify the packets within a generation. Prepending a header of length n to packet Pi of length k results in a new packet P i of length (n + k), which the storage manager broadcasts to its zone members.

Fig. 3.

Decentralized encoding: Example of encapsulation of packet P2 .

2) Zone Member: Encode and store: The zone members are responsible for encoding and storing the packets they receive from their storage manager. Algorithm 2 presents the encoding process at the zone members in the decentralized scheme. The encoded packet generated by zone member m (1 ≤ m ≤ N ) is denoted as Y(m) and is of length (n + k). The vector Y(m) is initialized to 0 at the beginning of a generation. In the centralized algorithm, the storage manager encoded all the packets of a generation together before distributing them. However, in the decentralized case, since the zone members have different sleep schedules, they may each receive only a subset of the packets in a generation. Hence, they linearly encode the packets on the fly. When the node m is awake and receives a packet P j that is broadcast by its storage manager, (m) it generates a random scalar coefficient αj , multiplies it with  the vector P j , and incrementally updates the encoded packet Y(m) by performing the following linear combination: (m)

Y(m) := Y(m) + αj

P j

Thus, each member of the storage zone stores only one encoded packet per generation, which is the linear combination of a random subset of packets broadcast by its zone manager. Since the zone members have different sleep schedules, although they have the same duty cycle, the subset of packets they each encode may be different and the random coefficients (α) that each node generates for the linear combination are also different. Algorithm 2 : Decentralized Encoding Algorithm 1: Encoding at the zone member: 2: Initialize Y(m) = 0 at the start of a generation; 3: if (an encapsulated data packet Pj , 1 ≤ j ≤ n of a generation arrives from storage manager) then (m) 4: Generate a random scalar coefficient αj ; 5: Perform the following linear combination (m)

Y(m) := Y(m) + αj

P j

6: Store Y (m) ; 7: end if

3) Collector: Collect and Decode: The decoding process in the decentralized algorithm is similar to that used by the centralized algorithm. The mobile collector randomly collects the stored packets from r(n ≤ r ≤ N ) zone members that are awake during its visit. Since each header is of length n, the header sections of the r packets together form an n×r matrix. From the above explanation, it should be clear that the header matrix consists of the coefficients (α) generated independently by the r nodes during the linear combination. The data sections of the r packets form an r × k matrix. To recover the original

data (P1 , P2 , . . . , Pn ), the collector needs only n packets. So if r > n, the collector selects n out of the r packets, in such a way that the resultant n × n header matrix H is non-singular. The corresponding data matrix (with dimensions n × k) is denoted as D. As in the case of the centralized algorithm, Gaussian Elimination is then applied by inverting the matrix H, and multiplying that with the data matrix D to yield: [P1 , P2 , . . . , Pn ]T = H−1 D IV. P ERFORMANCE A NALYSIS We have implemented the RESTORE data-centric architecture and the two network coding schemes that we have proposed in TinyOS. In this section, we present the results of our experimental evaluation of the coding schemes on a testbed of Micaz motes. We first define the experimental parameters we used for our evaluation. Generation size: The number of packets, n, in a generation. Zone size: The number of members in a zone. Since a zone member is also a storage node, the zone size refers to the number of storage nodes in a zone. Duty cycle: The percentage of time a storage node is awake. If tw is the duration for which a storage node is awake and ts is the duration for which it is asleep during a cycle, then the duty cycle is measured as tw tw +ts  100%. Degree of encoding: The number of encoded packets M derived after performing the linear combination in Algorithm 1 on a generation of packets. This is only relevant to the centralized encoding algorithm. Retrieval time: The duration of time the collector waits at a zone to retrieve the encoded packets. Note that the packets retrieved may not always result in a successful decoding. In all of our experiments, we used a generation size of 5. Our measure of information availability is the decoding probability, which we measured as follows. For each data point, the collector visited the zone 100 times. During each visit, it waited for a certain duration of time (given by the retrieval time) and collected a certain number of packets comprising a single generation. If the collector was able to successfully decode the generation of packets, then we incremented the number of successes, S. The number of successful decodes (S), divided by the total number of collector visits (V ), which in our case was 100, gives the decoding probability for each experiment. We present experimental results that show the impact of the degree of encoding, the duty cycle, and the zone size on the decoding probability in Figure 4 and provide a comparative evaluation of the centralized and decentralized encoding schemes. All of the results in Figure 4 are plotted at 95% confidence intervals. A. Impact of Degree of Encoding Figure 4(a) shows how the decoding probability varies with the retrieval time for degree of encoding (M ) values of 10

1

0.9 0.8 0.7 0.6 0.5 0.4 0.3

degree of encoding (M) = 10 degree of encoding (M) = 15

0.2 1

2

3 4 5 6 7 8 Retrieval Time (seconds)

(a) Centralized encoding: zone size = 5, duty cycle = 20%.

1

0.9 0.8 0.7 0.6 0.5 0.4 0.3

duty cycle=10% duty cycle=20% duty cycle=40%

0.2 0.1 9

10

Decoding Probability

1.1

1

Decoding Probability

Decoding Probability

1.1

1

2

3 4 5 6 7 8 Retrieval Time (seconds)

0.6 duty cycle=10% duty cycle=20% duty cycle=40%

0.4 0.2 0

9

10

(b) Centralized encoding: zone size = 5, degree of encoding = 10. Fig. 4.

0.8

4

6

8

10 12 Zone Size

14

16

(c) Decentralized encoding.

Experimental evaluation on a testbed of Micaz motes

and 15, using the centralized encoding scheme. For this set of experiments, the zone size (N ) was 5 and duty cycle of each zone member was 20% (wakeup time = 2 seconds, sleep time = 8 seconds in each cycle). Algorithm 1 distributes M N encoded packets per generation to each zone member that wakes up. So for M = 10 and M = 15, each zone member that wakes up receives 2 and 3 encoded packets, respectively. A higher value of M uses more storage space, because each zone member needs to store more packets. A higher value of M also requires the manager to transmit more encoded packets per zone member, resulting in higher communication overhead and hence, higher energy consumption. However, in exchange for the higher storage and communication overheads, using a higher degree of encoding improves the decoding probability, as shown in Figure 4(a). The reason is that when M is higher, the collector is able to collect more packets from a single node that is awake. Since successful decoding depends on collecting a certain number of packets k ≥ n, the collector therefore needs to wait for a fewer number of nodes to wake up when M is higher. As a result, for the same duty cycle, when M is higher, the collector has a better decoding probability for the same retrieval time. Moreover, when M is higher, the collector is able to achieve the maximum decoding probability of 1 within a shorter retrieval time. For example, it takes 7 seconds to achieve 100% decoding when M = 15, whereas it takes about 10 seconds to achieve the same when M = 10. When we increase M to a higher value, so that M N = 5, which is the generation size, it is equivalent to full replication. While in this case, the decoder can effectively collect all the packets from a single node, such a scheme results in even higher storage and communication costs per node. Thus, the degree of encoding represents a tradeoff between the storage and communication overheads on one side and the information availability on the other side. Our results show that for a given zone size and duty cycle, an appropriate value of M can be chosen to achieve the desired information availability, without incurring the high cost of full replication. B. Impact of Duty Cycle Figure 4(b) shows how the decoding probability varies with the retrieval time for duty cycle values of 10%, 20%, and 40%, using the centralized encoding scheme. For this set of experiments, the zone size (N ) was 5 and the degree

of encoding (M ) was 10. Figure 4(c) shows the decoding probability for different duty cycles using the decentralized scheme. While a higher duty cycle consumes more energy per node, the figures show that it helps in improving the decoding probability. A higher duty cycle results in a higher probability that a node is awake at the time of retrieval and that in turn, helps the collector in retrieving the required number of packets for decoding within a shorter period of time. For example, in Figure 4(b), the retrieval time of the collector in order to achieve the maximum decoding probability of 1 is 7 seconds at a 40% duty cycle and 10 seconds at a 20% duty cycle. However, a higher duty cycle also means that nodes are awake more often. As a result, in a high density deployment, when multiple nodes within a neighborhood respond to the collector, collisions may occur. From our experiments, we found that the MAC layer of TinyOS does not handle these collisions well. So we had to deal with these collisions at the middleware layer by requiring the zone members to use a checksum when transmitting their packets to the collector. If a collision occurred and the packets were corrupted, the checksum verification would fail and the collector discarded such packets. This resulted in a marginal decrease in the decoding probabilities. Although this reduction is not a reflection of our coding schemes and we expect the MAC layer to handle such collisions, for ensuring accuracy, we measured the decoding probabilities in a practical setting by taking these collisions into account and the plots in Figure 4 depict the measurements we obtained. By comparing Figure 4(b) and Figure 4(c), we also see that the decoding probability in the centralized scheme is higher than in the decentralized case for the same duty cycle. The reason is that the centralized scheme tries to achieve uniform distribution of packets by providing almost deterministic guarantees that each zone member will store a portion of the encoded packets. On the other hand, in the decentralized scheme, the probability that a node stores an encoded packet depends on the node being awake at the time the manager broadcasts the packets. While a higher duty cycle improves this probability and thereby increases the decoding probability, the probabilistic nature of the decentralized scheme causes the decoding probability to be lower than in the centralized scheme. In summary, the duty cycle represents a tradeoff between the energy consumption and the information availability in a zone. Our results show that for a given zone size, we can

tune the duty cycle to an appropriate value for the centralized and decentralized schemes and achieve the desired information availability, without requiring the zone members to operate at 100% duty cycle. C. Impact of Zone Size Figure 4(c) shows the decoding probability as we varied the zone size from 5 to 15 for the decentralized scheme. Comparing this to Figure 4(b), we see that the decentralized scheme needs a larger zone size for a given duty cycle to deliver the same decoding probability. For example, when the duty cycle is 40%, the decentralized scheme needs about 15 nodes to achieve the maximum decoding probability of 1, compared to 5 nodes in the centralized scheme. The reason is that in the centralized scheme, a storage node may store multiple encoded packets, as dictated by the degree of encoding. In contrast, in the decentralized scheme, according to Algorithm 2, each node linearly combines multiple packets of a generation that it receives from its manager and stores them as a single packet. So, in order to collect the minimum number of packets for decoding, the collector needs to wait for more nodes to become available. From Figure 4(c), we also see that for a given duty cycle, the decentralized scheme benefits from a larger zone size. Alternatively, for a given zone size, we can achieve a higher decoding probability with a higher duty cycle. This is on account of the probabilistic nature of the decentralized scheme, as mentioned in the previous subsection. Even if a zone member is awake when the collector is in the proximity, the probability that the member has some data to send to the collector depends on the probability that the member was awake when the manager disseminated the packets in the zone. Furthermore, each zone member in the decentralized scheme chooses the random coefficients for the linear combination independently and successful decoding depends on the probability that these independently chosen coefficients result in a non-singular matrix. A larger zone size is beneficial in both of these cases, and hence, improves the decoding probability in the decentralized scheme. D. Discussion We now summarize the results of our experiments. Our results show that the degree of encoding, duty cycle, and zone size are key parameters that can be tuned to achieve the desired information availability using the network coding schemes we have proposed. In the centralized scheme, the computational costs of performing the linear combinations are incurred by a single node within a zone, compared to the decentralized scheme where this cost is shared by the zone members. The handshake between the manager and the members results in extra messages being transmitted in the centralized scheme, and as a result, the communication overhead scales linearly with the zone size N . In contrast, the decentralized scheme has minimal communication overheads. In the centralized scheme, multiple encoded packets may be stored at a node for each generation, thereby consuming more storage resources per

node. However, the decentralized scheme consumes minimal storage resources per node, because each node stores only one aggregated packet per generation. To summarize, in exchange for the higher computation, communication, and storage overhead per node, the centralized scheme provides almost deterministic retrieval guarantees and a higher information availability with fewer storage nodes within a zone. On the other hand, in the decentralized scheme, the costs are shared by all the zone members and the individual overheads are low. The decentralized scheme provides probabilistic retrieval guarantees and compared to the centralized scheme, requires a larger number of storage nodes to deliver the same degree of information availability (measured as the decoding probability within a certain retrieval time). Both of these schemes have their own merits under different scenarios. Based on the above results, we conclude that in a low density network with few, but powerful individual sensor nodes, the centralized encoding scheme would be the preferred approach for achieving good information availability. However, in a low cost, high density network, where individual sensor nodes are less powerful, but are available in large numbers to provide sufficient redundancy, the decentralized scheme would be favorable, because it is capable of taking better advantage of the high redundancy to deliver good information availability. V. C ONCLUSIONS The confluence of delay-tolerant applications, that provide the motivation, along with advances in energy-efficient storage technologies that provide the capability, is likely to make the storage-centric paradigm increasingly appealing as a basis for providing new forms of sensor-based data and event services. As some recent studies have shown, flash technologies have evolved in recent years and storage using some of the newer flash technologies consumes significantly lower energy than communicating through the radio [14]. Information availability is important in such a scenario, because the storage nodes may be unavailable due to failure and power management policies. Our approach for improving information availability in such storage-centric sensor networks is based on network coding, which allows us to take advantage of the fact that information availability depends on collecting a certain number of packets from any subset of nodes, instead of depending on specific nodes to become available. Compared to a full replication scheme, the centralized and decentralized network coding schemes that we have proposed require fewer resources per node. By implementing the coding schemes in TinyOS and evaluating them on a testbed of Micaz motes, we have shown that the schemes are practical to implement. We have experimentally evaluated our schemes to understand the tradeoffs involved in combining power management with information availability in a storage-centric sensor network. Our results show that the key parameters that affect information availability in both the centralized and decentralized schemes are the duty cycle, zone size, and degree of encoding. The centralized scheme provides better information availability with fewer nodes, in exchange for consuming more resources per node.

So it is more suitable for a low density sensor network with few, but powerful nodes. The decentralized scheme incurs fewer overhead per node, but needs more number of nodes to deliver good information availability. Hence, it is suitable in a low-cost, high density network, because it can take better advantage of the inherent redundancy of a network consisting of individual nodes that have fewer resources in order to improve information availability. R EFERENCES [1] T. He et al., “VigilNet: An Integrated Sensor Network System for Energy-Efficient Surveillance,” ACM Transactions on Sensor Networks, February 2006. [2] A. Mainwaring, J. Polastre, R. Szewczyk, D. E. Culler, and J. Anderson, “Wireless Sensor Networks for Habitat Monitoring,” in Proc. of the ACM Workshop on Sensor Networks and Application (WSNA), September 2002. [3] S. Ratnasamy, B. Karp, S. Shenker, D. Estrin, R. Govindan, L. Yin, and F. Yu, “Data-Centric Storage in Sensornets with GHT, A Geographic Hash Table,” in Proc. of Mobile Networks and Applications (MONET), March 2003. [4] P. Desnoyers, D. Ganesan, and P. Shenoy, “TSAR: A Two Tier Storage Architecture Using Interval Skip Graphs,” in Proc. of Sensys, 2005. [5] D. Ganesan, B. Greenstein, D. Perelyubskiy, D. Estrin, R. Govindan, and J. Heidemann, “An Evaluation of Multi-Resolution Storage for Sensor Networks,” in Proc. of SenSys, November 2003.

[6] L. Luo, C. Huang, T. Abdelzaher, and J. A. Stankovic, “EnviroStore: A Cooperative Storage System for Disconnected Operation in Sensor Networks,” in Proc. of International Conference on Computer Communications, May 2007. [7] S. Krishnamurthy, T. He, G. Zhou, J. A. Stankovic, and S. H. Son, “RESTORE: A Real-Time Event Correlation and Storage Service for Sensor Networks,” in Proc. of International Conference on Network Sensing Systems, June 2006. [8] P. Levis, N. Lee, M. Welsh, and D. Culler, “TOSSIM: Accurate and Scalable Simulation of Entire TinyOS Applications,” in In Proc. of the First ACM Conference on Embedded Networked Sensor Systems (SenSys), November 2003. [9] J. Haupt, W. Bajwa, M. Rabbat, and R. Nowak, “Compressed Sensing for Networked Data,” IEEE Signal Processing Magazine, December 2007. [10] C. Fragouli, J. L. Boudec, and J. Widmer, “Network Coding: An Instant Primer,” ACM SIGCOMM Computer Communication Review, vol. 36, pp. 63 – 68, January 2006. [11] A. Dimakis, P. B. Godfrey, M. J. Wainwright, and K. Ramchandran, “Network Coding for Distributed Storage Systems,” in Proc. of INFOCOM, May 2007. [12] Y. Lin, B. Liang, and B. Li, “Data Persistence in Large-Scale Sensor Networks with Decentralized Fountain Codes,” in Proc. of INFOCOM, May 2007. [13] A. Kamra, V. Misra, J. Feldman, and D. Rubenstein, “Growth Codes: Maximizing Sensor Network Data Persistence,” in Proc. of SIGCOMM, September 2006. [14] G. Mathur, P. Desnoyers, D. Ganesan, and P. Shenoy, “Ultra Low Power Data Storage for Sensor Networks,” in Proc. of IPSN, 2006.

Improving Information Availability in Storage-Centric ...

opportunistically by mobile collectors in the proximity. We have developed a .... comparing the performance of our data-centric storage scheme in RESTORE with a ... above, which deals with improving information availability of correlated data ...

221KB Sizes 1 Downloads 215 Views

Recommend Documents

Improving Information Availability in Storage-Centric ...
Wireless sensor networks are primarily used to sense and gather information ... network coding allows us to store data by taking advantage of the spatial and ...

Improving Availability with Recursive Microreboots - Dependable ...
Conceding that failure-free software will continue eluding us for years to come, ...... can be achieved using virtual machines such as VMware, isolation kernels ...

Discovery Reliability Availability Discovery Reliability Availability
have identified information and have classified ... Often material appears on a Web site one day, ... the Internet as a source of material for papers, credibility.

Discovery Reliability Availability Discovery Reliability Availability
advent of the Web, large and small groups like societies ... Today, with millions of Web sites, and .... PsycEXTRA and how you can start your free trial, visit the.

Availability in Globally Distributed Storage Systems - Usenix
layered systems for user goals such as data availability relies on accurate ... live operation at Google and describe how our analysis influenced the design of our ..... statistical behavior of correlated failures to understand data availability. In

Availability in Globally Distributed Storage Systems - USENIX
Abstract. Highly available cloud storage is often implemented with complex, multi-tiered distributed systems built on top of clusters of commodity servers and disk drives. So- phisticated management, load balancing and recovery techniques are needed

Thinking about Availability in Large Service Infrastructures
2 A simple case study. In parts ... dimensionality of a precise definition, (2) the need to reduce ..... https://www.cms.gov/newsroom/mediareleasedatabase/press-.

The Influence of Information Availability on Travel ...
example) at some discrete locations. She knows ... at the different discrete locations, except if she physically go to the place where ..... e-shopping intensity [9].

Availability in Globally Distributed Storage Systems - Usenix
(Sections 5 and 6). • Formulate a Markov ..... Figure 6: Effect of the window size on the fraction of individual .... burst score, plus half the probability that the two scores are equal ... for recovery operations versus serving client read/write

Availability in Globally Distributed Storage Systems - USENIX
*Now at Dept. of Industrial Engineering and Operations Research. Columbia University the datacenter environment. We present models we derived from ...

Improving Energy Performance in Canada
Sustainable Development Technology Canada –. NextGen ..... through education and outreach, as well as through .... energy science and technology by conducting ...... 171 026. Oct. 11. 175 552. Nov. 11. 167 188. Dec. 11. 166 106. Jan. 12.

Improving Energy Performance in Canada
and Canadian businesses money by decreasing their energy bills ... oee.nrcan.gc.ca/publications/statistics/trends11/pdf/trends.pdf. economy in ...... 2015–2016.

SMC Availability List.pdf
For example, “1201” would mean that the apartment or house is. occupied until the 1st of .... SMC Availability List.pdf. SMC Availability List.pdf. Open. Extract.

Return on Information: Improving your ROI with Google ... - Services
shares, wikis, and a range of business knowledge, Customer Relationship Management. (CRM), Enterprise Resource ... find business information comes at a high cost – one that can be measured in lost opportunity and on the .... IT have to try and repl

Using Syntactic Information for Improving why-Question ...
Improving the QA system. – Better retrieval technique (search engine). – Better ranking system. • Syntactic knowledge between question and answer helps?

A Risk Management Approach to Improving Information ...
Risk Management (TIRM) for managing risk that arises from poor quality ... transformed into information and saved as decontextualized data with the ... process extended with the Ten Step approach gives managers a powerful tool for a risk- .... The fi

Improving Data Warehouse and Business Information ...
and the wisdom imparted in the corpus of this text is profound. One develops the impression that Larry English is not just a very smart and well experienced man.

Thinking about Availability in Large Service ... - Research at Google
tributed consensus and state-machine replication (see § 5). We have observed ... Service, which builds an abstract model of the network's cur- rent state (link ...

Thesis - Spanish- High Availability Tolerances Correction in a Data ...
Thesis - Spanish- High Availability Tolerances Correction in a Data Backbones Support Infrastructure OOI.pdf. Thesis - Spanish- High Availability Tolerances ...

Improving Arabic Information Retrieval System using n-gram method ...
Improving Arabic Information Retrieval System using n-gram method.pdf. Improving Arabic Information Retrieval System using n-gram method.pdf. Open. Extract.