[tahoe-dev] Perf-related architecture question

Kyle Markley kyle at arbyte.us
Sat Jul 24 02:18:06 UTC 2010

It's the weekend now, so I have some time to run benchmarks, both for
ticket #809 and for other tweaks of interest.  I'd prefer to go through
this effort only once, so let's collect parameters of interest and define
what work we'd like to measure.

I'll measure the wall-clock time for two transfers via "tahoe backup" from
a client to a single storage node, on a 100Mbps LAN.  The two transfers
will be:
  A)    4 16MiB files (total 64MiB)
  B) 1024 64KiB files (total 64MiB)

Between each test I will delete the client's backupdb and the storage
node's storage subdirectory.

I'll vary these parameters:

1) pipeline_size (in WriteBucketProxy.__init__)
  - What values would be interesting, and in what step size?
2) Segment size (ticket #809) (in class Client?)
  - I'll try each power of two from 32KiB to 4MiB.
3) Any other parameters worth playing with?

General questions:

When I edit these parameters, is it sufficient to edit them only on the
client, or do I also need to edit them on the storage node?

Do I need to benchmark the cross-product of the varying parameters, or if
not, what value should I use when holding one parameter constant and
varying the other?

Kyle Markley

More information about the tahoe-dev mailing list