Commit Graph

10651 Commits

Author SHA1 Message Date
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
Olaf Flebbe d51d6e44bc JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility (#25)
* JCLOUDS-1496: Update maven-compiler-plugin for increased JDK compatibility

* increase maven-compiler-plugin version

* A space change to trigger jenkins again

* Another space change to trigger jenkins again
2019-04-24 16:12:45 +02:00
Olaf Flebbe 2fbf10c9c9 JCLOUDS-1495: maven plugins are not correctly referred to (#24) 2019-04-10 19:54:09 -07:00
Andrew Gaul a1c9ce8217 JCLOUDS-1494: Add S3 Deep Archive tier
Also test Glacier tier now that Amazon allows creating objects with
this storage class.
2019-04-06 18:46:14 +09:00
Dani Estevez c2670079fa Adds new Azure regions for South Africa 2019-03-21 11:37:50 -04:00
d065488 ba5a2418a5 JCLOUDS-1428 - Support for SAS token based Authentication for Azure Blob Storage - removed sp and se tokens from the check 2019-03-19 22:28:41 +09:00
Dani Estevez 6fda1736ad Adds EU North 1 region (Stockholm) 2019-03-15 12:00:20 -04:00
Dani Estevez 1c9322e41c Adds China North West Region (Ningxia) 2019-03-15 12:00:20 -04:00
Aliaksandra Kharushka ba1504b38e [JCLOUDS-1428] Support for SAS token based Authentication for Azure Blob Storage (#1270) 2019-02-27 12:21:10 +01:00
Andrew Gaul 731c7aa698 Fix always-true date comparison
Found via error-prone 2.3.3.
2019-02-24 21:03:17 +09:00
Andrew Gaul 8eae27c98d Make interfaces with only statics into classes
This prevents instantiation.  Found via error-prone 2.3.3.
2019-02-23 16:34:11 +09:00
Andrew Gaul 53c47aa0bd Correct uses of checkNotNull
These should provide a descriptive second argument, not the same as
the first argument which is null in the failure case.  This also found
a logic error in CreateVolumeResponseHandler.
2019-02-23 16:33:40 +09:00
Andrew Gaul a4855eb9fd JCLOUDS-1489: expect S3 put archive to succeed 2019-02-07 20:03:14 -08:00
Andrew Gaul 222fb84f5c Add test for aborting a single part MPU
Also tighten up checks to ensure there is no litter, mostly for
transient and filesystem blobstores.
2019-02-06 17:13:05 -08:00
Andrew Gaul d14276d9a5 Upgrade to modernizer-maven-plugin 1.8.0
Notably this adds support for inline suppressions.  Release notes:

https://github.com/gaul/modernizer-maven-plugin/releases
2019-02-03 13:09:12 -08:00
Andrew Gaul e15077ea78 Revert "Disable Javadoc lint"
This reverts commit 338f052579.
2019-02-02 11:00:40 -08:00
Andrew Gaul 338f052579 Disable Javadoc lint
mvn site running on Java 8 complains about thousands of missing
@return tags among other things.
2019-02-02 10:10:24 -08:00
Andrew Gaul 91b0498b01 Remove JavaScript from footer
Addresses an error while building Javadoc.
2019-02-01 23:19:01 -08:00
Andrew Gaul fd7bacbfd3 Correct some Checkstyle violations
Follow-on to 13f32b28c9.
2019-02-01 08:57:57 -08:00
Andrew Gaul 13f32b28c9 Lazily open InputStream during complete MPU
Previously the filesystem provider could exhaust file descriptors by
eagerly opening up to 10,000 parts.  This partially undoes
JCLOUDS-1367.
2019-01-29 21:54:47 -08:00
Andrew Gaul 29eec441e9 JCLOUDS-1371: JCLOUDS-1488: list optimize prefix
Previously getBlobKeysInsideContainer returned all keys and filtered
in LocalBlobStore.  Now getBlobKeysInsideContainer filters via prefix
which can dramatically decrease the number of keys returned,
especially for the filesystem provider.  Further optimizations are
possible for delimiter.
2019-01-29 17:39:51 -08:00
Jean-Baptiste Onofré 3135aca109 Update scm to gitbox 2019-01-06 07:54:38 +01:00
Andrew Gaul 2393c7920b JCLOUDS-1366: JCLOUDS-1472: Fix InputStream MPU
Previously jclouds attempted to slice non-repeatable InputStream
Payloads in order to upload sequentially.  This never worked due to
mutating the single stream via skip and close.  Also backfill test
which spuriously succeeded.
2019-01-04 15:42:17 -08:00
Joe Meiring a36c9dcef0 Fix for FileSystem blob store clearContainer with options 2019-01-04 14:17:00 -08:00
Andrew Gaul f9cebd59f8 Add error handling for missing xattr
Previously this prevented listing inside a directory when using file
systems like HFS and NFS.  References gaul/s3proxy#279.
2019-01-04 11:41:32 -08:00
duc 70f0635ac2 JCLOUDS-1479: populate container cache on create 2019-01-02 19:29:31 -08:00
Andrew Gaul 7e2723c9a4 JCLOUDS-1452: Add missing b2 test field
Fixes regression from 9524383e49.
2019-01-01 11:10:59 -08:00
Andrew Gaul 9524383e49 JCLOUDS-1452: Add new v2 fields
Some of these only give consistency with similar requests.
2018-12-31 19:39:37 -08:00
Andrew Gaul a0f496e5ec JCLOUDS-1452: Remove Authorization.minimumPartSize
Superseded by absoluteMinimumPartSize and recommendedPartSize.
2018-12-31 18:47:38 -08:00
Andrew Gaul 750809f97f JCLOUDS-1452: Replace size with contentLength
Tracking B2 v2 API changes.
2018-12-31 18:47:38 -08:00
Andrew Gaul ce163f3498 JCLOUDS-1452: Switch to B2 v2 API
Some cleanups but no major changes:

https://www.backblaze.com/blog/backblaze-b2-api-version-2-beta-is-now-open/
2018-12-31 18:47:38 -08:00
Dani Estevez d621edd79f [JCLOUDS-1474] Adds SKU field to both LB and PublicIP
Changes order in parameters to keep properties as last parameter
Removes wrong @Nullable parameters

Moves LoadBalancer and PublicAddress to new package with SKU as inner
class

Moves LoadBalancerSKU inside LoadBalancer. Creates new loadbalancer package

Refactors PublicAddress domain objects

Extracts SKU from LoadBalancer

LoadBalancer SKU as inner class

PublicIPAddress SKU as inner class

Reorder parameters sku and properties
2018-12-28 16:55:35 -05:00
Simone Locci 2d9bb93427 Fix azure listNodes 2018-12-28 16:16:37 -05:00
Andrew Gaul 33d3266205 Enable B2 testCopy* tests
Backblaze has changed something such that these now pass.
2018-12-19 10:16:20 -08:00
Andrew Gaul 4cc4e1d76c Correct B2 SkipException for testPutObjectStream 2018-12-19 03:22:52 -08:00
Andrew Gaul a6cb6cde29 JCLOUDS-1477: Upload single part for small B2 MPU
B2 requires two parts to use multi-part upload but jclouds will
attempt to use one with small uploads.  Instead it should fall back to
single-part when the content length is small.
2018-12-18 22:42:01 -08:00
John McDonnell 25f2bcd8c9 [JCLOUDS-1468] Adding missing options for the ListUsageRecords API call. 2018-12-05 19:46:24 +01:00
kraza 5916059be9 JCLOUDS-1467
Added support for c5d & m5d AWS nodes.

JCLOUDS-1467
Updated the SSD drive information.
2018-12-03 17:22:46 -05:00
Dani Estevez 8e827d595e Adds method listAvailableSizes to VirtualMachineApi
Updates API version for VirtualMachineApi
2018-11-20 12:30:14 -05:00
Andrew Gaul b7d59e3fe9 Correct precondition
Follow on to 1ae735bb7d.
2018-11-14 14:53:05 -08:00
Andrew Gaul 1ae735bb7d Do not allow options in filesystem clearContainer
This requires some additional logic to clean up empty directories.
Test regression from 22ce5484a4.
2018-11-14 14:42:30 -08:00
Timur Alperovich 896e99df09 Filesystem: Fix the MPU ETags to match S3.
Prior commit introduced a bug in the computation of the MPU ETag value,
where it was concatenating strings, rather than operating on the bytes
of the integer value.
2018-11-02 12:25:17 -07:00
Joe Meiring 22ce5484a4 Removed unneeded check for prefix in clearContainer 2018-11-02 12:19:01 -07:00
filecatalyst bbb41b4590 JCLOUDS-1464: Update Google Cloud Storage regions
Added missing regions.  For reference:
https://cloud.google.com/storage/docs/bucket-locations
2018-10-30 11:18:08 -07:00
Timur Alperovich 539a9854c1 JCLOUDS-1450: Use S3-style ETags for MPUs.
S3 uses a different ETag for multipart uploads (MPUs) than regular
objects. The ETag consists of the md5 hash of the concatenated ETags of
individual parts followed by the number of parts (separated by "-").

The patch changes the LocalBlobStore's implementation of
CompleteMultipartUpload to set the S3-style ETag before calling
putBlob() and return that ETag to the caller.

To simplify testing, a new protected method with a default NOOP
implementation is added to the BaseBlobIntegrationTest. It allows
providers to further verify MPUs (i.e. ensuring the correct ETag has
been stored alongside the object).
2018-10-24 13:25:00 -07:00
Trent Schmidt 219e2958d7 JCLOUDS-1460: Adding instances to AWS 2018-10-24 14:42:46 -04:00
Ignasi Barrera 9dd50b39c9 JCLOUDS-1463: Do not return MachineTypes from zones that are not available for deploy 2018-10-24 09:20:22 +02:00
Ignasi Barrera 767240f360 JCLOUDS-1462: Upgrade Apache Http driver to 4.3.6
In response to https://nvd.nist.gov/vuln/detail/CVE-2015-5262
2018-10-18 16:50:18 -04:00
Oliver Gondža 8b17dfea87 Make NovaErrorHandler logging of sensitive information configurable 2018-10-18 11:32:04 +02:00
Mahmoud Ismail f7b83f4563 Mark sourceImage as Nullable 2018-10-18 11:27:58 +02:00