1 | 1 patch for repository zooko@dev.allmydata.org:/home/darcs/tahoe/trunk: |
---|
2 | |
---|
3 | Sun May 8 06:42:28 MDT 2011 zooko@zooko.com |
---|
4 | * docs: fix several imprecise or inaccurate values in performance.rst |
---|
5 | add cpu values for each operation |
---|
6 | sort the list of values into the same order in each operation |
---|
7 | refs #1398 |
---|
8 | |
---|
9 | New patches: |
---|
10 | |
---|
11 | [docs: fix several imprecise or inaccurate values in performance.rst |
---|
12 | zooko@zooko.com**20110508124228 |
---|
13 | Ignore-this: f1ecc5cb32eebec9760c8fc437799eb4 |
---|
14 | add cpu values for each operation |
---|
15 | sort the list of values into the same order in each operation |
---|
16 | refs #1398 |
---|
17 | ] { |
---|
18 | hunk ./docs/performance.rst 50 |
---|
19 | |
---|
20 | network: ~N |
---|
21 | |
---|
22 | -memory footprint: N/K*S |
---|
23 | +memory footprint: S |
---|
24 | |
---|
25 | when the file is not already uploaded |
---|
26 | ------------------------------------- |
---|
27 | hunk ./docs/performance.rst 65 |
---|
28 | |
---|
29 | cpu: 2*~A |
---|
30 | |
---|
31 | -network: ~N + ~A |
---|
32 | +network: N/K*A |
---|
33 | |
---|
34 | memory footprint: N/K*S |
---|
35 | |
---|
36 | hunk ./docs/performance.rst 72 |
---|
37 | Publishing an ``A``-byte mutable file |
---|
38 | ===================================== |
---|
39 | |
---|
40 | +cpu: ~A + a large constant for RSA keypair generation |
---|
41 | + |
---|
42 | network: A |
---|
43 | |
---|
44 | memory footprint: N/K*A |
---|
45 | hunk ./docs/performance.rst 78 |
---|
46 | |
---|
47 | -cpu: ~A + a large constant for RSA keypair generation |
---|
48 | - |
---|
49 | notes: Tahoe-LAFS generates a new RSA keypair for each mutable file that it |
---|
50 | publishes to a grid. This takes up to 1 or 2 seconds on a typical desktop PC. |
---|
51 | |
---|
52 | hunk ./docs/performance.rst 89 |
---|
53 | Downloading ``B`` bytes of an ``A``-byte immutable file |
---|
54 | ======================================================= |
---|
55 | |
---|
56 | -network: B |
---|
57 | +cpu: ~B |
---|
58 | |
---|
59 | hunk ./docs/performance.rst 91 |
---|
60 | -cpu: ~A |
---|
61 | +network: B |
---|
62 | |
---|
63 | notes: When Tahoe-LAFS 1.8.0 or later is asked to read an arbitrary |
---|
64 | range of an immutable file, only the S-byte segments that overlap the |
---|
65 | hunk ./docs/performance.rst 104 |
---|
66 | Downloading ``B`` bytes of an ``A``-byte mutable file |
---|
67 | ===================================================== |
---|
68 | |
---|
69 | +cpu: ~A |
---|
70 | + |
---|
71 | network: A |
---|
72 | |
---|
73 | memory footprint: A |
---|
74 | hunk ./docs/performance.rst 117 |
---|
75 | Modifying ``B`` bytes of an ``A``-byte mutable file |
---|
76 | =================================================== |
---|
77 | |
---|
78 | +cpu: ~A |
---|
79 | + |
---|
80 | network: A |
---|
81 | |
---|
82 | memory footprint: N/K*A |
---|
83 | hunk ./docs/performance.rst 134 |
---|
84 | Inserting/Removing ``B`` bytes in an ``A``-byte mutable file |
---|
85 | ============================================================ |
---|
86 | |
---|
87 | +cpu: ~A |
---|
88 | + |
---|
89 | network: A |
---|
90 | |
---|
91 | memory footprint: N/K*A |
---|
92 | hunk ./docs/performance.rst 153 |
---|
93 | Adding an entry to an ``A``-entry directory |
---|
94 | =========================================== |
---|
95 | |
---|
96 | +cpu: ~A |
---|
97 | + |
---|
98 | network: ~A |
---|
99 | |
---|
100 | hunk ./docs/performance.rst 157 |
---|
101 | -memory footprint: N/K*A |
---|
102 | +memory footprint: N/K*~A |
---|
103 | |
---|
104 | notes: In Tahoe-LAFS, directories are implemented as specialized mutable |
---|
105 | files. So adding an entry to a directory is essentially adding B |
---|
106 | hunk ./docs/performance.rst 166 |
---|
107 | Listing an ``A`` entry directory |
---|
108 | ================================ |
---|
109 | |
---|
110 | +cpu: ~A |
---|
111 | + |
---|
112 | network: ~A |
---|
113 | |
---|
114 | hunk ./docs/performance.rst 170 |
---|
115 | -memory footprint: N/K*A |
---|
116 | +memory footprint: N/K*~A |
---|
117 | |
---|
118 | notes: Listing a directory requires that the mutable file storing the |
---|
119 | directory be downloaded from the grid. So listing an A entry |
---|
120 | hunk ./docs/performance.rst 180 |
---|
121 | Performing a file-check on an ``A``-byte file |
---|
122 | ============================================= |
---|
123 | |
---|
124 | -network: ~G, where G is the number of servers on your grid |
---|
125 | +cpu: ~G |
---|
126 | + |
---|
127 | +network: ~G |
---|
128 | |
---|
129 | memory footprint: negligible |
---|
130 | |
---|
131 | hunk ./docs/performance.rst 194 |
---|
132 | Performing a file-verify on an ``A``-byte file |
---|
133 | ============================================== |
---|
134 | |
---|
135 | +cpu: ~N/K*A |
---|
136 | + |
---|
137 | network: N/K*A |
---|
138 | |
---|
139 | memory footprint: N/K*S |
---|
140 | hunk ./docs/performance.rst 201 |
---|
141 | |
---|
142 | notes: To verify a file, Tahoe-LAFS downloads all of the ciphertext |
---|
143 | -shares that were originally uploaded to the grid and integrity |
---|
144 | -checks them. This is, for well-behaved grids, likely to be more |
---|
145 | -expensive than downloading an A-byte file, since only a fraction |
---|
146 | -of these shares are necessary to recover the file. |
---|
147 | +shares that were originally uploaded to the grid and integrity checks |
---|
148 | +them. This is (for well-behaved grids) more expensive than downloading |
---|
149 | +an A-byte file, since only a fraction of these shares are necessary to |
---|
150 | +recover the file. |
---|
151 | |
---|
152 | Repairing an ``A``-byte file (mutable or immutable) |
---|
153 | =================================================== |
---|
154 | hunk ./docs/performance.rst 209 |
---|
155 | |
---|
156 | -network: variable; up to around ~A |
---|
157 | +cpu: variable, between ~A and ~N/K*A |
---|
158 | + |
---|
159 | +network: variable; between A and N/K*A |
---|
160 | |
---|
161 | hunk ./docs/performance.rst 213 |
---|
162 | -memory footprint: from S to (1+N/K)*S |
---|
163 | +memory footprint: (1+N/K)*S |
---|
164 | |
---|
165 | hunk ./docs/performance.rst 215 |
---|
166 | -notes: To repair a file, Tahoe-LAFS downloads the file, and generates/uploads |
---|
167 | -missing shares in the same way as when it initially uploads the file. |
---|
168 | -So, depending on how many shares are missing, this can be about as |
---|
169 | -expensive as initially uploading the file in the first place. |
---|
170 | +notes: To repair a file, Tahoe-LAFS downloads the file, and |
---|
171 | +generates/uploads missing shares in the same way as when it initially |
---|
172 | +uploads the file. So, depending on how many shares are missing, this |
---|
173 | +can cost as little as a download or as much as a download followed by |
---|
174 | +a full upload. |
---|
175 | } |
---|
176 | |
---|
177 | Context: |
---|
178 | |
---|
179 | [munin tahoe_files plugin: fix incorrect file count |
---|
180 | francois@ctrlaltdel.ch**20110428055312 |
---|
181 | Ignore-this: 334ba49a0bbd93b4a7b06a25697aba34 |
---|
182 | fixes #1391 |
---|
183 | ] |
---|
184 | [docs: FTP-and-SFTP.rst: fix a minor error and update the information about which version of Twisted fixes #1297 |
---|
185 | zooko@zooko.com**20110428055232 |
---|
186 | Ignore-this: b63cfb4ebdbe32fb3b5f885255db4d39 |
---|
187 | ] |
---|
188 | [Fix a test failure in test_package_initialization on Python 2.4.x due to exceptions being stringified differently than in later versions of Python. refs #1389 |
---|
189 | david-sarah@jacaranda.org**20110411190738 |
---|
190 | Ignore-this: 7847d26bc117c328c679f08a7baee519 |
---|
191 | ] |
---|
192 | [tests: add test for including the ImportError message and traceback entry in the summary of errors from importing dependencies. refs #1389 |
---|
193 | david-sarah@jacaranda.org**20110410155844 |
---|
194 | Ignore-this: fbecdbeb0d06a0f875fe8d4030aabafa |
---|
195 | ] |
---|
196 | [allmydata/__init__.py: preserve the message and last traceback entry (file, line number, function, and source line) of ImportErrors in the package versions string. fixes #1389 |
---|
197 | david-sarah@jacaranda.org**20110410155705 |
---|
198 | Ignore-this: 2f87b8b327906cf8bfca9440a0904900 |
---|
199 | ] |
---|
200 | [remove unused variable detected by pyflakes |
---|
201 | zooko@zooko.com**20110407172231 |
---|
202 | Ignore-this: 7344652d5e0720af822070d91f03daf9 |
---|
203 | ] |
---|
204 | [allmydata/__init__.py: Nicer reporting of unparseable version numbers in dependencies. fixes #1388 |
---|
205 | david-sarah@jacaranda.org**20110401202750 |
---|
206 | Ignore-this: 9c6bd599259d2405e1caadbb3e0d8c7f |
---|
207 | ] |
---|
208 | [update FTP-and-SFTP.rst: the necessary patch is included in Twisted-10.1 |
---|
209 | Brian Warner <warner@lothar.com>**20110325232511 |
---|
210 | Ignore-this: d5307faa6900f143193bfbe14e0f01a |
---|
211 | ] |
---|
212 | [control.py: remove all uses of s.get_serverid() |
---|
213 | warner@lothar.com**20110227011203 |
---|
214 | Ignore-this: f80a787953bd7fa3d40e828bde00e855 |
---|
215 | ] |
---|
216 | [web: remove some uses of s.get_serverid(), not all |
---|
217 | warner@lothar.com**20110227011159 |
---|
218 | Ignore-this: a9347d9cf6436537a47edc6efde9f8be |
---|
219 | ] |
---|
220 | [immutable/downloader/fetcher.py: remove all get_serverid() calls |
---|
221 | warner@lothar.com**20110227011156 |
---|
222 | Ignore-this: fb5ef018ade1749348b546ec24f7f09a |
---|
223 | ] |
---|
224 | [immutable/downloader/fetcher.py: fix diversity bug in server-response handling |
---|
225 | warner@lothar.com**20110227011153 |
---|
226 | Ignore-this: bcd62232c9159371ae8a16ff63d22c1b |
---|
227 | |
---|
228 | When blocks terminate (either COMPLETE or CORRUPT/DEAD/BADSEGNUM), the |
---|
229 | _shares_from_server dict was being popped incorrectly (using shnum as the |
---|
230 | index instead of serverid). I'm still thinking through the consequences of |
---|
231 | this bug. It was probably benign and really hard to detect. I think it would |
---|
232 | cause us to incorrectly believe that we're pulling too many shares from a |
---|
233 | server, and thus prefer a different server rather than asking for a second |
---|
234 | share from the first server. The diversity code is intended to spread out the |
---|
235 | number of shares simultaneously being requested from each server, but with |
---|
236 | this bug, it might be spreading out the total number of shares requested at |
---|
237 | all, not just simultaneously. (note that SegmentFetcher is scoped to a single |
---|
238 | segment, so the effect doesn't last very long). |
---|
239 | ] |
---|
240 | [immutable/downloader/share.py: reduce get_serverid(), one left, update ext deps |
---|
241 | warner@lothar.com**20110227011150 |
---|
242 | Ignore-this: d8d56dd8e7b280792b40105e13664554 |
---|
243 | |
---|
244 | test_download.py: create+check MyShare instances better, make sure they share |
---|
245 | Server objects, now that finder.py cares |
---|
246 | ] |
---|
247 | [immutable/downloader/finder.py: reduce use of get_serverid(), one left |
---|
248 | warner@lothar.com**20110227011146 |
---|
249 | Ignore-this: 5785be173b491ae8a78faf5142892020 |
---|
250 | ] |
---|
251 | [immutable/offloaded.py: reduce use of get_serverid() a bit more |
---|
252 | warner@lothar.com**20110227011142 |
---|
253 | Ignore-this: b48acc1b2ae1b311da7f3ba4ffba38f |
---|
254 | ] |
---|
255 | [immutable/upload.py: reduce use of get_serverid() |
---|
256 | warner@lothar.com**20110227011138 |
---|
257 | Ignore-this: ffdd7ff32bca890782119a6e9f1495f6 |
---|
258 | ] |
---|
259 | [immutable/checker.py: remove some uses of s.get_serverid(), not all |
---|
260 | warner@lothar.com**20110227011134 |
---|
261 | Ignore-this: e480a37efa9e94e8016d826c492f626e |
---|
262 | ] |
---|
263 | [add remaining get_* methods to storage_client.Server, NoNetworkServer, and |
---|
264 | warner@lothar.com**20110227011132 |
---|
265 | Ignore-this: 6078279ddf42b179996a4b53bee8c421 |
---|
266 | MockIServer stubs |
---|
267 | ] |
---|
268 | [upload.py: rearrange _make_trackers a bit, no behavior changes |
---|
269 | warner@lothar.com**20110227011128 |
---|
270 | Ignore-this: 296d4819e2af452b107177aef6ebb40f |
---|
271 | ] |
---|
272 | [happinessutil.py: finally rename merge_peers to merge_servers |
---|
273 | warner@lothar.com**20110227011124 |
---|
274 | Ignore-this: c8cd381fea1dd888899cb71e4f86de6e |
---|
275 | ] |
---|
276 | [test_upload.py: factor out FakeServerTracker |
---|
277 | warner@lothar.com**20110227011120 |
---|
278 | Ignore-this: 6c182cba90e908221099472cc159325b |
---|
279 | ] |
---|
280 | [test_upload.py: server-vs-tracker cleanup |
---|
281 | warner@lothar.com**20110227011115 |
---|
282 | Ignore-this: 2915133be1a3ba456e8603885437e03 |
---|
283 | ] |
---|
284 | [happinessutil.py: server-vs-tracker cleanup |
---|
285 | warner@lothar.com**20110227011111 |
---|
286 | Ignore-this: b856c84033562d7d718cae7cb01085a9 |
---|
287 | ] |
---|
288 | [upload.py: more tracker-vs-server cleanup |
---|
289 | warner@lothar.com**20110227011107 |
---|
290 | Ignore-this: bb75ed2afef55e47c085b35def2de315 |
---|
291 | ] |
---|
292 | [upload.py: fix var names to avoid confusion between 'trackers' and 'servers' |
---|
293 | warner@lothar.com**20110227011103 |
---|
294 | Ignore-this: 5d5e3415b7d2732d92f42413c25d205d |
---|
295 | ] |
---|
296 | [refactor: s/peer/server/ in immutable/upload, happinessutil.py, test_upload |
---|
297 | warner@lothar.com**20110227011100 |
---|
298 | Ignore-this: 7ea858755cbe5896ac212a925840fe68 |
---|
299 | |
---|
300 | No behavioral changes, just updating variable/method names and log messages. |
---|
301 | The effects outside these three files should be minimal: some exception |
---|
302 | messages changed (to say "server" instead of "peer"), and some internal class |
---|
303 | names were changed. A few things still use "peer" to minimize external |
---|
304 | changes, like UploadResults.timings["peer_selection"] and |
---|
305 | happinessutil.merge_peers, which can be changed later. |
---|
306 | ] |
---|
307 | [storage_client.py: clean up test_add_server/test_add_descriptor, remove .test_servers |
---|
308 | warner@lothar.com**20110227011056 |
---|
309 | Ignore-this: efad933e78179d3d5fdcd6d1ef2b19cc |
---|
310 | ] |
---|
311 | [test_client.py, upload.py:: remove KiB/MiB/etc constants, and other dead code |
---|
312 | warner@lothar.com**20110227011051 |
---|
313 | Ignore-this: dc83c5794c2afc4f81e592f689c0dc2d |
---|
314 | ] |
---|
315 | [test: increase timeout on a network test because Francois's ARM machine hit that timeout |
---|
316 | zooko@zooko.com**20110317165909 |
---|
317 | Ignore-this: 380c345cdcbd196268ca5b65664ac85b |
---|
318 | I'm skeptical that the test was proceeding correctly but ran out of time. It seems more likely that it had gotten hung. But if we raise the timeout to an even more extravagant number then we can be even more certain that the test was never going to finish. |
---|
319 | ] |
---|
320 | [docs/configuration.rst: add a "Frontend Configuration" section |
---|
321 | Brian Warner <warner@lothar.com>**20110222014323 |
---|
322 | Ignore-this: 657018aa501fe4f0efef9851628444ca |
---|
323 | |
---|
324 | this points to docs/frontends/*.rst, which were previously underlinked |
---|
325 | ] |
---|
326 | [web/filenode.py: avoid calling req.finish() on closed HTTP connections. Closes #1366 |
---|
327 | "Brian Warner <warner@lothar.com>"**20110221061544 |
---|
328 | Ignore-this: 799d4de19933f2309b3c0c19a63bb888 |
---|
329 | ] |
---|
330 | [Add unit tests for cross_check_pkg_resources_versus_import, and a regression test for ref #1355. This requires a little refactoring to make it testable. |
---|
331 | david-sarah@jacaranda.org**20110221015817 |
---|
332 | Ignore-this: 51d181698f8c20d3aca58b057e9c475a |
---|
333 | ] |
---|
334 | [allmydata/__init__.py: .name was used in place of the correct .__name__ when printing an exception. Also, robustify string formatting by using %r instead of %s in some places. fixes #1355. |
---|
335 | david-sarah@jacaranda.org**20110221020125 |
---|
336 | Ignore-this: b0744ed58f161bf188e037bad077fc48 |
---|
337 | ] |
---|
338 | [Refactor StorageFarmBroker handling of servers |
---|
339 | Brian Warner <warner@lothar.com>**20110221015804 |
---|
340 | Ignore-this: 842144ed92f5717699b8f580eab32a51 |
---|
341 | |
---|
342 | Pass around IServer instance instead of (peerid, rref) tuple. Replace |
---|
343 | "descriptor" with "server". Other replacements: |
---|
344 | |
---|
345 | get_all_servers -> get_connected_servers/get_known_servers |
---|
346 | get_servers_for_index -> get_servers_for_psi (now returns IServers) |
---|
347 | |
---|
348 | This change still needs to be pushed further down: lots of code is now |
---|
349 | getting the IServer and then distributing (peerid, rref) internally. |
---|
350 | Instead, it ought to distribute the IServer internally and delay |
---|
351 | extracting a serverid or rref until the last moment. |
---|
352 | |
---|
353 | no_network.py was updated to retain parallelism. |
---|
354 | ] |
---|
355 | [TAG allmydata-tahoe-1.8.2 |
---|
356 | warner@lothar.com**20110131020101] |
---|
357 | Patch bundle hash: |
---|
358 | c186bd210fda18a13b86d75683e3bd8ca0b7c2df |
---|