Sat Apr 24 14:01:33 Paris, Madrid (heure d'été) 2010 freestorm77@gmail.com * doc_reformat_architecture.txt - Added heading format begining and ending by "==" - Added Index - Added Title Note: No change are made in paragraphs content New patches: [doc_reformat_architecture.txt freestorm77@gmail.com**20100424120133 Ignore-this: 6e2cab4635080369f2b8cadf7b2f58e - Added heading format begining and ending by "==" - Added Index - Added Title Note: No change are made in paragraphs content ] { hunk ./docs/architecture.txt 1 += Tahoe-LAFS Architecture = hunk ./docs/architecture.txt 3 - Tahoe-LAFS Architecture +2. The Key-Value Store +3. File Encoding +4. Capabilities +5. Server Selection +6. Swarming Download, Trickling Upload +7. The Filesystem Layer +8. Leases, Refreshing, Garbage Collection +9. File Repairer +10. Security +11. Reliability hunk ./docs/architecture.txt 14 -(See the docs/specifications directory for more details.) +== Overview == hunk ./docs/architecture.txt 16 -OVERVIEW +(See the docs/specifications directory for more details.) There are three layers: the key-value store, the filesystem, and the application. hunk ./docs/architecture.txt 44 filesystem (see the RelatedProjects page of the wiki for a list). -THE KEY-VALUE STORE +== The Key-Value Store == The key-value store is implemented by a grid of Tahoe-LAFS storage servers -- user-space processes. Tahoe-LAFS storage clients communicate with the storage hunk ./docs/architecture.txt 77 server to tell a new client about all the others. -FILE ENCODING +== File Encoding == When a client stores a file on the grid, it first encrypts the file. It then breaks the encrypted file into small segments, in order to reduce the memory hunk ./docs/architecture.txt 118 into plaintext, then emit the plaintext bytes to the output target. -CAPABILITIES +== Capabilities == Capabilities to immutable files represent a specific set of bytes. Think of it like a hash function: you feed in a bunch of bytes, and you get out a hunk ./docs/architecture.txt 150 key-value layer. -SERVER SELECTION +== Server Selection == When a file is uploaded, the encoded shares are sent to other nodes. But to which ones? The "server selection" algorithm is used to make this choice. hunk ./docs/architecture.txt 231 long-term connections, at the expense of complexity and latency. -SWARMING DOWNLOAD, TRICKLING UPLOAD +== Swarming Download, Trickling Upload == Because the shares being downloaded are distributed across a large number of nodes, the download process will pull from many of them at the same time. The hunk ./docs/architecture.txt 262 See "helper.txt" for details about the upload helper. -THE FILESYSTEM LAYER +== The Filesystem Layer == The "filesystem" layer is responsible for mapping human-meaningful pathnames (directories and filenames) to pieces of data. The actual bytes inside these hunk ./docs/architecture.txt 292 that are globally visible. -LEASES, REFRESHING, GARBAGE COLLECTION +== Leases, Refreshing, Garbage Collection == When a file or directory in the virtual filesystem is no longer referenced, the space that its shares occupied on each storage server can be freed, hunk ./docs/architecture.txt 313 garbage collection. -FILE REPAIRER +== File Repairer == Shares may go away because the storage server hosting them has suffered a failure: either temporary downtime (affecting availability of the file), or a hunk ./docs/architecture.txt 370 in client behavior. -SECURITY +== Security == The design goal for this project is that an attacker may be able to deny service (i.e. prevent you from recovering a file that was uploaded earlier) hunk ./docs/architecture.txt 434 capabilities). -RELIABILITY +== Reliability == File encoding and peer-node selection parameters can be adjusted to achieve different goals. Each choice results in a number of properties; there are } Context: [docs: install.html http-equiv refresh to quickstart.html zooko@zooko.com**20100421165708 Ignore-this: 52b4b619f9dde5886ae2cd7f1f3b734b ] [docs: install.html -> quickstart.html zooko@zooko.com**20100421155757 Ignore-this: 6084e203909306bed93efb09d0e6181d It is not called "installing" because that implies that it is going to change the configuration of your operating system. It is not called "building" because that implies that you need developer tools like a compiler. Also I added a stern warning against looking at the "InstallDetails" wiki page, which I have renamed to "AdvancedInstall". ] [Fix another typo in tahoe_storagespace munin plugin david-sarah@jacaranda.org**20100416220935 Ignore-this: ad1f7aa66b554174f91dfb2b7a3ea5f3 ] [Add dependency on windmill >= 1.3 david-sarah@jacaranda.org**20100416190404 Ignore-this: 4437a7a464e92d6c9012926b18676211 ] [licensing: phrase the OpenSSL-exemption in the vocabulary of copyright instead of computer technology, and replicate the exemption from the GPL to the TGPPL zooko@zooko.com**20100414232521 Ignore-this: a5494b2f582a295544c6cad3f245e91 ] [munin-tahoe_storagespace freestorm77@gmail.com**20100221203626 Ignore-this: 14d6d6a587afe1f8883152bf2e46b4aa Plugin configuration rename ] [setup: add licensing declaration for setuptools (noticed by the FSF compliance folks) zooko@zooko.com**20100309184415 Ignore-this: 2dfa7d812d65fec7c72ddbf0de609ccb ] [setup: fix error in licensing declaration from Shawn Willden, as noted by the FSF compliance division zooko@zooko.com**20100309163736 Ignore-this: c0623d27e469799d86cabf67921a13f8 ] [CREDITS to Jacob Appelbaum zooko@zooko.com**20100304015616 Ignore-this: 70db493abbc23968fcc8db93f386ea54 ] [desert-island-build-with-proper-versions jacob@appelbaum.net**20100304013858] [docs: a few small edits to try to guide newcomers through the docs zooko@zooko.com**20100303231902 Ignore-this: a6aab44f5bf5ad97ea73e6976bc4042d These edits were suggested by my watching over Jake Appelbaum's shoulder as he completely ignored/skipped/missed install.html and also as he decided that debian.txt wouldn't help him with basic installation. Then I threw in a few docs edits that have been sitting around in my sandbox asking to be committed for months. ] [TAG allmydata-tahoe-1.6.1 david-sarah@jacaranda.org**20100228062314 Ignore-this: eb5f03ada8ea953ee7780e7fe068539 ] Patch bundle hash: e8ecebd655e7744a5a67f8f812ff761ff4262c85