The Java Multi-Cloud Toolkit
Go to file
Dori Polotsky 1c57d07f70 JCLOUDS-847: Poor upload performance for putBlob
This change improves the performance of writing to sockets with the
default Java URL connection HTTP client, by enlarging the buffer used
for socket writes from an implicit hard-coded 4KB / 8KB buffer to a
configurable 32KB buffer.

The buffer size is now controlled by the following property with the
following default value:

jclouds.output-socket-buffer-size: 32768

The implementation is based on a variant of ByteStreams.copy (written as
ByteStreams2.copy) which accepts the buffer size as an argument, unlike
the original Guava code that uses a hard-coded size.

The change was done directly within the loop that copies the input
stream to the output stream, and not by wrapping a BufferedOutputStream
around the existing output stream, in order to avoid copying the payload
twice.

On some platforms this change can improve both the putBlob throughput
and the total CPU consumption.
2019-04-27 15:16:08 +09:00
all fix typo in project.version 2018-02-21 16:45:43 +01:00
allblobstore fix typo in project.version 2018-02-21 16:45:43 +01:00
allcompute fix typo in project.version 2018-02-21 16:45:43 +01:00
allloadbalancer fix typo in project.version 2018-02-21 16:45:43 +01:00
apis JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25) 2019-04-24 16:12:45 +02:00
blobstore Add test for aborting a single part MPU 2019-02-06 17:13:05 -08:00
common fix typo in project.version 2018-02-21 16:45:43 +01:00
compute Error-prone 2.3.2 fixes 2018-10-12 23:28:00 -07:00
core JCLOUDS-847: Poor upload performance for putBlob 2019-04-27 15:16:08 +09:00
drivers JCLOUDS-1462: Upgrade Apache Http driver to 4.3.6 2018-10-18 16:50:18 -04:00
loadbalancer fix typo in project.version 2018-02-21 16:45:43 +01:00
project JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25) 2019-04-24 16:12:45 +02:00
providers JCLOUDS-847: Poor upload performance for putBlob 2019-04-27 15:16:08 +09:00
resources JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25) 2019-04-24 16:12:45 +02:00
scriptbuilder Upgrade to modernizer-maven-plugin 1.8.0 2019-02-03 13:09:12 -08:00
skeletons fix typo in project.version 2018-02-21 16:45:43 +01:00
.dir-locals.el JCLOUDS-26. Adding .dir-locals.el for Emacs tab-width setting 2013-05-10 14:52:52 -07:00
.gitattributes Add .gitattributes to avoid line endings issues 2015-10-07 20:43:55 +02:00
.gitignore Update .gitignore 2017-03-03 16:34:32 +01:00
.mailmap Update mailmap for acole@twitter.com 2014-10-04 09:22:01 -07:00
CONTRIBUTING.md Fixed the CONTRIBUTING links 2015-02-05 15:10:37 +01:00
README.md Avoid duplicated info and just link to website 2014-08-07 09:25:37 -05:00
pom.xml fix typo in project.version 2018-02-21 16:45:43 +01:00

README.md

jclouds

Apache jclouds is an open source multi-cloud toolkit for the Java platform that gives you the freedom to create applications that are portable across clouds while giving you full control to use cloud-specific features.

For more information about using or contributing to jclouds, please visit our website at jclouds.apache.org.

License

Copyright (C) 2009-2013 The Apache Software Foundation

Licensed under the Apache License, Version 2.0