[tahoe-dev] [tahoe-lafs] #778: "shares of happiness" is the wrong measure; "servers of happiness" is better
tahoe-lafs
trac at allmydata.org
Mon Aug 17 07:33:20 PDT 2009
#778: "shares of happiness" is the wrong measure; "servers of happiness" is
better
--------------------------------+-------------------------------------------
Reporter: zooko | Owner:
Type: defect | Status: new
Priority: critical | Milestone: undecided
Component: code-peerselection | Version: 1.4.1
Keywords: reliability | Launchpad_bug:
--------------------------------+-------------------------------------------
Comment(by zooko):
"""
servers_of_happiness means two things:
1. If a file upload is successful, then shares for that file have gone to
at least servers_of_happiness distinct storage nodes.
2. If a file upload is successful, then the uploaded file can be
recovered if no more than servers_of_happiness storage nodes uploaded to
in the initial upload remain functioning.
"""
Hm.... I see that I have not understood what I want all this time.
I guess what I've really been wanting all this time is "The Erasue Coding
Property" as applied by counting servers instead of by counting shares.
That is:
{{{k=3, m=10}}} means that after this upload there will ideally be 10
distinct servers, the survival of any 3 of which guarantee my file. The
addition of servers of happness {{{h=7}}} means that if, after the upload,
there are 7 distinct servers, the survival of any 3 of which guarantee my
file, I will consider the upload a success, but if there are only 6 I will
consider the upload a failure.
So I think what I really want is to make {{{servers_of_happiness}}} mean
"The number of servers in set X" and {{{k}}} mean "Any subset of X of size
k is sufficient to recover the file".
I guess that means {{{servers_of_happiness}}} is "The minimum number of
servers (such that any {{{k}}} of those servers is sufficient) to consider
this upload a success.". Is that eight?
Kevan: I really like your method of working in which you thoroughly
document it first, then write the tests, then the code (then someone
reviews it for you). It reminds me of Brian's method of working.
Trel: It makes sense to me that {{{k <= h <= m}}}, but at the moment I'm
not sure my intuitions about these things are right at all!
--
Ticket URL: <http://allmydata.org/trac/tahoe/ticket/778#comment:22>
tahoe-lafs <http://allmydata.org>
secure decentralized file storage grid
More information about the tahoe-dev
mailing list