Ticket #1291: perf-doc.darcs.patch

File perf-doc.darcs.patch, 14.1 KB (added by zooko, at 2011-01-04T07:28:32Z)
Line 
11 patch for repository zooko@dev.allmydata.org:/home/darcs/tahoe-lafs/trunk:
2
3Mon Jan  3 23:54:55 MST 2011  zooko@zooko.com
4  * docs: update performance.rst to describe the difference between already-uploaded and not-already-uploaded, to parameterize segment size, and to use "~A" to mean "approximately A"
5
6New patches:
7
8[docs: update performance.rst to describe the difference between already-uploaded and not-already-uploaded, to parameterize segment size, and to use "~A" to mean "approximately A"
9zooko@zooko.com**20110104065455
10 Ignore-this: 8df0d79a062ee19854c0211bd202f606
11] {
12hunk ./docs/performance.rst 17
13 10. `Performing a file-verify on an A-byte file`_
14 11. `Repairing an A-byte file (mutable or immutable)`_
15 
16+``K`` indicates the number of shares required to reconstruct the file
17+(default: 3)
18+
19+``N`` indicates the total number of shares produced (default: 10)
20+
21+``S`` indicates the segment size (default: 128 KiB)
22+
23+``A`` indicates the number of bytes in a file
24+
25+``B`` indicates the number of bytes of a file which are being read or
26+written
27+
28+``G`` indicates the number of storage servers on your grid
29+
30 Publishing an ``A``-byte immutable file
31 =======================================
32 
33hunk ./docs/performance.rst 34
34-network: A
35+when the file is already uploaded
36+---------------------------------
37+
38+If the file is already uploaded with the exact same contents, same
39+erasure coding parameters (K, N), and same added convergence secret,
40+then it reads the whole file from disk one time while hashing it to
41+compute the storage index, then contacts about N servers to ask each
42+one to store a share. All of the servers reply that they already have
43+a copy of that share, and the upload is done.
44+
45+disk: A
46+
47+cpu: ~A
48+
49+network: ~N
50+
51+memory footprint: N/K*S
52+
53+when the file is not already uploaded
54+-------------------------------------
55+
56+If the file is not already uploaded with the exact same contents, same
57+erasure coding parameters (K, N), and same added convergence secret,
58+then it reads the whole file from disk one time while hashing it to
59+compute the storage index, then contacts about N servers to ask each
60+one to store a share. Then it uploads each share to a storage server.
61+
62+disk: 2*A
63+
64+cpu: 2*~A
65 
66hunk ./docs/performance.rst 65
67-memory footprint: N/k*128KiB
68+network: ~N + ~A
69 
70hunk ./docs/performance.rst 67
71-notes: An immutable file upload requires an additional I/O pass over the entire
72-source file before the upload process can start, since convergent
73-encryption derives the encryption key in part from the contents of the
74-source file.
75+memory footprint: N/K*S
76 
77 Publishing an ``A``-byte mutable file
78 =====================================
79hunk ./docs/performance.rst 74
80 
81 network: A
82 
83-memory footprint: N/k*A
84+memory footprint: N/K*A
85 
86hunk ./docs/performance.rst 76
87-cpu: O(A) + a large constant for RSA keypair generation
88+cpu: ~A + a large constant for RSA keypair generation
89 
90 notes: Tahoe-LAFS generates a new RSA keypair for each mutable file that it
91 publishes to a grid. This takes up to 1 or 2 seconds on a typical desktop PC.
92hunk ./docs/performance.rst 91
93 
94 network: B
95 
96-memory footprint: 128KiB
97+cpu: ~A
98 
99hunk ./docs/performance.rst 93
100-notes: When Tahoe-LAFS 1.8.0 or later is asked to read an arbitrary range
101-of an immutable file, only the 128-KiB segments that overlap the
102+notes: When Tahoe-LAFS 1.8.0 or later is asked to read an arbitrary
103+range of an immutable file, only the S-byte segments that overlap the
104 requested range will be downloaded.
105 
106 (Earlier versions would download from the beginning of the file up
107hunk ./docs/performance.rst 117
108 
109 network: A
110 
111-memory footprint: N/k*A
112+memory footprint: N/K*A
113 
114 notes: If you upload a changed version of a mutable file that you
115 earlier put onto your grid with, say, 'tahoe put --mutable',
116hunk ./docs/performance.rst 132
117 
118 network: A
119 
120-memory footprint: N/k*A
121+memory footprint: N/K*A
122 
123 notes: Modifying any part of a mutable file in Tahoe-LAFS requires that
124 the entire file be downloaded, modified, held in memory while it is
125hunk ./docs/performance.rst 147
126 Adding an entry to an ``A``-entry directory
127 ===========================================
128 
129-network: O(A)
130+network: ~A
131 
132hunk ./docs/performance.rst 149
133-memory footprint: N/k*A
134+memory footprint: N/K*A
135 
136 notes: In Tahoe-LAFS, directories are implemented as specialized mutable
137 files. So adding an entry to a directory is essentially adding B
138hunk ./docs/performance.rst 158
139 Listing an ``A`` entry directory
140 ================================
141 
142-network: O(A)
143+network: ~A
144 
145hunk ./docs/performance.rst 160
146-memory footprint: N/k*A
147+memory footprint: N/K*A
148 
149 notes: Listing a directory requires that the mutable file storing the
150 directory be downloaded from the grid. So listing an A entry
151hunk ./docs/performance.rst 170
152 Performing a file-check on an ``A``-byte file
153 =============================================
154 
155-network: O(S), where S is the number of servers on your grid
156+network: ~G, where G is the number of servers on your grid
157 
158 memory footprint: negligible
159 
160hunk ./docs/performance.rst 182
161 Performing a file-verify on an ``A``-byte file
162 ==============================================
163 
164-network: N/k*A
165+network: N/K*A
166 
167hunk ./docs/performance.rst 184
168-memory footprint: N/k*128KiB
169+memory footprint: N/K*S
170 
171 notes: To verify a file, Tahoe-LAFS downloads all of the ciphertext
172 shares that were originally uploaded to the grid and integrity
173hunk ./docs/performance.rst 195
174 Repairing an ``A``-byte file (mutable or immutable)
175 ===================================================
176 
177-network: variable; up to around O(A)
178+network: variable; up to around ~A
179 
180hunk ./docs/performance.rst 197
181-memory footprint: from 128KiB to (1+N/k)*128KiB
182+memory footprint: from S to (1+N/K)*S
183 
184 notes: To repair a file, Tahoe-LAFS downloads the file, and generates/uploads
185 missing shares in the same way as when it initially uploads the file.
186}
187
188Context:
189
190[NEWS: update entry for removal of Mac and Windows apps. refs #1282
191david-sarah@jacaranda.org**20101226042245
192 Ignore-this: c8099bc6e8235718d042c9a13c1e2425
193]
194[Move dependency imports from windows/depends.py (which has gone away) into src/allmydata/windows/tahoesvc.py. Also fix a pyflakes warning, and change the service display name from 'Allmydata Tahoe Node' to 'Tahoe-LAFS node'. refs #1282
195david-sarah@jacaranda.org**20101226042100
196 Ignore-this: ee45f324934e1251380206dbee6346d0
197]
198[Remove unmaintained Windows GUI app, except for windows/tahoesvc.py which is moved to src/allmydata/windows. refs #1282
199david-sarah@jacaranda.org**20101226040237
200 Ignore-this: cae37b6622a7dd5940acc7d3e6a98b90
201]
202[Remove the Makefile targets relating to the Mac GUI app. refs #1282
203david-sarah@jacaranda.org**20101226025859
204 Ignore-this: 75303be783974b41138744ec62b07965
205]
206[NEWS: remove unmaintained Mac GUI app. refs #1282
207david-sarah@jacaranda.org**20101226020858
208 Ignore-this: 40474a07f4a550b48563d35350be7ab5
209]
210[Remove unmaintained Mac GUI app. fixes #1282
211david-sarah@jacaranda.org**20101226020508
212 Ignore-this: b3613bf1abfd284d542bf7c753ec557a
213]
214[Remove src/allmydata/util/find_exe.py which is no longer used. fixes #1150
215david-sarah@jacaranda.org**20101226023206
216 Ignore-this: 7436c9b53bf210aed34a1a973cd9cace
217]
218[status_web_pages_review.darcs.patch
219freestorm77@gmail.com**20110102034214
220 Ignore-this: 29f1ecb36177f10f3f846b3d56b313b2
221 
222 I make some changes on status web pages
223 
224 status.xhtml:
225 - Delete unused webform_css link
226 - Align tables on the left
227 
228 tahoe-css:
229 - Do some minor changes on code synthax
230 - changes table.status-download-events style to look like other tables
231 
232 status.py:
233 - Align table on the left
234 - Changes table header
235 - Add heading tags
236 - Modify google api graph: add image border, calculate height to feet data
237 
238 signed-off-by: zooko@zooko.com
239 fixes #1219
240]
241[test_storage.py: fix a pyflakes unused import warning.
242david-sarah@jacaranda.org**20101231220756
243 Ignore-this: df08231540cb7dff9d2b038e47ab30ee
244]
245[test_storage.py: leave at least 512 MiB free when running test_large_share. refs #1195
246david-sarah@jacaranda.org**20101231203215
247 Ignore-this: b2144c0341c3452b5d4ba219e284ea0e
248]
249[storage: use fileutil's version of get_disk_stats() and get_available_space(), use mockery/fakery in tests, enable large share test on platforms with sparse files and if > 4 GiB of disk space is currently available
250zooko@zooko.com**20100910173629
251 Ignore-this: 1304f1164c661de6d5304f993eb9b27b
252]
253[fileutil: copy in the get_disk_stats() and get_available_space() functions from storage/server.py
254zooko@zooko.com**20100910173520
255 Ignore-this: 8b15569715f710f4fc5092f7ca109253
256]
257[Update foolscap version requirement to 0.6.0, to address http://foolscap.lothar.com/trac/ticket/167
258david-sarah@jacaranda.org**20101231060039
259 Ignore-this: 98d2b8086a1a500b9f4565bca5a3810
260]
261[docs/webapi.rst: typos.
262david-sarah@jacaranda.org**20101230034422
263 Ignore-this: d1f5166d72cc711f7e0d9981eac9105e
264]
265[docs/webapi.rst: capitalization, formatting of section on URL character encoding, and a correction about Internet Explorer.
266david-sarah@jacaranda.org**20101230034049
267 Ignore-this: b3b9819d2fb264b4cdc5c8afd4e8c48d
268]
269[docs: corrections and clarifications.
270david-sarah@jacaranda.org**20101227051056
271 Ignore-this: e33202858c7644c58f3f924b164294b6
272]
273[docs: more formatting cleanups and corrections. Spell webapi and wapi as web-API.
274david-sarah@jacaranda.org**20101227050533
275 Ignore-this: 18b23cbfb780df585d8a722a1ec63e94
276]
277[docs/debian.rst: bring description of building dependencies from source up-to-date, and change hostname from allmydata.com to tahoe-lafs.org.
278david-sarah@jacaranda.org**20101212222912
279 Ignore-this: f38462afc88b4475195610385a28391c
280]
281[docs/architecture.rst: correct rst syntax.
282david-sarah@jacaranda.org**20101212202003
283 Ignore-this: 3fbe12feb28bec6f1c63aedbc79aad21
284]
285[docs/architecture.rst: formatting.
286david-sarah@jacaranda.org**20101212201719
287 Ignore-this: 305fa5dfc2939355eaf6d0d2161eb1ff
288]
289[docs: linkification, wording improvements.
290david-sarah@jacaranda.org**20101212201234
291 Ignore-this: 4e67287f527a8bc728cfbd93255d2aae
292]
293[docs: formatting.
294david-sarah@jacaranda.org**20101212201115
295 Ignore-this: 2e0ed394ac7726651d3a4f2c4b0d3798
296]
297[docs/configuration.rst: more formatting tweaks; which -> that.
298david-sarah@jacaranda.org**20101212195522
299 Ignore-this: a7becb7021854ca5a90edd892b36fdd7
300]
301[docs/configuration.rst: more changes to formatting.
302david-sarah@jacaranda.org**20101212194511
303 Ignore-this: 491aac33e5f5268d224359f1447d10be
304]
305[docs/configuration.rst: changes to formatting (mainly putting commands and filenames in monospace).
306david-sarah@jacaranda.org**20101212181828
307 Ignore-this: 8a1480e2d5f43bee678476424615b50f
308]
309[scripts/backupdb.py: more accurate comment about path field.
310david-sarah@jacaranda.org**20101212170320
311 Ignore-this: 50e47a2228a85207bbcd188a78a0d4e6
312]
313[scripts/cli.py: fix missing 'put' in usage example for 'tahoe put'.
314david-sarah@jacaranda.org**20101212170207
315 Ignore-this: 2cbadf066fff611fc03d3c0ff97ce6ec
316]
317[docs/frontends/CLI.rst: changes to formatting (mainly putting commands and filenames in monospace), and to command syntax to reflect that DIRCAP/... is accepted. Clarify the syntax of 'tahoe put' and other minor corrections. Tahoe -> Tahoe-LAFS.
318david-sarah@jacaranda.org**20101212165800
319 Ignore-this: a123ef6b564aa8624d1e79c97068ea12
320]
321[docs/frontends/CLI.rst: Unicode arguments to 'tahoe' work on Windows as of v1.7.1.
322david-sarah@jacaranda.org**20101212063740
323 Ignore-this: 3977a99dfa86ac33a44171deaf43aaab
324]
325[docs/known_issues.rst: fix title and linkify another URL. refs #1225
326david-sarah@jacaranda.org**20101212062817
327 Ignore-this: cc91287f7fb51c23440b3d2fe79c449c
328]
329[docs/known_issues.rst: fix an external link. refs #1225
330david-sarah@jacaranda.org**20101212062435
331 Ignore-this: b8cbf12f353131756c358965c48060ec
332]
333[Fix a link from uri.rst to dirnodes.rst. refs #1225
334david-sarah@jacaranda.org**20101212054502
335 Ignore-this: af6205299f5c9a33229cab259c00f9d5
336]
337[Fix a link from webapi.rst to FTP-and-SFTP.rst. refs #1225
338david-sarah@jacaranda.org**20101212053435
339 Ignore-this: 2b9f88678c3447ea860d6b61e8799858
340]
341[More specific hyperlink to architecture.rst from helper.rst. refs #1225
342david-sarah@jacaranda.org**20101212052607
343 Ignore-this: 50424c768fca481252fabf58424852dc
344]
345[Update hyperlinks between docs, and linkify some external references. refs #1225
346david-sarah@jacaranda.org**20101212051459
347 Ignore-this: cd43a4c3d3de1f832abfa88d5fc4ace1
348]
349[docs/specifications/dirnodes.rst: fix references to mutable.rst. refs #1225
350david-sarah@jacaranda.org**20101212012720
351 Ignore-this: 6819b4b4e06e947ee48b365e840db37d
352]
353[docs/specifications/mutable.rst: correct the magic string for v1 mutable containers. refs #1225
354david-sarah@jacaranda.org**20101212011400
355 Ignore-this: 99a5fcdd40cef83dbb08f323f6cdaaca
356]
357[Move .txt files in docs/frontends and docs/specifications to .rst. refs #1225
358david-sarah@jacaranda.org**20101212010251
359 Ignore-this: 8796d35d928370f7dc6ad2dafdc1c0fe
360]
361[Convert docs/frontends and docs/specifications to reStructuredText format (not including file moves).
362david-sarah@jacaranda.org**20101212004632
363 Ignore-this: e3ceb2d832d73875abe48624ddbb5622
364]
365[scripts/cli.py: remove the disclaimer in the help for 'tahoe cp' that it does not handle non-ASCII filenames well. (At least, we intend to handle them.)
366david-sarah@jacaranda.org**20101130002145
367 Ignore-this: 94c003efaa20b9eb4a83503d79844ca
368]
369[relnotes.txt: fifth -> sixth labor-of-love release
370zooko@zooko.com**20101129045647
371 Ignore-this: 21c245015268b38916e3a138d256c09d
372]
373[Makefile: BB_BRANCH is set to the empty string for trunk, not the string 'trunk'.
374david-sarah@jacaranda.org**20101128233512
375 Ignore-this: 5a7ef8eb10475636d21b91e25b56c369
376]
377[relnotes.txt: eleventh -> twelfth release.
378david-sarah@jacaranda.org**20101128223321
379 Ignore-this: 1e26410156a665271c1170803dea2c0d
380]
381[relnotes.tst: point to known_issues.rst, not known_issues.txt.
382david-sarah@jacaranda.org**20101128222918
383 Ignore-this: 60194eb4544cac446fe4f60b3e34b887
384]
385[quickstart.html: fix link to point to allmydata-tahoe-1.8.1.zip.
386david-sarah@jacaranda.org**20101128221728
387 Ignore-this: 7b3ee86f8256aa12f5d862f689f3ee29
388]
389[TAG allmydata-tahoe-1.8.1
390david-sarah@jacaranda.org**20101128212336
391 Ignore-this: 9c18bdeaef4822f590d2a0d879e00621
392]
393Patch bundle hash:
3944d8ada6ea9d68920ae22f7d34a651554b45b3d07