1 | Sat Apr 24 14:01:33 Paris, Madrid (heure d'été) 2010 freestorm77@gmail.com |
---|
2 | * doc_reformat_architecture.txt |
---|
3 | |
---|
4 | |
---|
5 | - Added heading format begining and ending by "==" |
---|
6 | - Added Index |
---|
7 | - Added Title |
---|
8 | |
---|
9 | Note: No change are made in paragraphs content |
---|
10 | |
---|
11 | |
---|
12 | |
---|
13 | New patches: |
---|
14 | |
---|
15 | [doc_reformat_architecture.txt |
---|
16 | freestorm77@gmail.com**20100424120133 |
---|
17 | Ignore-this: 6e2cab4635080369f2b8cadf7b2f58e |
---|
18 | |
---|
19 | |
---|
20 | - Added heading format begining and ending by "==" |
---|
21 | - Added Index |
---|
22 | - Added Title |
---|
23 | |
---|
24 | Note: No change are made in paragraphs content |
---|
25 | |
---|
26 | |
---|
27 | ] { |
---|
28 | hunk ./docs/architecture.txt 1 |
---|
29 | += Tahoe-LAFS Architecture = |
---|
30 | |
---|
31 | hunk ./docs/architecture.txt 3 |
---|
32 | - Tahoe-LAFS Architecture |
---|
33 | +2. The Key-Value Store |
---|
34 | +3. File Encoding |
---|
35 | +4. Capabilities |
---|
36 | +5. Server Selection |
---|
37 | +6. Swarming Download, Trickling Upload |
---|
38 | +7. The Filesystem Layer |
---|
39 | +8. Leases, Refreshing, Garbage Collection |
---|
40 | +9. File Repairer |
---|
41 | +10. Security |
---|
42 | +11. Reliability |
---|
43 | |
---|
44 | hunk ./docs/architecture.txt 14 |
---|
45 | -(See the docs/specifications directory for more details.) |
---|
46 | +== Overview == |
---|
47 | |
---|
48 | hunk ./docs/architecture.txt 16 |
---|
49 | -OVERVIEW |
---|
50 | +(See the docs/specifications directory for more details.) |
---|
51 | |
---|
52 | There are three layers: the key-value store, the filesystem, and the |
---|
53 | application. |
---|
54 | hunk ./docs/architecture.txt 44 |
---|
55 | filesystem (see the RelatedProjects page of the wiki for a list). |
---|
56 | |
---|
57 | |
---|
58 | -THE KEY-VALUE STORE |
---|
59 | +== The Key-Value Store == |
---|
60 | |
---|
61 | The key-value store is implemented by a grid of Tahoe-LAFS storage servers -- |
---|
62 | user-space processes. Tahoe-LAFS storage clients communicate with the storage |
---|
63 | hunk ./docs/architecture.txt 77 |
---|
64 | server to tell a new client about all the others. |
---|
65 | |
---|
66 | |
---|
67 | -FILE ENCODING |
---|
68 | +== File Encoding == |
---|
69 | |
---|
70 | When a client stores a file on the grid, it first encrypts the file. It then |
---|
71 | breaks the encrypted file into small segments, in order to reduce the memory |
---|
72 | hunk ./docs/architecture.txt 118 |
---|
73 | into plaintext, then emit the plaintext bytes to the output target. |
---|
74 | |
---|
75 | |
---|
76 | -CAPABILITIES |
---|
77 | +== Capabilities == |
---|
78 | |
---|
79 | Capabilities to immutable files represent a specific set of bytes. Think of |
---|
80 | it like a hash function: you feed in a bunch of bytes, and you get out a |
---|
81 | hunk ./docs/architecture.txt 150 |
---|
82 | key-value layer. |
---|
83 | |
---|
84 | |
---|
85 | -SERVER SELECTION |
---|
86 | +== Server Selection == |
---|
87 | |
---|
88 | When a file is uploaded, the encoded shares are sent to other nodes. But to |
---|
89 | which ones? The "server selection" algorithm is used to make this choice. |
---|
90 | hunk ./docs/architecture.txt 231 |
---|
91 | long-term connections, at the expense of complexity and latency. |
---|
92 | |
---|
93 | |
---|
94 | -SWARMING DOWNLOAD, TRICKLING UPLOAD |
---|
95 | +== Swarming Download, Trickling Upload == |
---|
96 | |
---|
97 | Because the shares being downloaded are distributed across a large number of |
---|
98 | nodes, the download process will pull from many of them at the same time. The |
---|
99 | hunk ./docs/architecture.txt 262 |
---|
100 | See "helper.txt" for details about the upload helper. |
---|
101 | |
---|
102 | |
---|
103 | -THE FILESYSTEM LAYER |
---|
104 | +== The Filesystem Layer == |
---|
105 | |
---|
106 | The "filesystem" layer is responsible for mapping human-meaningful pathnames |
---|
107 | (directories and filenames) to pieces of data. The actual bytes inside these |
---|
108 | hunk ./docs/architecture.txt 292 |
---|
109 | that are globally visible. |
---|
110 | |
---|
111 | |
---|
112 | -LEASES, REFRESHING, GARBAGE COLLECTION |
---|
113 | +== Leases, Refreshing, Garbage Collection == |
---|
114 | |
---|
115 | When a file or directory in the virtual filesystem is no longer referenced, |
---|
116 | the space that its shares occupied on each storage server can be freed, |
---|
117 | hunk ./docs/architecture.txt 313 |
---|
118 | garbage collection. |
---|
119 | |
---|
120 | |
---|
121 | -FILE REPAIRER |
---|
122 | +== File Repairer == |
---|
123 | |
---|
124 | Shares may go away because the storage server hosting them has suffered a |
---|
125 | failure: either temporary downtime (affecting availability of the file), or a |
---|
126 | hunk ./docs/architecture.txt 370 |
---|
127 | in client behavior. |
---|
128 | |
---|
129 | |
---|
130 | -SECURITY |
---|
131 | +== Security == |
---|
132 | |
---|
133 | The design goal for this project is that an attacker may be able to deny |
---|
134 | service (i.e. prevent you from recovering a file that was uploaded earlier) |
---|
135 | hunk ./docs/architecture.txt 434 |
---|
136 | capabilities). |
---|
137 | |
---|
138 | |
---|
139 | -RELIABILITY |
---|
140 | +== Reliability == |
---|
141 | |
---|
142 | File encoding and peer-node selection parameters can be adjusted to achieve |
---|
143 | different goals. Each choice results in a number of properties; there are |
---|
144 | } |
---|
145 | |
---|
146 | Context: |
---|
147 | |
---|
148 | [docs: install.html http-equiv refresh to quickstart.html |
---|
149 | zooko@zooko.com**20100421165708 |
---|
150 | Ignore-this: 52b4b619f9dde5886ae2cd7f1f3b734b |
---|
151 | ] |
---|
152 | [docs: install.html -> quickstart.html |
---|
153 | zooko@zooko.com**20100421155757 |
---|
154 | Ignore-this: 6084e203909306bed93efb09d0e6181d |
---|
155 | 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". |
---|
156 | ] |
---|
157 | [Fix another typo in tahoe_storagespace munin plugin |
---|
158 | david-sarah@jacaranda.org**20100416220935 |
---|
159 | Ignore-this: ad1f7aa66b554174f91dfb2b7a3ea5f3 |
---|
160 | ] |
---|
161 | [Add dependency on windmill >= 1.3 |
---|
162 | david-sarah@jacaranda.org**20100416190404 |
---|
163 | Ignore-this: 4437a7a464e92d6c9012926b18676211 |
---|
164 | ] |
---|
165 | [licensing: phrase the OpenSSL-exemption in the vocabulary of copyright instead of computer technology, and replicate the exemption from the GPL to the TGPPL |
---|
166 | zooko@zooko.com**20100414232521 |
---|
167 | Ignore-this: a5494b2f582a295544c6cad3f245e91 |
---|
168 | ] |
---|
169 | [munin-tahoe_storagespace |
---|
170 | freestorm77@gmail.com**20100221203626 |
---|
171 | Ignore-this: 14d6d6a587afe1f8883152bf2e46b4aa |
---|
172 | |
---|
173 | Plugin configuration rename |
---|
174 | |
---|
175 | ] |
---|
176 | [setup: add licensing declaration for setuptools (noticed by the FSF compliance folks) |
---|
177 | zooko@zooko.com**20100309184415 |
---|
178 | Ignore-this: 2dfa7d812d65fec7c72ddbf0de609ccb |
---|
179 | ] |
---|
180 | [setup: fix error in licensing declaration from Shawn Willden, as noted by the FSF compliance division |
---|
181 | zooko@zooko.com**20100309163736 |
---|
182 | Ignore-this: c0623d27e469799d86cabf67921a13f8 |
---|
183 | ] |
---|
184 | [CREDITS to Jacob Appelbaum |
---|
185 | zooko@zooko.com**20100304015616 |
---|
186 | Ignore-this: 70db493abbc23968fcc8db93f386ea54 |
---|
187 | ] |
---|
188 | [desert-island-build-with-proper-versions |
---|
189 | jacob@appelbaum.net**20100304013858] |
---|
190 | [docs: a few small edits to try to guide newcomers through the docs |
---|
191 | zooko@zooko.com**20100303231902 |
---|
192 | Ignore-this: a6aab44f5bf5ad97ea73e6976bc4042d |
---|
193 | 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. |
---|
194 | ] |
---|
195 | [TAG allmydata-tahoe-1.6.1 |
---|
196 | david-sarah@jacaranda.org**20100228062314 |
---|
197 | Ignore-this: eb5f03ada8ea953ee7780e7fe068539 |
---|
198 | ] |
---|
199 | Patch bundle hash: |
---|
200 | e8ecebd655e7744a5a67f8f812ff761ff4262c85 |
---|