1 #LyX 1.6.2 created this file. For more info see http://www.lyx.org/
6 \use_default_options true
15 \font_typewriter default
16 \font_default_family default
24 \paperfontsize default
33 \paperorientation portrait
36 \paragraph_separation indent
38 \quotes_language english
41 \paperpagestyle default
42 \tracking_changes false
51 Tahoe Distributed Filesharing System Loss Model
70 \begin_layout Abstract
71 The abstract goes here
78 \begin_layout Standard
79 The allmydata Tahoe distributed file system uses Reed-Solomon erasure coding
81 \begin_inset Formula $N$
84 shares which are delivered to randomly-selected peers in a distributed
86 The file can later be reassembled from any
87 \begin_inset Formula $k\leq N$
90 of the shares, if they are available.
93 \begin_layout Standard
94 Over time shares are lost for a variety of reasons.
95 Storage servers may crash, be destroyed or simply be removed from the network.
96 To mitigate such losses, Tahoe network clients employ a repair agent which
97 scans the peers once per time period
98 \begin_inset Formula $A$
101 and determines how many of the shares remain.
103 \begin_inset Formula $L$
107 \begin_inset Formula $k\leq L\leq N$
110 ) shares remain, then the repairer reconstructs the file shares and redistribute
111 s the missing ones, bringing the availability back up to full.
114 \begin_layout Standard
115 The question we're trying to answer is "What is the probability that we'll
116 be able to reassemble the file at some later time
117 \begin_inset Formula $T$
121 We'd also like to be able to determine what values we should choose for
123 \begin_inset Formula $k$
127 \begin_inset Formula $N$
131 \begin_inset Formula $A$
135 \begin_inset Formula $L$
139 \begin_inset Formula $Pr[loss]\leq r$
142 for some threshold probability
143 \begin_inset Formula $r$
147 This is an optimization problem because although we could obtain very low
149 \begin_inset Formula $Pr[loss]$
152 by selecting conservative parameters, these choices have costs.
153 The peer storage and bandwidth consumed by the share distribution process
155 \begin_inset Formula $\nicefrac{N}{k}$
158 times the size of the original file, so we would like to minimize
159 \begin_inset Formula $\nicefrac{N}{k}$
163 \begin_inset Formula $Pr[loss]\leq r$
167 Likewise, a frequent and aggressive repair process keeps the number of
168 shares available close to
169 \begin_inset Formula $N,$
172 but at a cost in bandwidth and processing time as the repair agent downloads
174 \begin_inset Formula $k$
177 shares, reconstructs the file and uploads new shares to replace those that
181 \begin_layout Section
185 \begin_layout Standard
186 The probability that the file becomes unrecoverable is dependent upon the
187 probability that the peers to whom we send shares are able to return those
189 Shares that are corrupted are detected and discarded, so there is no need
190 to distinguish between corruption and loss.
193 \begin_layout Standard
194 Many factors affect share availability.
195 Availability can be temporarily interrupted by peer unavailability due
196 to network outages, power failures or administrative shutdown, among other
198 Availability can be permanently lost due to failure or corruption of storage
199 media, catastrophic damage to the peer system, administrative error, withdrawal
200 from the network, malicious corruption, etc.
203 \begin_layout Standard
204 The existence of intermittent failure modes motivates the introduction of
205 a distinction between
214 Reliability is the probability that a share is retrievable assuming intermitten
215 t failures can be waited out, so reliability considers only permanent failures.
216 Availability considers all failures, and is focused on the probability
217 of retrieval within some defined time frame.
220 \begin_layout Standard
221 Another consideration is that some failures affect multiple shares.
222 If multiple shares of a file are stored on a single hard drive, for example,
223 failure of that drive may lose them all.
224 Catastrophic damage to a data center may destroy all shares on all peers
228 \begin_layout Standard
229 While the types of failures that may occur are quite consistent across peers,
230 their probabilities differ dramatically.
231 A professionally-administered server with redundant storage, power and
232 Internet located in a carefully-monitored data center with automatic fire
233 suppression systems is much less likely to become either temporarily or
234 permanently unavailable than the typical virus and malware-ridden home
235 computer on a single cable modem connection.
236 A variety of situations in between exist as well, such as the case of the
237 author's home file server, which is administered by an IT professional
238 and uses RAID level 6 redundant storage, but runs on old, cobbled-together
239 equipment, and has a consumer-grade Internet connection.
242 \begin_layout Standard
243 To begin with, let's use a simple definition of reliability:
246 \begin_layout Definition
252 \begin_inset Formula $p_{i}$
256 \begin_inset Formula $s_{i}$
259 will survive to (be retrievable at) time
260 \begin_inset Formula $T=A$
263 , ignoring intermittent failures.
264 That is, the probability that the share will be retrievable at the end
265 of the current repair cycle, and therefore usable by the repairer to regenerate
269 \begin_layout Standard
271 \begin_inset Formula $p_{i}$
274 is clearly dependent on
275 \begin_inset Formula $A$
279 Short repair cycles offer less time for shares to
280 \begin_inset Quotes eld
284 \begin_inset Quotes erd
290 \begin_layout Subsection
294 \begin_layout Standard
295 Since peer reliability is the basis for any computations we may do on share
296 and file reliability, we must have a way to estimate it.
297 Reliability modeling of hardware, software and human performance are each
298 complex topics, the subject of much ongoing research.
299 In particular, the reliability of one of the key components of any peer
300 from our perspective -- the hard drive where file shares are stored --
301 is the subject of much current debate.
304 \begin_layout Standard
305 A common assumption about hardware failure is that it follows the
306 \begin_inset Quotes eld
310 \begin_inset Quotes erd
313 , with frequent failures during the first few months, a constant failure
314 rate for a few years and then a rising failure rate as the hardware wears
316 This curve is often flattened by burn-in stress testing, and by periodic
317 replacement that assures that in-service components never reach
318 \begin_inset Quotes eld
322 \begin_inset Quotes erd
328 \begin_layout Standard
329 In any case, we're generally going to ignore all of that complexity and
330 focus on the bottom of the bathtub, assuming constant failure rates.
331 This is a particularly reasonable assumption as long as we're focused on
332 failures during a particular, relatively short interval
333 \begin_inset Formula $A$
337 Towards the end of this paper, as we examine failures over many repair
338 intervals, the assumption becomes more tenuous, and we note some of the
342 \begin_layout Subsubsection
346 \begin_layout Standard
347 Even assuming constant failure rates, however, it will be rare that the
349 \begin_inset Formula $A$
352 coincides with the available failure rate data, particularly since we want
354 \begin_inset Formula $A$
357 as a tunable parameter.
358 It's necessary to be able adapt failure rates baselined against any given
359 duration to the selected value of
360 \begin_inset Formula $A$
366 \begin_layout Standard
367 Another issue is that failure rates of hardware, etc., are necessarily continuous
368 in nature, while the per-interval failure/survival rates that are of interest
369 for file reliability calculations are discrete -- a peer either survives
370 or fails during the interval.
371 The continuous nature of failure rates means that the common and obvious
372 methods for estimating failure rates result in values that follow continuous,
373 not discrete distributions.
374 The difference is minor for small failure probabilities, and converges
375 to zero as the number of intervals goes to infinity, but is important enough
376 in some cases to be worth correcting for.
379 \begin_layout Standard
380 Continuous failure rates are described in terms of mean time to failure,
381 and under the assumption that failure rates are constant, are exponentially
383 Under these assumptions, the probability that a machine fails at time
384 \begin_inset Formula $t$
388 \begin_inset Formula \[
389 f\left(t\right)=\lambda e^{-\lambda t}\]
394 \begin_inset Formula $\lambda$
397 represents the per unit-time failure rate.
398 The probability that a machine fails at or before time
399 \begin_inset Formula $A$
403 \begin_inset Formula \begin{align}
404 F\left(t\right) & =\int_{0}^{A}f\left(x\right)dx\nonumber \\
405 & =\int_{0}^{A}\lambda e^{-\lambda x}dx\nonumber \\
406 & =1-e^{-\lambda A}\label{eq:failure-time}\end{align}
413 \begin_layout Standard
415 \begin_inset Formula $A$
419 \begin_inset Formula $\lambda$
423 \begin_inset CommandInset ref
425 reference "eq:failure-time"
429 must be expressed in consistent time units.
430 If they're different, unit conversions should be applied in the normal
432 For example, if the estimate for
433 \begin_inset Formula $\lambda$
436 is 750 failures per million hours, and
437 \begin_inset Formula $A$
440 is one month, then either
441 \begin_inset Formula $A$
444 should be represented as
445 \begin_inset Formula $30\cdot24/1000000=.00072$
449 \begin_inset Formula $\lambda$
452 should be converted to failures per month.
453 Or both may be converted to hours.
456 \begin_layout Subsubsection
457 Acquiring Peer Reliability Estimates
460 \begin_layout Standard
464 \begin_layout Subsection
466 \begin_inset CommandInset label
468 name "sub:Fixed-Reliability"
475 \begin_layout Standard
476 In the simplest case, the peers holding the file shares all have the same
478 \begin_inset Formula $p$
481 , and are all independent from one another.
483 \begin_inset Formula $K$
486 be a random variable that represents the number of shares that survive
488 \begin_inset Formula $A$
492 Each share's survival can be viewed as an independent Bernoulli trial with
493 a success probability of
494 \begin_inset Formula $p$
498 \begin_inset Formula $K$
501 follows the binomial distribution with parameters
502 \begin_inset Formula $N$
506 \begin_inset Formula $p$
511 \begin_inset Formula $K\sim B(N,p)$
517 \begin_layout Theorem
518 Binomial Distribution Theorem
521 \begin_layout Theorem
523 \begin_inset Formula $n$
526 independent Bernoulli trials
530 \begin_layout Plain Layout
531 A Bernoulli trial is simply a test of some sort that results in one of two
532 outcomes, one of which is designated success and the other failure.
533 The classic example of a Bernoulli trial is a coin toss.
538 that succeed with probability
539 \begin_inset Formula $p$
543 \begin_inset Formula $K$
546 be a random variable that represents the number,
547 \begin_inset Formula $m$
551 \begin_inset Formula $0\le m\le n$
556 \begin_inset Formula $K$
559 follows the Binomial Distribution with parameters n and p, denoted
560 \begin_inset Formula $K\sim B(n,p)$
564 The probability mass function (PMF) of K is a function that gives the probabili
566 \begin_inset Formula $K$
569 takes a particular value
570 \begin_inset Formula $m$
573 (the probability that there are exactly
574 \begin_inset Formula $m$
577 successful trials, and therefore
578 \begin_inset Formula $n-m$
583 \begin_inset Formula \begin{equation}
584 Pr[K=m]=f(m;n,p)=\binom{n}{m}p^{m}(1-p)^{n-m}\label{eq:binomial-pmf}\end{equation}
592 Consider the specific case of exactly
593 \begin_inset Formula $m$
596 successes followed by
597 \begin_inset Formula $n-m$
600 failures, because each success has probability
601 \begin_inset Formula $p$
604 , each failure has probability
605 \begin_inset Formula $1-p$
608 , and the trials are independent, the probability of this exact case occurring
610 \begin_inset Formula $p^{m}\left(1-p\right)^{\left(n-m\right)}$
613 , the product of the probabilities of the outcome of each trial.
617 Now consider any reordering of these
618 \begin_inset Formula $m$
622 \begin_inset Formula $n$
626 Any such reordering occurs with the same probability
627 \begin_inset Formula $p^{m}\left(1-p\right)^{\left(n-m\right)}$
630 , but with the terms of the product reordered.
631 Since multiplication is commutative, each such reordering has the same
633 There are n-choose-m such orderings, and each ordering is an independent
634 event, meaning we can sum the probabilities of the individual orderings,
635 so the probability that any ordering of
636 \begin_inset Formula $m$
640 \begin_inset Formula $n-m$
643 failures occurs is given by
644 \begin_inset Formula \[
645 \binom{n}{m}p^{m}\left(1-p\right)^{\left(n-m\right)}\]
649 which is the right-hand-side of equation
650 \begin_inset CommandInset ref
652 reference "eq:binomial-pmf"
659 \begin_layout Standard
660 A file survives if at least
661 \begin_inset Formula $k$
665 \begin_inset Formula $N$
670 \begin_inset CommandInset ref
672 reference "eq:binomial-pmf"
676 gives the probability that exactly
677 \begin_inset Formula $i$
680 shares survive, for any
681 \begin_inset Formula $1\leq i\leq n$
684 , so the probability that fewer than
685 \begin_inset Formula $k$
688 survive is the sum of the probabilities that
689 \begin_inset Formula $0,1,2,\ldots,k-1$
696 \begin_layout Standard
697 \begin_inset Formula \begin{equation}
698 Pr[file\, lost]=\sum_{i=0}^{k-1}\binom{n}{i}p^{i}(1-p)^{n-i}\label{eq:simple-failure}\end{equation}
705 \begin_layout Subsection
706 Independent Reliability
707 \begin_inset CommandInset label
709 name "sub:Independent-Reliability"
716 \begin_layout Standard
718 \begin_inset CommandInset ref
720 reference "eq:simple-failure"
724 assumes that all shares have the same probability of survival, but as explained
725 above, this is not necessarily true.
726 A more accurate model allows each share
727 \begin_inset Formula $s_{i}$
730 an independent probability of survival
731 \begin_inset Formula $p_{i}$
735 Each share's survival can still be treated as an independent Bernoulli
736 trial, but with success probability
737 \begin_inset Formula $p_{i}$
741 Under this assumption,
742 \begin_inset Formula $K$
745 follows a generalized binomial distribution with parameters
746 \begin_inset Formula $N$
750 \begin_inset Formula $p_{1},p_{2},\dots,p_{N}$
756 \begin_layout Standard
757 The PMF for this generalized
758 \begin_inset Formula $K$
761 does not have a simple closed-form representation.
762 However, the PMFs for random variables representing individual share survival
765 \begin_inset Formula $K_{i}$
768 be a random variable such that:
771 \begin_layout Standard
772 \begin_inset Formula \[
774 1 & \textnormal{if }s_{i}\textnormal{ survives}\\
775 0 & \textnormal{if }s_{i}\textnormal{ fails}\end{cases}\]
782 \begin_layout Standard
784 \begin_inset Formula $K_{i}$
788 \begin_inset Formula \[
789 Pr[K_{i}=j]=\begin{cases}
791 1-p_{i} & j=0\end{cases}\]
795 which can also be expressed as
796 \begin_inset Formula \[
797 Pr[K_{i}=j]=f\left(j\right)=\left(1-p_{i}\right)\left(1-j\right)+p_{i}\left(j\right)\]
804 \begin_layout Standard
806 \begin_inset Formula $K_{i}$
809 represents the count of shares
810 \begin_inset Formula $s_{i}$
813 that survives (either 0 or 1), if we add up all of the individual survivor
814 counts, we get the group survivor count.
816 \begin_inset Formula \[
817 \sum_{i=1}^{N}K_{i}=K\]
821 Effectively, we have separated
822 \begin_inset Formula $K$
825 into the series of Bernoulli trials that make it up.
828 \begin_layout Theorem
829 Discrete Convolution Theorem
832 \begin_layout Theorem
834 \begin_inset Formula $X$
838 \begin_inset Formula $Y$
841 be discrete random variables with probability mass functions given by
842 \begin_inset Formula $Pr\left[X=x\right]=f(x)$
846 \begin_inset Formula $Pr\left[Y=y\right]=g(y).$
850 \begin_inset Formula $Z$
853 be the discrete random random variable obtained by summing
854 \begin_inset Formula $X$
858 \begin_inset Formula $Y$
864 \begin_layout Theorem
865 The probability mass function of
866 \begin_inset Formula $Z$
870 \begin_inset Formula \[
871 Pr[Z=z]=h(z)=\left(f\star g\right)(z)\]
876 \begin_inset Formula $\star$
879 denotes the discrete convolution operation:
880 \begin_inset Formula \[
881 \left(f\star g\right)\left(n\right)=\sum_{m=-\infty}^{\infty}f\left(m\right)g\left(m-n\right)\]
889 The proof is beyond the scope of this paper.
892 \begin_layout Standard
893 If we denote the PMF of
894 \begin_inset Formula $K$
898 \begin_inset Formula $f$
902 \begin_inset Formula $K_{i}$
906 \begin_inset Formula $g_{i}$
910 \begin_inset Formula $Pr[K=x]=f(x)$
914 \begin_inset Formula $Pr[K_{i}=x]=g_{i}(x)$
918 \begin_inset Formula $K=\sum_{i=1}^{N}K_{i}$
921 , according to the discrete convolution theorem
922 \begin_inset Formula $f=g_{1}\star g_{2}\star g_{3}\star\ldots\star g_{N}$
926 Since convolution is associative, this can also be written as
927 \begin_inset Formula $ $
931 \begin_inset Formula \begin{equation}
932 f=(\ldots((g_{1}\star g_{2})\star g_{3})\star\ldots)\star g_{N})\label{eq:convolution}\end{equation}
937 \begin_inset Formula $f$
940 can be computed as a sequence of convolution operations on the simple PMFs
941 of the random variables
942 \begin_inset Formula $K_{i}$
947 \begin_inset Formula $N$
951 \begin_inset CommandInset ref
953 reference "eq:convolution"
957 turns out to be a more effective means of computing the PMF of
958 \begin_inset Formula $K$
961 than the binomial theorem.
962 even in the case of shares with identical survival probability.
963 The reason it's better is because the calculation of
964 \begin_inset Formula $\binom{n}{m}$
968 \begin_inset CommandInset ref
970 reference "eq:binomial-pmf"
974 produces very large values that overflow unless arbitrary precision numeric
975 representations are used.
978 \begin_layout Standard
979 Note also that it is not necessary to have very simple PMFs like those of
981 \begin_inset Formula $K_{i}$
985 Any share or set of shares that has a known PMF can be combined with any
986 other set with a known PMF by convolution, as long as the two share sets
988 The reverse holds as well; given a group with an empirically-derived PMF,
989 in it's theoretically possible to solve for an individual PMF, and thereby
991 \begin_inset Formula $p_{i}$
994 even when per-share data is unavailable.
997 \begin_layout Subsection
998 Multiple Failure Modes
999 \begin_inset CommandInset label
1001 name "sub:Multiple-Failure-Modes"
1008 \begin_layout Standard
1009 In modeling share survival probabilities, it's useful to be able to analyze
1010 separately each of the various failure modes.
1011 For example, if reliable statistics for disk failure can be obtained, then
1012 a probability mass function for that form of failure can be generated.
1013 Similarly, statistics on other hardware failures, administrative errors,
1014 network losses, etc., can all be estimated independently.
1015 If those estimates can then be combined into a single PMF for a share,
1016 then we can use it to predict failures for that share.
1019 \begin_layout Standard
1020 Combining independent failure modes for a single share is straightforward.
1022 \begin_inset Formula $p_{i,j}$
1025 is the probability of survival of the
1026 \begin_inset Formula $j$
1029 th failure mode of share
1030 \begin_inset Formula $i$
1034 \begin_inset Formula $1\leq j\leq m$
1038 \begin_inset Formula \[
1039 Pr[K_{i}=k]=f_{i}(k)=\begin{cases}
1040 \prod_{j=1}^{m}p_{i,j} & k=1\\
1041 1-\prod_{j=1}^{m}p_{i,j} & k=0\end{cases}\]
1045 is the survival PMF.
1048 \begin_layout Subsection
1049 Multi-share failures
1050 \begin_inset CommandInset label
1052 name "sub:Multi-share-failures"
1059 \begin_layout Standard
1060 If there are failure modes that affect multiple computers, we can also construct
1061 the PMF that predicts their survival.
1062 The key observation is that the PMF has non-zero probabilities only for
1064 \begin_inset Formula $0$
1068 \begin_inset Formula $n$
1072 \begin_inset Formula $n$
1075 is the number of shares in the set.
1077 \begin_inset Formula $p$
1080 is the probability of survival, the PMF of
1081 \begin_inset Formula $K$
1084 , a random variable representing the number of survivors is
1085 \begin_inset Formula \[
1086 Pr[K=k]=f(k)=\begin{cases}
1089 1-p & k=0\end{cases}\]
1096 \begin_layout Standard
1097 Group failures due to multiple independent causes can be combined as in
1099 \begin_inset CommandInset ref
1101 reference "sub:Multiple-Failure-Modes"
1105 , as long as they apply to the whole group.
1108 \begin_layout Example
1109 Putting the Pieces Together
1112 \begin_layout Standard
1114 \begin_inset CommandInset ref
1116 reference "sub:Fixed-Reliability"
1121 \begin_inset CommandInset ref
1123 reference "sub:Multi-share-failures"
1127 provide ways of calculating the survival probability mass functions for
1128 a variety of share failure structures and modes.
1129 As an example of how these pieces can be used, consider a network with
1130 the following peers:
1133 \begin_layout Itemize
1134 Four servers located in a data center in Nebraska.
1135 The machines have multiply-redundant Internet connections, with a failure
1136 probability of 0.0001.
1137 They store their shares on RAID arrays with failure probability of 0.0002.
1138 The administrative staff makes data-destroying errors with probability
1142 \begin_layout Itemize
1143 Four servers located in a data center on the island of Hawaii.
1144 These servers have identical failure probabilities as the servers in Nebraska,
1145 except that the data center is near the edge of the crater on Mount Kilauea
1146 (nobody said examples had to be realistic).
1147 There is a 0.04 chance that the volcano will erupt and bury the data center
1148 in molten lava, destroying it entirely.
1151 \begin_layout Itemize
1152 Four PCs located in random homes, connected to the Internet via assorted
1153 cable modems and DSL.
1154 Their network connections fail with probability 0.009.
1155 Their disks fail with probability 0.001.
1156 Their users destroy data with probability 0.05.
1159 \begin_layout Standard
1160 If one share is placed on each of these 12 computers, what's the probability
1161 mass function of share survival? To more compactly describe PMFs, we'll
1162 denote them as probability vectors of the form
1163 \begin_inset Formula $\left[\alpha_{o},\alpha_{1},\alpha_{2},\ldots\alpha_{n}\right]$
1167 \begin_inset Formula $\alpha_{i}$
1170 is the probability that exactly
1171 \begin_inset Formula $i$
1177 \begin_layout Standard
1178 The servers in the two data centers have individual failure probabilities
1179 of RAID failure (.0002) and administrative error (.003) giving an individual
1180 survival probability of
1181 \begin_inset Formula \[
1182 (1-.0002)\cdot(1-.003)=.9998\cdot.997=.9968\]
1189 \begin_layout Standard
1191 \begin_inset Formula $p=.9968,n=4$
1195 \begin_inset CommandInset ref
1197 reference "eq:binomial-pmf"
1201 gives the survival PMF
1202 \begin_inset Formula \[
1203 \left[1.049\times10^{-10},1.307\times10^{-7},6.105\times10^{-5},0.01271,0.9872\right]\]
1207 which applies to each group of four servers.
1208 However, each data center also has a .0001 chance of data connection loss,
1209 which affects all four servers at once, and Hawaii has the additional .04
1210 probability of severe lava burn.
1211 If the network fails at a location, all the machines go offline together.
1212 The probability that 0 machines survive is the probability that they all
1213 fail for individual reasons (
1214 \begin_inset Formula $1.049\cdot10^{-10}$
1217 ) plus the probability they all fail because of a network outage (
1218 \begin_inset Formula $.0001$
1221 ) less the probability they fail for both reasons:
1222 \begin_inset Formula \[
1223 \left(1.049\times10^{-10}\right)+\left(0.0001\right)-\left[\left(1.049\times10^{-10}\right)\cdot\left(0.0001\right)\right]\approxeq0.0001\]
1230 \begin_layout Standard
1232 \begin_inset Formula $i=0$
1235 element of the combined PMF.
1236 The combined probability of survival of
1237 \begin_inset Formula $0<i\leq4$
1240 servers is simpler: it's the probability they survive individual failure,
1241 from the individual failure PMF above, times the probability they survive
1242 network failure (.9999).
1243 So the combined survival PMF, which we'll denote as
1244 \begin_inset Formula $n(i)$
1247 of the Nebraska servers is
1248 \begin_inset Formula \[
1249 n(i)=\left[0.0001,1.306\times10^{-7},6.104\times10^{-5},0.01268,0.9872\right]\]
1253 which has the interesting property that complete failure is 1000 times more
1254 likely than survival of one server.
1255 This is because the probability of a network outage is so much greater
1260 \begin_layout Plain Layout
1261 Of course, the failures need not be truly simultaneous, they just have happen
1262 in the same interval between repair runs.
1267 independent failure of three servers.
1270 \begin_layout Standard
1271 We apply the same process for the Hawaii servers, but with group survival
1273 \begin_inset Formula $(1-.0001)(1-.04)=.9799$
1276 gives the survival PMF
1277 \begin_inset Formula \[
1278 h(i)=\left[0.0201,1.280\times10^{-7},5.982\times10^{-5},0.01242,0.9674\right]\]
1285 \begin_layout Standard
1286 Applying the convolution operator to
1287 \begin_inset Formula $n(i)$
1291 \begin_inset Formula $h(i)$
1294 , the survival PMF of all eight servers is:
1297 \begin_layout Standard
1298 \begin_inset Formula \[
1299 \left(n\star h\right)\left(i\right)=\begin{cases}
1300 2.010\times10^{-6} & i=0\\
1301 2.639\times10^{-9} & i=1\\
1302 1.233\times10^{-6} & i=2\\
1303 2.560\times10^{-4} & i=3\\
1305 1.769\times10^{-6} & i=5\\
1306 2.756\times10^{-4} & i=6\\
1308 0.9559 & i=8\end{cases}\]
1315 \begin_layout Standard
1316 \begin_inset VSpace defskip
1322 \begin_layout Standard
1323 Note that losing four shares (
1324 \begin_inset Formula $i=4$
1327 ) is 10,000 times more likely than losing three (
1328 \begin_inset Formula $i=5$
1332 This is because both data centers have a whole-center failure mode, and
1333 the Hawaii center's lava burn probability is so high.
1334 Similarly, the probability of losing all of them is 1000 times higher than
1335 the probability of losing all but one.
1338 \begin_layout Standard
1339 For the home PCs, their individual probability of survival is
1340 \begin_inset Formula \[
1341 (1-.009)\cdot(1-.001)\cdot(1-.05)=.991\cdot.999\cdot.95=.9405\]
1348 \begin_layout Standard
1349 We can then apply equation
1350 \begin_inset CommandInset ref
1352 reference "eq:binomial-pmf"
1357 \begin_inset Formula $N=4$
1361 \begin_inset Formula $p=.9405$
1365 \begin_inset Formula $g(i),0\leq i\leq4$
1368 for the PCs and finally compute
1369 \begin_inset Formula $f(i)=\left(g\star\left(n\star h\right)\right)\left(i\right)$
1372 , the PMF of the whole share set.
1373 Summing the values of
1374 \begin_inset Formula $f(i)$
1378 \begin_inset Formula $0\leq i\leq k-1$
1381 gives the probability that less than
1382 \begin_inset Formula $k$
1385 shares survive and the file is unrecoverable.
1386 For this example, those sums are shown in table
1387 \begin_inset CommandInset ref
1389 reference "tab:Example-PMF"
1394 \begin_inset Float table
1399 \begin_layout Plain Layout
1401 \begin_inset Tabular
1402 <lyxtabular version="3" rows="13" columns="4">
1404 <column alignment="center" valignment="top" width="0">
1405 <column alignment="center" valignment="top" width="0">
1406 <column alignment="center" valignment="top" width="0">
1407 <column alignment="center" valignment="top" width="0">
1409 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1412 \begin_layout Plain Layout
1413 \begin_inset Formula $k$
1421 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1424 \begin_layout Plain Layout
1425 \begin_inset Formula $Pr[K=k]$
1433 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1436 \begin_layout Plain Layout
1437 \begin_inset Formula $Pr[file\, loss]=Pr[K<k]$
1445 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1448 \begin_layout Plain Layout
1449 \begin_inset Formula $N/k$
1459 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1462 \begin_layout Plain Layout
1468 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1471 \begin_layout Plain Layout
1472 \begin_inset Formula $1.60\times10^{-9}$
1480 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1483 \begin_layout Plain Layout
1484 \begin_inset Formula $2.53\times10^{-11}$
1492 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1495 \begin_layout Plain Layout
1503 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1506 \begin_layout Plain Layout
1512 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1515 \begin_layout Plain Layout
1516 \begin_inset Formula $3.80\times10^{-8}$
1524 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1527 \begin_layout Plain Layout
1528 \begin_inset Formula $1.63\times10^{-9}$
1536 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1539 \begin_layout Plain Layout
1547 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1550 \begin_layout Plain Layout
1556 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1559 \begin_layout Plain Layout
1560 \begin_inset Formula $4.04\times10^{-7}$
1568 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1571 \begin_layout Plain Layout
1572 \begin_inset Formula $3.70\times10^{-8}$
1580 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1583 \begin_layout Plain Layout
1591 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1594 \begin_layout Plain Layout
1600 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1603 \begin_layout Plain Layout
1604 \begin_inset Formula $2.06\times10^{-6}$
1612 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1615 \begin_layout Plain Layout
1616 \begin_inset Formula $4.44\times10^{-7}$
1624 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1627 \begin_layout Plain Layout
1635 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1638 \begin_layout Plain Layout
1644 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1647 \begin_layout Plain Layout
1648 \begin_inset Formula $2.10\times10^{-5}$
1656 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1659 \begin_layout Plain Layout
1660 \begin_inset Formula $2.50\times10^{-6}$
1668 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1671 \begin_layout Plain Layout
1679 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1682 \begin_layout Plain Layout
1688 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1691 \begin_layout Plain Layout
1692 \begin_inset Formula $0.000428$
1700 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1703 \begin_layout Plain Layout
1704 \begin_inset Formula $2.35\times10^{-5}$
1712 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1715 \begin_layout Plain Layout
1723 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1726 \begin_layout Plain Layout
1732 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1735 \begin_layout Plain Layout
1736 \begin_inset Formula $0.00417$
1744 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1747 \begin_layout Plain Layout
1748 \begin_inset Formula $0.000452$
1756 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1759 \begin_layout Plain Layout
1767 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1770 \begin_layout Plain Layout
1776 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1779 \begin_layout Plain Layout
1780 \begin_inset Formula $0.0157$
1788 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1791 \begin_layout Plain Layout
1792 \begin_inset Formula $0.00462$
1800 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1803 \begin_layout Plain Layout
1811 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1814 \begin_layout Plain Layout
1820 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1823 \begin_layout Plain Layout
1824 \begin_inset Formula $0.00127$
1832 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1835 \begin_layout Plain Layout
1836 \begin_inset Formula $0.0203$
1844 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1847 \begin_layout Plain Layout
1855 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1858 \begin_layout Plain Layout
1864 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1867 \begin_layout Plain Layout
1868 \begin_inset Formula $0.0230$
1876 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1879 \begin_layout Plain Layout
1880 \begin_inset Formula $0.0216$
1888 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1891 \begin_layout Plain Layout
1899 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1902 \begin_layout Plain Layout
1908 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1911 \begin_layout Plain Layout
1912 \begin_inset Formula $0.208$
1920 <cell alignment="center" valignment="top" topline="true" leftline="true" usebox="none">
1923 \begin_layout Plain Layout
1924 \begin_inset Formula $0.0446$
1932 <cell alignment="center" valignment="top" topline="true" leftline="true" rightline="true" usebox="none">
1935 \begin_layout Plain Layout
1943 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1946 \begin_layout Plain Layout
1952 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1955 \begin_layout Plain Layout
1956 \begin_inset Formula $0.747$
1964 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" usebox="none">
1967 \begin_layout Plain Layout
1968 \begin_inset Formula $0.253$
1976 <cell alignment="center" valignment="top" topline="true" bottomline="true" leftline="true" rightline="true" usebox="none">
1979 \begin_layout Plain Layout
1993 \begin_layout Plain Layout
1994 \begin_inset Caption
1996 \begin_layout Plain Layout
1998 \begin_inset CommandInset label
2000 name "tab:Example-PMF"
2012 \begin_layout Plain Layout
2021 \begin_layout Standard
2022 The table demonstrates the importance of the selection of
2023 \begin_inset Formula $k$
2026 , and the tradeoff against file size expansion.
2027 Note that the survival of exactly 9 servers is significantly less likely
2028 than the survival of 8 or 10 servers.
2029 This is, again, an artifact of the group failure modes.
2030 Because of this, there is no reason to choose
2031 \begin_inset Formula $k=9$
2035 \begin_inset Formula $k=10$
2039 Normally, reducing the number of shares needed for reassembly improve the
2040 file's chances of survival, but in this case it provides a minuscule gain
2041 in reliability at the cost of a 10% increase in bandwidth and storage consumed.
2044 \begin_layout Subsection
2048 \begin_layout Standard
2049 Before moving on to consider issues other than single-interval file loss,
2050 let's analyze one more possibility, that of
2051 \begin_inset Quotes eld
2055 \begin_inset Quotes erd
2058 file repair via share duplication.
2061 \begin_layout Standard
2062 Initially, files are split using erasure coding, which creates
2063 \begin_inset Formula $N$
2067 \begin_inset Formula $k$
2070 of which can be used to to reconstruct the file.
2071 When shares are lost, proper repair downloads some
2072 \begin_inset Formula $k$
2075 shares, reconstructs the original file and then uses the erasure coding
2076 algorithm to reconstruct the lost shares, then redeploys them to peers
2078 This is a somewhat expensive process.
2081 \begin_layout Standard
2082 A cheaper repair option is simply to direct some peer that has share
2083 \begin_inset Formula $s_{i}$
2086 to send a copy to another peer, thus increasing by one the number of shares
2088 This is not as good as actually replacing the lost share, though.
2089 Suppose that more shares were lost, leaving only
2090 \begin_inset Formula $k$
2094 If two of those shares are identical, because one was duplicated in this
2096 \begin_inset Formula $k-1$
2099 shares truly remain, and the file can no longer be reconstructed.
2102 \begin_layout Standard
2103 However, such cheap repair is not completely pointless; it does increase
2108 \begin_layout Standard
2109 Effectively, share duplication simply increases the probability that
2110 \begin_inset Formula $s_{i}$
2113 will survive, by providing two locations from which to retrieve it.
2114 We can view the two copies of the single share as one, but with a higher
2115 probability of survival than would be provided by either of the two peers.
2117 \begin_inset Formula $p_{1}$
2121 \begin_inset Formula $p_{2}$
2124 are the probabilities that the two peers will survive, respectively, then
2125 \begin_inset Formula \[
2126 Pr[s_{i}\, survives]=p_{1}+p_{2}-p_{1}p_{2}\]
2133 \begin_layout Standard
2134 More generally, if a single share is deployed on
2135 \begin_inset Formula $n$
2138 peers, each with a PMF
2139 \begin_inset Formula $f_{i}(j),0\leq j\leq1,1\leq i\leq n$
2142 , the share survival count is a random variable
2143 \begin_inset Formula $K$
2146 and the probability of share loss is
2147 \begin_inset Formula \[
2148 Pr[K=0]=(f_{1}\star f_{2}\star\ldots\star f_{n})(0)\]
2155 \begin_layout Standard
2156 From that, we can construct a share PMF in the obvious way, which can then
2157 be convolved with the other share PMFs to produce the share set PMF.
2160 \begin_layout Example
2162 \begin_inset Formula $N=10,k=3$
2165 and that all servers have survival probability
2166 \begin_inset Formula $p=.9$
2170 Given a full complement of shares,
2171 \begin_inset Formula $Pr[\textrm{file\, loss}]=3.74\times10^{-7}$
2175 Suppose that four shares are lost, which increases
2176 \begin_inset Formula $Pr[\textrm{file\, loss}]$
2180 \begin_inset Formula $.00127$
2184 \begin_inset Formula $3400$
2188 Rather than doing a proper reconstruction, we could direct four peers still
2189 holding shares to send a copy of their share to new peer, which changes
2190 the composition of the shares from one of six, unique
2191 \begin_inset Quotes eld
2195 \begin_inset Quotes erd
2198 shares, to one of two standard shares, each with survival probability
2199 \begin_inset Formula $.9$
2203 \begin_inset Quotes eld
2207 \begin_inset Quotes erd
2210 shares, each with survival probability
2211 \begin_inset Formula $2p-p^{2}\approxeq.99$
2217 \begin_layout Example
2218 Combining the two single-peer share PMFs with the four double-share PMFs
2219 gives a new file survival probability of
2220 \begin_inset Formula $6.64\times10^{-6}$
2224 Not as good as a full repair, but still quite respectable.
2225 Also, if storage were not a concern, all six shares could be duplicated,
2227 \begin_inset Formula $Pr[file\, loss]=1.48\times10^{-7}$
2230 , which is actually three time better than the nominal case.
2233 \begin_layout Example
2234 The reason such cheap repairs may be attractive in many cases is that distribute
2235 d bandwidth is cheaper than bandwidth through a single peer.
2236 This is particularly true if that single peer has a very slow connection,
2237 which is common for home computers -- especially in the outbound direction.
2240 \begin_layout Section
2241 Long-Term Reliability
2244 \begin_layout Standard
2245 Thus far, we've focused entirely on the probability that a file survives
2247 \begin_inset Formula $A$
2250 between repair times.
2251 The probability that a file survives long-term, though, is also important.
2252 As long as the probability of failure during a repair period is non-zero,
2253 a given file will eventually be lost.
2254 We want to know the probability of surviving for time
2255 \begin_inset Formula $T$
2258 , and how the parameters
2259 \begin_inset Formula $A$
2262 (time between repairs) and
2263 \begin_inset Formula $L$
2266 (allowed share low watermark) affect survival time.
2269 \begin_layout Standard
2270 To model file survival time, let
2271 \begin_inset Formula $T$
2274 be a random variable denoting the time at which a given file becomes unrecovera
2276 \begin_inset Formula $R(t)=Pr[T>t]$
2279 be a function that gives the probability that the file survives to time
2281 \begin_inset Formula $t$
2286 \begin_inset Formula $R(t)$
2289 is the cumulative distribution function of
2290 \begin_inset Formula $T$
2296 \begin_layout Standard
2297 Most survival functions are continuous, but
2298 \begin_inset Formula $R(t)$
2301 is inherently discrete and stochastic.
2302 The time steps are the repair intervals, each of length
2303 \begin_inset Formula $A$
2307 \begin_inset Formula $T$
2310 -values are multiples of
2311 \begin_inset Formula $A$
2315 During each interval, the file's shares degrade according to the probability
2317 \begin_inset Formula $K$
2323 \begin_layout Subsection
2327 \begin_layout Standard
2328 Let's first consider the case of an aggressive repairer.
2329 Every interval, this repairer checks the file for share losses and restores
2331 Thus, at the beginning of each interval, the file always has
2332 \begin_inset Formula $N$
2335 shares, distributed on servers with various individual and group failure
2336 probabilities, which will survive or fail per the output of random variable
2338 \begin_inset Formula $K$
2344 \begin_layout Standard
2345 For any interval, then, the probability that the file will survive is
2346 \begin_inset Formula $f\left(k\right)=Pr[K\geq k]$
2350 Since each interval success or failure is independent, and assuming the
2351 share reliabilities remain constant over time,
2352 \begin_inset Formula \begin{equation}
2353 R\left(t\right)=f(k)^{t}\end{equation}
2360 \begin_layout Standard
2361 This simple survival function makes it simple to select parameters
2362 \begin_inset Formula $N$
2366 \begin_inset Formula $K$
2370 \begin_inset Formula $R(t)\geq r$
2374 \begin_inset Formula $r$
2377 is a user-specified parameter indicating the desired probability of survival
2379 \begin_inset Formula $t$
2383 Specifically, we can solve for
2384 \begin_inset Formula $f\left(k\right)$
2388 \begin_inset Formula $r\leq f\left(k\right)^{t}$
2392 \begin_inset Formula \begin{equation}
2393 f\left(k\right)\geq\sqrt[t]{r}\end{equation}
2400 \begin_layout Standard
2402 \begin_inset Formula $f\left(k\right)$
2405 , to assure the survival of a file to time
2406 \begin_inset Formula $t$
2409 with probability at least
2410 \begin_inset Formula $r$
2414 \begin_inset Formula $k$
2418 \begin_inset Formula $f\left(k\right)\geq\sqrt[t]{r}$
2423 \begin_inset Formula $A$
2427 \begin_inset Formula $r=1-\nicefrac{1}{10^{6}}$
2431 \begin_inset Formula $t=120$
2434 , or 10 years, we calculate
2435 \begin_inset Formula $f\left(k\right)\geq\sqrt[120]{.999999}\approx0.999999992$
2439 Per the PMF of table
2440 \begin_inset CommandInset ref
2442 reference "tab:Example-PMF"
2447 \begin_inset Formula $k=2$
2450 , achieves the goal, at the cost of a six-fold expansion in stored file
2452 If the lesser goal of no more than
2453 \begin_inset Formula $\nicefrac{1}{1000}$
2456 probability of loss is taken, then since
2457 \begin_inset Formula $\sqrt[120]{.9999}=.999992$
2461 \begin_inset Formula $k=5$
2464 achieves the goal with an expansion factor of
2465 \begin_inset Formula $2.4$
2471 \begin_layout Subsection
2475 \begin_layout Standard
2476 The simplicity and predictability of aggressive repair is attractive, but
2477 there is a downside: Repairs cost processing power and bandwidth.
2478 The processing power is proportional to the size of the file, since the
2479 whole file must be reconstructed and then re-processed using the Reed-Solomon
2480 algorithm, while the bandwidth cost is proportional to the number of missing
2481 shares that must be replaced,
2482 \begin_inset Formula $N-K$
2488 \begin_layout Standard
2490 \begin_inset Formula $c\left(s,d,k\right)$
2493 be a cost function that combines the processing cost of regenerating a
2495 \begin_inset Formula $s$
2498 and the bandwidth cost of downloading a file of size
2499 \begin_inset Formula $s$
2503 \begin_inset Formula $d$
2507 \begin_inset Formula $\nicefrac{s}{k}$
2512 \begin_inset Formula $D$
2515 denote the random variable
2516 \begin_inset Formula $N-K$
2519 , which is the number of shares that must be redistributed to bring the
2520 file share set back up to
2521 \begin_inset Formula $N$
2524 after degrading during an interval.
2525 The probability mass function of
2526 \begin_inset Formula $D$
2530 \begin_inset Formula \[
2531 Pr[D=d]=f(d)=\begin{cases}
2532 Pr\left[K=N\right]+Pr[K<k] & d=0\\
2533 Pr\left[K=N-d\right] & 0<d\leq N-k\\
2534 0 & N-k<d\leq N\end{cases}\]
2541 \begin_layout Standard
2542 The expected cost of repairs in a given interval, then, is simply
2543 \begin_inset Formula $c\left(s,E\left[D\right],k\right)$
2546 where E is the expected value function -- in this case:
2547 \begin_inset Formula \begin{align*}
2548 E[D] & =\sum_{d=0}^{N}d\cdot Pr\left[D=d\right]\\
2549 & =0\cdot Pr\left[D=0\right]+\sum_{d=1}^{N-k}\left\{ d\cdot Pr\left[K=N-d\right]\right\} +\sum_{d=N-k+1}^{N}\left\{ d\cdot0\right\} \\
2550 & =\sum_{d=1}^{N-k}d\cdot Pr\left[K=N-d\right]\end{align*}
2557 \begin_layout Standard
2558 Since each interval starts with a full complement of shares, the expected
2559 repair cost for each interval is the same, and the cost for file that survives
2561 \begin_inset Formula $t$
2565 \begin_inset Formula $t\cdot c\left(s,E\left[D\right]\right)$
2569 To calculate the lifetime repair cost, we just take the limit over all
2571 \begin_inset Formula $t\rightarrow\infty$
2574 , discounting each cost by the probability that the file has already failed.
2575 So, the lifetime expected repair cost is
2576 \begin_inset Formula \begin{align*}
2577 \sum_{t=1}^{\infty}R\left(t-1\right)c\left(s,E\left[D\right],k\right) & =c\left(s,E\left[D\right],k\right)\sum_{t=1}^{\infty}R\left(t-1\right)\\
2578 & =c\left(s,E\left[D\right],k\right)\sum_{t=1}^{\infty}f\left(k\right)^{t-1}\\
2579 & =c\left(s,E\left[D\right],k\right)\cdot\frac{1}{1-f\left(k\right)}\\
2580 & =\frac{c\left(s,E\left[D\right],k\right)}{1-f\left(k\right)}\end{align*}
2587 \begin_layout Standard
2588 It is also necessary to discount future cost, since CPU and bandwidth are
2589 both going to get cheaper over time.
2590 To accommodate this, we throw in an addition per-period discount rate
2591 \begin_inset Formula $r$
2595 In accordance with common discount rate usage, the discount multiplier
2597 \begin_inset Formula $t$
2601 \begin_inset Formula $\left(1-r\right)^{t}$
2606 \begin_inset Formula \begin{align*}
2607 \sum_{t=1}^{\infty}\left(1-r\right){}^{t}R\left(t-1\right)c\left(s,E\left[D\right],k\right) & =c\left(s,E\left[D\right],k\right)\sum_{t=1}^{\infty}\left(1-r\right)^{t}f\left(k\right)^{t-1}\\
2608 & =c\left(s,E\left[D\right],k\right)\sum_{t=1}^{\infty}\left(1-r\right)^{t}f\left(k\right)^{t-1}\\
2609 & =c\left(s,E\left[D\right],k\right)\left(1-r\right)\sum_{t=1}^{\infty}\left(1-r\right)^{t-1}f\left(k\right)^{t-1}\\
2610 & =\frac{c\left(s,E\left[D\right],k\right)\left(1-r\right)}{1-\left(1-r\right)f\left(k\right)}\end{align*}
2615 \begin_inset Formula $r=0$
2618 this collapses to the previous result, as one would expect.
2621 \begin_layout Subsection
2622 Non-aggressive Repair
2625 \begin_layout Standard
2629 \begin_layout Section
2630 Time-Sensitive Retrieval
2633 \begin_layout Standard
2634 The above work has almost entirely ignored the distinction between availability
2638 \begin_layout Standard