116 |
|
|
117 |
Abstraction |
Abstraction |
118 |
''''''''''' |
''''''''''' |
119 |
DHT |
DHT/DOLR |
120 |
|
|
121 |
Redundancy |
Redundancy |
122 |
'''''''''' |
'''''''''' |
141 |
'''''''' |
'''''''' |
142 |
C++ (GCC 2.95, not 2.96, although 3.x should work) |
C++ (GCC 2.95, not 2.96, although 3.x should work) |
143 |
|
|
144 |
|
Additional requirements: |
145 |
|
* Self-certifying File System (http://fs.net) |
146 |
|
* autoconf, automake, etc. |
147 |
|
* Berkeley DB 3.X |
148 |
|
|
149 |
License |
License |
150 |
''''''' |
''''''' |
151 |
BSD-like |
BSD-like |
152 |
|
|
153 |
Other notes |
Other notes |
154 |
''''''''''' |
''''''''''' |
155 |
No support for network locality |
No support for network locality- do not take network latencies into account |
156 |
|
|
157 |
|
|
158 |
Tapestry_ |
Tapestry_ |
166 |
'''''''''' |
'''''''''' |
167 |
According to `Tapestry: A Resilient Global-scale Overlay for Service |
According to `Tapestry: A Resilient Global-scale Overlay for Service |
168 |
Deployment`_: |
Deployment`_: |
169 |
"..Tapestry is highly resilient under dynamic conditions, |
|
170 |
providing a near optimal success rate for requests |
Tapestry is highly resilient under dynamic conditions, |
171 |
under high churn rates, and quicly recovering from |
providing a near optimal success rate for requests |
172 |
massive membership events in under a minute." |
under high churn rates, and quicly recovering from |
173 |
|
massive membership events in under a minute." |
174 |
|
|
175 |
|
According to the Tapestry website: |
176 |
|
|
177 |
|
Tapestry offers fault-resilient mechanisms for both object |
178 |
|
location and point to point message delivery. For object location, |
179 |
|
Tapestry generates a small number of deterministic and independent |
180 |
|
GUIDs for each object. An object server publishes an object's |
181 |
|
availability on all of its GUIDs, and a client issues Tapestry locate |
182 |
|
requests for all of the object GUIDs in parallel. This greatly |
183 |
|
increases availability under fault conditions, while improving |
184 |
|
general performance and reducing performance variability. For point |
185 |
|
to point message delivery, Tapestry provides pre-calculated backup |
186 |
|
routes at each overlay hop. UDP soft-state beacons measure up-to-date |
187 |
|
link conditions. Tapestry uses such information and simple fault-avoidance |
188 |
|
protocols to route messages around failures, providing successful |
189 |
|
delivery with high probability if a path between the endpoints exists. |
190 |
|
|
191 |
Replication, backup links |
Replication, backup links |
192 |
|
|
203 |
|
|
204 |
Tapestry 1.0 (April 2002) |
Tapestry 1.0 (April 2002) |
205 |
|
|
206 |
According to the Tapestry website, "Tapestry 2.0 is coming soon, with support |
According to the Tapestry website: |
207 |
for massively parallel insertions, voluntary deletions, |
|
208 |
and a distributed test framework." |
Tapestry 2.0 is coming soon, with support |
209 |
|
for massively parallel insertions, voluntary deletions, |
210 |
|
and a distributed test framework. |
211 |
|
|
212 |
|
Tapestry Version 1.0 contains the following functionality: |
213 |
|
|
214 |
|
* Basic Tapestry Java code running on the SEDA stage-driven event model |
215 |
|
* Tapestry node insertion |
216 |
|
o Using a static configuration built from configuration files |
217 |
|
o Using the dynamic iterative insertion of single nodes to existing |
218 |
|
Tapestry networks |
219 |
|
* Support for multiple backup links per route entry |
220 |
|
* Object location |
221 |
|
o Object publication with optional tags |
222 |
|
o Object location with optional tags |
223 |
|
o TapestryFailure messages returned upon the failure of a |
224 |
|
TapestryLocateMsg |
225 |
|
* Message routing |
226 |
|
o Routing messages to an exact GUID match |
227 |
|
o Routing messages to the node closest in ID to a given GUID |
228 |
|
* An initial self-optimizing componentthat monitors link conditions to |
229 |
|
decide when to use backup routes |
230 |
|
|
231 |
Developer |
Developer |
232 |
''''''''' |
''''''''' |
238 |
The Java interface libraries for the BerkeleyDB database (included with this |
The Java interface libraries for the BerkeleyDB database (included with this |
239 |
release). |
release). |
240 |
|
|
241 |
|
Additional requirements: |
242 |
|
* The Cryptix JCE library (included with the 1.0 release) |
243 |
|
* UNIX make program |
244 |
|
* The Java interface libraries for the BerkeleyDB database |
245 |
|
(included with the 1.0 release) |
246 |
|
|
247 |
License |
License |
248 |
''''''' |
''''''' |
249 |
BSD-like |
BSD-like |
254 |
|
|
255 |
According to the Tapestry website, "Tapestry is the networking substrate of |
According to the Tapestry website, "Tapestry is the networking substrate of |
256 |
OceanStore_, a storage system aiming to provide global-scale persistent and |
OceanStore_, a storage system aiming to provide global-scale persistent and |
257 |
secure storage." |
secure storage." |
258 |
|
|
259 |
|
|
260 |
|
Why Oceanstore_ uses Tapestry_ ? |
261 |
|
See http://www.oceanstore.org/info/whytapestry.html |
262 |
|
|
263 |
|
|
264 |
Kademlia_ |
Kademlia_ |
304 |
|
|
305 |
Abstraction |
Abstraction |
306 |
''''''''''' |
''''''''''' |
307 |
DHT |
DHT/DOLR |
308 |
|
|
309 |
Redundancy |
Redundancy |
310 |
'''''''''' |
'''''''''' |
329 |
|
|
330 |
Language |
Language |
331 |
'''''''' |
'''''''' |
332 |
Java (requires a Java runtime version 1.4), C# |
Java (requires a Java runtime version 1.4), C# (not known) |
333 |
|
|
334 |
License |
License |
335 |
''''''' |
''''''' |
337 |
|
|
338 |
Other notes |
Other notes |
339 |
''''''''''' |
''''''''''' |
340 |
Support for network locality |
Support for network locality - Pastry actively replicates the objects and |
341 |
|
places them at random locations in the network. Result: When locating |
342 |
|
nearby object it might require the client to route to a distant replica of |
343 |
|
the object. |
344 |
|
|
345 |
|
|
346 |
GISP_ |
GISP_ |
348 |
|
|
349 |
Abstraction |
Abstraction |
350 |
''''''''''' |
''''''''''' |
351 |
DHT |
DHT/DOLR |
352 |
|
|
353 |
Redundancy |
Redundancy |
354 |
'''''''''' |
'''''''''' |