[tahoe-dev] [tahoe-lafs] #1212: Repairing fails if less than 7 servers available
tahoe-lafs
trac at tahoe-lafs.org
Wed Sep 29 20:12:23 UTC 2010
#1212: Repairing fails if less than 7 servers available
------------------------------+---------------------------------------------
Reporter: eurekafag | Owner:
Type: defect | Status: closed
Priority: major | Milestone: soon
Component: code-network | Version: 1.8.0
Resolution: fixed | Keywords: reviewed
Launchpad Bug: |
------------------------------+---------------------------------------------
Comment (by kevan):
If we do that, we lose the property that the repairer will always try to
place whichever shares are missing onto *some* storage servers, even if
the end result isn't optimally distributed.
If I have a cron job that does a deep repair of my rootcap, and the
rootcap or some other important dircap or filecap only has {{{k}}} or
{{{k+1}}} shares available, and it is stored on a grid with a lot of
churn, I probably care more about the fact that there are more than a few
shares of that cap around than I do about where they are, and I certainly
wouldn't want the repairer to not even bother generating new ones because
it couldn't satisfy my distribution criteria; IOW, I'm better off with
more shares that are poorly distributed than I am with no repair action
(I'm oversimplifying, and it depends on the specific situation, but having
more shares will make things better in some situations and generally won't
make things worse, AFAICT without doing the math).
On the other hand, I think that the repairer should definitely tell the
user whether the file is distributed correctly or not, and an exception
message certainly does that. I can also make my node's repair go for broke
with share regeneration by changing the value of happiness in
{{{tahoe.cfg}}} to be 0. This is a chore, but it means that people who
really want the repairer to try to place new shares regardless of where
can still get that behavior.
Maybe the best approach is to fix #614 with this in mind. The repairer
could regenerate and try to place all of the missing shares, as it does
now, but also tell the caller (in the post repair results) whether the
repair was ultimately successful or not based on how the shares are
distributed, using the client's configured happiness value for that check.
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1212#comment:12>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-dev
mailing list