Alter mutable files to use servers of happiness #1057
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
6 Participants
Notifications
Due Date
No due date set.
Reference: tahoe-lafs/trac-2024-07-25#1057
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
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?
Servers of happiness is more robust (or can be made more robust) than the upload health metric currently used by mutable files. Tahoe-LAFS would also be more consistent and easier to understand if it used only one upload health metric. We should look into altering mutable files to use servers of happiness as their upload health metric.
If you like this ticket (and I hope you do, because we need somebody to step up and totally revamp mutable files to be faster, more robust, easier to understand, less buggy, etc.!) then you might like these tickets: #540 (inappropriate "uncoordinated write error" after handling a server failure), #546 (mutable-file surprise shares raise inappropriate UCWE), #893 (UCWE when mapupdate gives up too early, then server errors require replacement servers), #232 (Peer selection doesn't rebalance shares on overwrite of mutable file.), #270 (test for interrupted writes of mutable files), #394 (mutable publish: add timing charts to measure RTT), #474 (uncaught exception in mutable-retrieve: UCW between mapupdate and retrieve), #547 (mapupdate(MODE_WRITE) triggers on a false boundary), #548 (mutable publish sends queries to servers that have already been asked), #549 (MODE_WRITE mapupdate: maybe increase epsilon to handle large batches of new servers better), #667 (KeyError in mutable download), #846 (allmydata.test.test_system.SystemTest.test_mutable sometimes hangs on a slow machine), #1004 (how to fix 'multiple versions are recoverable'?), #1042 (KeyError exception seen in log when doing a mutable publish on the pubgrid).
Putting this in Milestone 1.9.0. Kevan: do you think you can work on this for 1.9.0?
Sure. I should be able to have it done by then (assuming that its due date is still October 31st).
Kevan: please set the Milestone to 'soon' if you don't have a patch for 1.9.0.
This is the link to my branch: https://github.com/markberger/tahoe-lafs/tree/1057-mutable-servers-of-happiness
Mutable files now must pass the servers-of-happiness test before they are uploaded. Basic tests have been added to test this new behavior.
Here is the pull request: https://github.com/tahoe-lafs/tahoe-lafs/pull/55
Daira says that this branch has the same problem that Servers-of-Happiness had for static (immutable) files — #1382. That problem is that the upload strategy is not designed to achieve optimal happiness (it isn't the Upload Strategy Of Happiness), but then after the upload strategy has done its work, then the Servers-of-Happiness criterion is applied to it, which may cause that upload to be marked a failure.
Having looked at the branch, it looks plausible to me that it does have that problem.
Daira and I think this ticket should be moved out of Milestone 1.11 and into Milestone 1.12.
To prevent that issue we would need to fix #2060.
Milestone renamed
renaming milestone
Moving open issues out of closed milestones.
Ticket retargeted after milestone closed