fix the definition of needs-rebalancing #2105
Labels
No Label
0.2.0
0.3.0
0.4.0
0.5.0
0.5.1
0.6.0
0.6.1
0.7.0
0.8.0
0.9.0
1.0.0
1.1.0
1.10.0
1.10.1
1.10.2
1.10a2
1.11.0
1.12.0
1.12.1
1.13.0
1.14.0
1.15.0
1.15.1
1.2.0
1.3.0
1.4.1
1.5.0
1.6.0
1.6.1
1.7.0
1.7.1
1.7β
1.8.0
1.8.1
1.8.2
1.8.3
1.8β
1.9.0
1.9.0-s3branch
1.9.0a1
1.9.0a2
1.9.0b1
1.9.1
1.9.2
1.9.2a1
LeastAuthority.com automation
blocker
cannot reproduce
cloud-branch
code
code-dirnodes
code-encoding
code-frontend
code-frontend-cli
code-frontend-ftp-sftp
code-frontend-magic-folder
code-frontend-web
code-mutable
code-network
code-nodeadmin
code-peerselection
code-storage
contrib
critical
defect
dev-infrastructure
documentation
duplicate
enhancement
fixed
invalid
major
minor
n/a
normal
operational
packaging
somebody else's problem
supercritical
task
trivial
unknown
was already fixed
website
wontfix
worksforme
No Milestone
No Assignees
2 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#2105
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split from #1784 (also see /tahoe-lafs/trac-2024-07-25/issues/6177#comment:27):
The value of
needs-rebalancing
is computed inconsistently betweenchecker.py
andfilenode.py
. Inchecker.py
it is computed as:In
filenode.py
it is computed aswhere
len(sm)
is equal tocount-shares-good
. I don't understand this latter definition at all, it looks completely wrong. The definition inchecker.py
is more subtly wrong because it credits servers that only have duplicated shares as contributing to existing balance. The correct definition should be something like 'iff the happiness count is less than the number of uniquely-numbered good shares available'.I propose to change
filenode.py
andchecker.py
to be consistent, and to both use the happiness-based definition above."comments and a caveat in webapi.rst indicating that the needs-rebalancing field may be computed incorrectly" were added in b06f8cd8d03a6239/trunk.
I think this ticket is actually about "needs-repair" rather than about "needs-rebalancing". I'm not 100% sure of the definition of "needs-rebalancing", but I think of it as something like "The file doesn't need repair (i.e. its Happiness level is already above the requirement), but it would be better to move some of the shares around to other servers.
Possible reasons that moving shares might be useful even when it doesn't improve Happiness:
Replying to zooko:
From source:docs/frontends/webapi.rst@0bebbe32#debugging-and-testing-features:
Reliability can be improved when the shares-of-happiness count is less than
shares.total
. (In some cases, adding more servers may be necessary for an improvement, but I think that's fine.)We decided to remove
needs-rebalancing
for 1.11.https://github.com/tahoe-lafs/tahoe-lafs/pull/74 implements this ticket (i.e. removes
need-rebalancing
) and #1784.I'll review this patch/pull request.
Review:
Everything seems great except for the use of the somewhat confusing "Happiness Count" expression. Count is fine for something countable like the number of good shares but it seems wrong for this. I think it would be preferable to use something like "Happiness Level", "Happiness Metric" or "Servers-of-Happiness Level".
Reassigning to daira for patch changes.
Zooko convinced me in the Tahoe hack hour to use "Happiness Level" (because it goes well with "happiness threshold").
In /tahoe-lafs/trac-2024-07-25/commit/0ef593947755a8b81edc73d033219724268faf80:
In /tahoe-lafs/trac-2024-07-25/commit/0ef593947755a8b81edc73d033219724268faf80:
In /tahoe-lafs/trac-2024-07-25/commit/0ef593947755a8b81edc73d033219724268faf80:
In /tahoe-lafs/trac-2024-07-25/commit/0ef593947755a8b81edc73d033219724268faf80:
In /tahoe-lafs/trac-2024-07-25/commit/0ef593947755a8b81edc73d033219724268faf80: