[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