Hello,
These days I am trying to test cloud storage performance using different
libraries and services.
One of the tests I am performing is about uploading large files.
So I've read about the nice multipart feature of jClouds [1], and I've
also seen examples ([2] and [3])
which tweak some properties (namely "jclouds.mpu.parallel.degree" and
"jclouds.mpu.parts.size")
to make the provider spawn several threads and do the multipart uploads
in parallel.
Since I was recording unexpected high latencies I wrote a quick test [4]
in which I enable the
HTTP header log and I perform a simple 50MB PUT to Amazon S3, setting
6000000 byte
parts and 5 threads.
The problem is: while the part size property is taken into account, the
thread property seems
to have no effect at all, so in the log [5] I see the same thread
("main") doing the upload serially, one by one.
Is there something wrong in my settings / what am I missing..?
Thanks in advance.
Paolo
PS: I am using jClouds version 1.6.1-incubating
[1]:
http://jclouds.incubator.apache.org/documentation/userguide/blobstore-guide/
"Multipart uploads paragraph"
[2]:
https://github.com/jclouds/jclouds-examples/blob/master/blobstore-largeblob/src/main/java/org/jclouds/examples/blobstore/largeblob/MainApp.java
[3]:
https://github.com/jclouds/jclouds-examples/blob/master/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadLargeObject.java
[4]: https://gist.github.com/pviotti/a431891d3176362719d6
[5]: https://gist.github.com/pviotti/f1345b6f2d4be25414ad