]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commit
Fix up the behavior of #778, per reviewers' comments
authorKevan Carstensen <kevan@isnotajoke.com>
Fri, 14 May 2010 00:49:17 +0000 (17:49 -0700)
committerKevan Carstensen <kevan@isnotajoke.com>
Fri, 14 May 2010 00:49:17 +0000 (17:49 -0700)
commite225f573b9c3fb0e37eae05ecfbeada921eb4bba
treec83d2d1f32af26cfacc127b118e82a21e474bf0d
parent9bc71d3da0b136ac9e57e0a983e6f39f0fcc96ee
Fix up the behavior of #778, per reviewers' comments

  - Make some important utility functions clearer and more thoroughly
    documented.
  - Assert in upload.servers_of_happiness that the buckets attributes
    of PeerTrackers passed to it are mutually disjoint.
  - Get rid of some silly non-Pythonisms that I didn't see when I first
    wrote these patches.
  - Make sure that should_add_server returns true when queried about a
    shnum that it doesn't know about yet.
  - Change Tahoe2PeerSelector.preexisting_shares to map a shareid to a set
    of peerids, alter dependencies to deal with that.
  - Remove upload.should_add_servers, because it is no longer necessary
  - Move upload.shares_of_happiness and upload.shares_by_server to a utility
    file.
  - Change some points in Tahoe2PeerSelector.
  - Compute servers_of_happiness using a bipartite matching algorithm that
    we know is optimal instead of an ad-hoc greedy algorithm that isn't.
  - Change servers_of_happiness to just take a sharemap as an argument,
    change its callers to merge existing_shares and used_peers before
    calling it.
  - Change an error message in the encoder to be more appropriate for
    servers of happiness.
  - Clarify the wording of an error message in immutable/upload.py
  - Refactor a happiness failure message to happinessutil.py, and make
    immutable/upload.py and immutable/encode.py use it.
  - Move the word "only" as far to the right as possible in failure
    messages.
  - Use a better definition of progress during peer selection.
  - Do read-only peer share detection queries in parallel, not sequentially.
  - Clean up logging semantics; print the query statistics whenever an
    upload is unsuccessful, not just in one case.
src/allmydata/immutable/encode.py
src/allmydata/immutable/layout.py
src/allmydata/immutable/upload.py
src/allmydata/interfaces.py
src/allmydata/util/happinessutil.py [new file with mode: 0644]