[tahoe-lafs-trac-stream] [tahoe-lafs] #1696: attempting more than four simultaneous put uploads seems to break client

tahoe-lafs trac at tahoe-lafs.org
Thu Mar 29 04:49:30 UTC 2012


#1696: attempting more than four simultaneous put uploads seems to break client
-------------------------------------------------+-------------------------
 Reporter:  mirimir                              |          Owner:  nobody
     Type:  defect                               |         Status:  new
 Priority:  minor                                |      Milestone:
Component:  unknown                              |  undecided
 Keywords:  integrity preservation reliability   |        Version:  1.9.1
  scalability error                              |  Launchpad Bug:
-------------------------------------------------+-------------------------
 Our test client behaves oddly when doing more than four simultaneous
 uploads.

 Our test grid (all 1.9.1) is on a private VPN. A remote dedicated server
 with one 10Mbps port hosts our OpenVPN server and a storage node, with
 helper enabled. The introducer, test client and nine other storage nodes
 are VMs (some local and some remote VPS). Although bandwidths in both
 directions are typically 1.5-2.5Mbps, latencies are large, with RTT
 averaging 800ms.

 The client VM has one CPU, 512MB memory and 1.3GB swap. Versions are:

 allmydata-tahoe: 1.9.1, foolscap: 0.6.3, pycryptopp: 0.5.25, zfec: 1.4.10,
 Twisted: 10.1.0, Nevow: 0.10.0, zope.interface: unknown, python: 2.6.6,
 platform: Linux-Ubuntu_10.10-i686-32bit_ELF, pyOpenSSL: 0.10, simplejson:
 2.1.1, pycrypto: 2.0.1, pyasn1: unknown, mock: 0.8.0rc2, sqlite3: 2.4.1
 [sqlite 3.7.2], setuptools: 0.6c16dev3

 For single puts, the client uploads to the helper at ~70KBps, and the
 helper pushes to storage servers at ~200KBps nominal (660KBps total). For
 four simultaneous (forked) puts, uploading plateaus at ~200KBps, and
 pushing plateaus at ~250KBps nominal. However, for five or more
 simultaneous puts, something breaks. Although all ten shares of all files
 do get uploaded, some files don't get linked to the grid directory, and
 their upload operations are missing from "Recent Uploads and Downloads".

 To create ten 1MB test files, we paste this into terminal:

 {{{
 dd if=/dev/urandom of=1MB1 bs=1K count=1K &
 dd if=/dev/urandom of=1MB2 bs=1K count=1K &
 dd if=/dev/urandom of=1MB3 bs=1K count=1K &
 dd if=/dev/urandom of=1MB4 bs=1K count=1K &
 dd if=/dev/urandom of=1MB5 bs=1K count=1K &
 dd if=/dev/urandom of=1MB6 bs=1K count=1K &
 dd if=/dev/urandom of=1MB7 bs=1K count=1K &
 dd if=/dev/urandom of=1MB8 bs=1K count=1K &
 dd if=/dev/urandom of=1MB9 bs=1K count=1K
 }}}

 To simultaneously put four files, we paste this into terminal:

 {{{
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB1 tahoe:1MB/1MB1 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB2 tahoe:1MB/1MB2 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB3 tahoe:1MB/1MB3 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB4 tahoe:1MB/1MB4
 }}}

 We get this output (excerpted):

 {{{
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 }}}

 Browsing to tahoe:1MB, we see all four files:

 Tahoe-LAFS Directory SI=foobar

 {{{
 Type     Filename    Size      Times
 FILE     1MB1        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB2        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB3        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB4        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 }}}

 To simultaneously put five files, we paste this into terminal:

 {{{
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB5 tahoe:1MB/1MB5 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB6 tahoe:1MB/1MB6 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB7 tahoe:1MB/1MB7 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB8 tahoe:1MB/1MB8 &
 ~/allmydata-tahoe-1.9.1/bin/tahoe put --dir-cap=[Directory writecap]
 ~/1MB9 tahoe:1MB/1MB9
 }}}

 We get this output (excerpted):

 {{{
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 201 Created
 URI:CHK:...:3:10:1048576
 }}}

 Browsing to tahoe:1MB, we only see one new file (not five):

 Tahoe-LAFS Directory SI=foobar

 {{{
 Type     Filename    Size      Times
 FILE     1MB1        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB2        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB3        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB4        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 FILE     1MB8        1048576   lcr: 2012-03-27_HH:MM:SS.MMMMMM
                                lmo: 2012-03-27_HH:MM:SS.MMMMMM
 }}}

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1696>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list