<div class="gmail_quote">On Wed, Feb 2, 2011 at 4:26 PM, Chris Palmer <span dir="ltr"><<a href="mailto:chris@noncombatant.org">chris@noncombatant.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">Shawn Willden writes:<br>
<br>
> The same situation applies, though. For any given expansion factor E,<br>
> assuming moderately high server reliability, you'll get better net<br>
> reliability with N/E-of-N than with 1-of-E. As E goes up, the level of<br>
> server reliability required for break-even declines, and the advantage of<br>
> erasure coding increases.<br>
<br>
</div>I don't understand what you mean. Can you please fill in an example with<br>
real numbers?<br></blockquote><div><br></div><div>Sure. Suppose that you're willing to accept an expansion factor of 5. Suppose also that your servers are 90% reliable over some time interval.</div><div><br></div><div>
So with a 1-of-5 scheme, you don't lose your data unless all five servers fail within the interval, which happens with a probability of 0.1**5 = 1e-5. But a 2-of-10 scheme only loses data if nine servers fail within the interval, which happens with probability 9e-9. Going for a more extreme example, a 10-of-50 scheme requires the failure of 41 servers, which happens with probability 1e-33 -- which is so ludicrously small that the only way your data will be lost is if there's some sort of event that causes widespread failures.</div>
<div><br></div><div>Of course, 1-of-10 is better than 2-of-10 and 1-of-50 is better than 10-of-50, but for a given expansion factor erasure coding across a large number of servers is always better, and significantly so.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Isn't my scheme simply the most reliable and most expensive form of erasure<br>
coding?</blockquote><div><br></div><div>Reliability and cost are independent and largely opposing parameters, so I don't really know how you can evaluate that.</div><div><br></div><div>Certainly, for a given level of reliability your scheme is the most expensive form of erasure coding, and for a given cost it's the least reliable* :-)</div>
</div><br>-- <br>Shawn<br>
<div><br></div><div>* Ignoring failures avoided by simplicity.</div>