[flud-devel] DHT justifications (was: DHT Performance? Design?)

Bill Broadley bill at broadley.org
Tue Nov 6 23:29:48 PST 2007


zooko wrote:
>>   flud recently switched
>> to zfec for erasure coding (created by zooko for Tahoe).  Its
>> performance is quite satisfactory compared to rizzo, but of course has
>> to pay the python wrapper penalty.  You can find benchmarks in the
>> expected places
> 
> For the record, I started zfec by copying Rizzo's code.  I tried to  
> simplify and optimize his code, but I never did solid benchmarks of  
> the result, or if I did I don't remember and I no longer have my notes.

Excellent, looks pretty damn quick, for Alen's mentioned 20/40 coding,
(approximately 100% storage overhead):
bill at quiet:~/src/p2p/bench$ ./mb.pl 2040.log
File size =        8 KB runtime =   0.16 seconds KB/sec =  50.00
File size =       64 KB runtime =   0.17 seconds KB/sec = 376.47
File size =      256 KB runtime =   0.16 seconds KB/sec = 1600.00
File size =     1024 KB runtime =   0.14 seconds KB/sec = 7314.29
File size =     4096 KB runtime =   0.28 seconds KB/sec = 14628.57
File size =    16384 KB runtime =   0.89 seconds KB/sec = 18408.99
File size =    65536 KB runtime =   3.19 seconds KB/sec = 20544.20
File size =   262144 KB runtime =  24.99 seconds KB/sec = 10489.96
File size =   262144 KB runtime =  15.12 seconds
(last line is with warm caches).

For an alternate 16/24 coding (approximately 50% storage overhead)
File size =        8 KB runtime =   0.15 seconds KB/sec =  53.33
File size =       64 KB runtime =   0.11 seconds KB/sec = 581.82
File size =      256 KB runtime =   0.17 seconds KB/sec = 1505.88
File size =     1024 KB runtime =   0.17 seconds KB/sec = 6023.53
File size =     4096 KB runtime =   0.17 seconds KB/sec = 24094.12
File size =    16384 KB runtime =   0.45 seconds KB/sec = 36408.89
File size =    65536 KB runtime =   2.40 seconds KB/sec = 27306.67
File size =   262144 KB runtime =  15.51 seconds KB/sec = 16901.61
File size =   262144 KB runtime =  10.74
(last line is with warm caches).

Clearly filesize can be a big difference, but even tiny files (my average 
filesize at home is 300KB or so) aren't likely to be a limit for a DSL uplink. 
Keeping up with a decent fraction of a GigE is a different matter.

> http://allmydata.org/trac/tahoe/ticket/167 -- try out Jerasure
> 
> """
> Professor James Plank has published a new library that has  
> implementations of various erasure coding algorithms, Jerasure:
> 
> http://www.cs.utk.edu/~plank/plank/papers/CS-07-603.html
> 
> It would be fun to benchmark these against the current zfec

I'll tinker with it, from first glance it doesn't look like it provides
a nice interface like zfec.





More information about the flud-devel mailing list