History log of /external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fd48cf4fed0be0abdb77b56a377836b1be0f7257 30-Jan-2018 Brennan Saeta <saeta@google.com> GCS: Add client-side throttle.

This throttle is loosely based on a leaky bucket configuration that captures
both the cost of the requests as well as the bandwidth consumed into a single
token value.

PiperOrigin-RevId: 183740223
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
b9494ce8990cab65a20f3d5110f4c2c4402342be 26-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Remove dead code

PiperOrigin-RevId: 183450369
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9fc2c8ebc8adcbca10c9850a54f913f5e731429f 23-Jan-2018 Frank Chen <frankchn@google.com> Add functionality to include an optional additional header to be sent on every request when using the GCS file system.

PiperOrigin-RevId: 182855525
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
8aab9b2197efb90d58e86b18b614cd0e63dc56a1 12-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Reduce memory allocations in GCS client

This removes some unnecessary transient allocations from the GCS client code, by passing pointers to data directly to the JSON parsing library, rather than copying all of the JSON data to a temporary 'string' object.

Also converted some unnecessarily-general comparisons against Json::Value::null to calls to Value::isNull().

Also changes several parameters from "const string&" to "const char*", in order to avoid unnecessary intermediate allocations. Json::Value::get() has an overload which takes "const char*". Ideally, the JSON library would use string_view or StringPiece, but that's an open source project and so modifying that dependency is out of scope for this change.

PiperOrigin-RevId: 181693172
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
c9ed9bf846c6c8e8566082ce4ac201a529c23355 05-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Add a FlushCaches() method to the FileSystem interface, and provide an implementation for GcsFileSystem.

PiperOrigin-RevId: 180873963
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
b639608a6da140f720636582022a575d7c8a7650 04-Jan-2018 A. Unique TensorFlower <gardener@tensorflow.org> Fix bug causing OOM failure. An output parameter was not assigned in the failure path of GcsFileSystem::LoadBufferFromGCS(). The fix always zeroes the output parameter, and it also changes the consumer of this API so that the output value is only used when the return Status == OK.

PiperOrigin-RevId: 180847708
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
4edaeba3b14e706740ef4160afa257de565ffd6e 21-Dec-2017 Anna R <annarev@google.com> Automated g4 rollback of changelist 179729641

PiperOrigin-RevId: 179742670
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
d69515a21cae5bb002ec75783ef973ebf253fdec 20-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> Add the capability of verbose logging for HTTP requests to the TensorFlow GCS client.

This change allows the GCS client within TensorFlow to log verbose information about HTTP requests to the standard Google logger. (Actually, to the TensorFlow variant of the standard Google logger.)

This capability is disabled by default. It is enabled by setting the environment variable GCS_LOG_HTTP_REQUEST_VERBOSE=1 (or =true).

PiperOrigin-RevId: 179729641
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
17900eb2fa0c144d4899b5867f68c010916448c0 20-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> Convert Status-based call sequence checks to CHECK-based.

Call sequence requirements are correctness requirements; any violation of a correctness requirement is a code defect / bug. Currently, some code in the TF GCS client uses Status objects to report call sequence violations. This tolerates bugs, allowing them to go undetected and uncorrected.

This change converts many call sequence checks to use CHECK, rather than Status. The result is code that is simpler, and that exposes bugs, rather than protecting them.

PiperOrigin-RevId: 179709047
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
3abc6ef02980b0d5fdb226d10cd513122a74c0ea 19-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> Remove a series of allocations and memcpys from the GCS read path (TF infeed path).

The GCS client uses an intermediate std::vector<char> buffer for all reads. This turns out to have a substantial cost, in allocations and in memcpys. During load testing with a simple tool for measuring GCS throughput (but not running TensorFlow), removing this allocation and memcpy increased throughput by about 8%, and significantly reduced steady-state heap memory used. I have not measured the impact when running the full TensorFlow pipeline, but I expect there to be gains, due to the lower memory utilization and the lower cache demand.

PiperOrigin-RevId: 179581563
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
90e42f3ac8c43474633136af4242dca04b6a1e09 16-Dec-2017 Dandelion Man? <dandelion@google.com> Automated g4 rollback of changelist 179260538

PiperOrigin-RevId: 179263865
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9648f8040a559f6cf9bbe0501ba96f2b2c2864b1 16-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> Automated g4 rollback of changelist 179258973

PiperOrigin-RevId: 179260538
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
d55f532867a3670d66460c5ee3b774519542adc1 16-Dec-2017 Dandelion Man? <dandelion@google.com> Merge changes from github.

PiperOrigin-RevId: 179258973
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
7d8ab0e440cf895dceb31f260ce5ae177b84c05d 13-Dec-2017 A. Unique TensorFlower <gardener@tensorflow.org> For many requests, the GCS filesystem client did not provide DNS lookup hints. This change allows all GCS HTTP requests to use the GCS DNS cache. It also simplifies the code, and eliminates a lot of redundant code.

The GCS DNS cache has been simplified and made more general. It is now easy to add more DNS names, simply by adding an entry to the GcsDnsCache::names_ list.

PiperOrigin-RevId: 178830317
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
50784e4ef8d920ed5fe7b3a9d0bafbac073ebb26 12-Dec-2017 Brennan Saeta <saeta@google.com> Automated g4 rollback of changelist 177619402

PiperOrigin-RevId: 178800980
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
8167f3587f3953e191dffca388cbdd4a837aa231 01-Dec-2017 Gunhan Gulsoy <gunan@google.com> Automated g4 rollback of changelist 177614538

PiperOrigin-RevId: 177619402
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
d8e98c8753e3d89e6d4e989e52e910495c4f64ac 01-Dec-2017 Brennan Saeta <saeta@google.com> Customize request timeouts for GCS filesystem.

PiperOrigin-RevId: 177614538
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
d2e7a2e4bf295a23d6a2e86aa7e0636f00cc2d75 29-Nov-2017 Brennan Saeta <saeta@google.com> Add VLOG-ging to gcs_file_system

PiperOrigin-RevId: 177256727
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
e219aeb542779d90a582ffe16f8602cd1b275b22 22-Nov-2017 Brennan Saeta <saeta@google.com> GCS: Perform additional file integrity checks

In order to guard against interrupted reads or other network
problems, we perform additional sanity checks to ensure we
correctly load file blocks from GCS.

PiperOrigin-RevId: 176695887
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9305349a4a6b6c2d265ac81091f855e5560041c4 22-Nov-2017 Brennan Saeta <saeta@google.com> Improve caching behavior of GCS filesystem

On a number of Cloud TPU-related workloads, these changes improve the time to
restore from a checkpoint by ~20x.

PiperOrigin-RevId: 176571963
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
b1d89c147d079ab97356b6a677cbf5ee726313d6 16-Nov-2017 Brennan Saeta <saeta@google.com> Support user-space DNS caching for the GCS filesystem.

In some environments, DNS resolution is unreliable. This change adds an optional userspace caching mechanism to radically reduce the amount of DNS queries sent to upstream resolvers.

PiperOrigin-RevId: 175910642
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
83c2da808e96dc5c9c3e80353d1db58a17502bf1 10-Nov-2017 A. Unique TensorFlower <gardener@tensorflow.org> Removed StringPiece::set and StringPiece::clear, as they have no absl::string_view equivalents.

This will allow for a more convenient transition to absl::string_view.

Calls to set StringPiece::set and StringPiece::clear were replaced with the StringPiece constructor as follows:

string_piece_foo.set(data, size) => string_piece_foo = StringPiece(data, size)
string_piece_foo.clear() => string_piece_foo = StringPiece()

PiperOrigin-RevId: 175326576
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
60205721e1edd791115f8266b84fdd55070d5f1b 29-Sep-2017 Derek Murray <mrry@google.com> Split `HttpRequest` into an abstract interface and concrete `CurlHttpRequest`.

This is a step towards implementing an HTTP client for platforms where we do
not build libcurl.

PiperOrigin-RevId: 170426868
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
0440c77935915fce0d9286ce5e7407b31c6f4975 05-Aug-2017 A. Unique TensorFlower <gardener@tensorflow.org> Add GcsFileSystem caches for Stat and GetMatchingPaths, with configurable maximum age and cache size. Relevant environment variables:

GCS_STAT_CACHE_MAX_AGE (default 0, indicating that the cache is disabled)
GCS_STAT_CACHE_MAX_ENTRIES (default 0, indicating no limit)
GCS_MATCHING_PATHS_CACHE_MAX_AGE (default 0, indicating that the cache is disabled)
GCS_MATCHING_PATHS_CACHE_MAX_ENTRIES (default 0, indicating no limit)

Max age values for these caches are specified in seconds.

Also changed the default GCS read cache block size to 128 MB, so that the block cache is used by default.

PiperOrigin-RevId: 164341936
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
35b606b976de752ee822ace4e290e253bb9482ac 15-Jul-2017 A. Unique TensorFlower <gardener@tensorflow.org> FileBlockCache is now a filesystem-wide shared cache with a configurable maximum size (in total bytes of cached block contents). The default maximum cache size is equal to the block size, and can be overridden by the environment variable GCS_READ_CACHE_MAX_SIZE_MB. In addition, deleting files now flushes them from the block cache, and renaming files flushes both the source and destination files from the block cache.

PiperOrigin-RevId: 162041685
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
a641129c9b0b801bc14da3d87d28777926b2540c 14-Jul-2017 A. Unique TensorFlower <gardener@tensorflow.org> Adds a file cache to the GCS filesystem, with configurable max staleness for file contents. Maximum staleness is specified in seconds in the GCS_READ_CACHE_MAX_STALENESS environment variable, and defaults to 0 (indicating that staleness is not tolerated in a newly opened file). Staleness is measured from the arrival time of the first block in the file's block cache.

PiperOrigin-RevId: 161897769
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
06b22d5d9f4b820734941e056910f698fe3e2405 05-Jul-2017 A. Unique TensorFlower <gardener@tensorflow.org> Add a block cache to the GCS filesystem, with block size defaulted to the readahead buffer size. Additionally make the block size and block count configurable via env variables.

PiperOrigin-RevId: 160977285
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
b45ded11d4d9a8f937004782115d2bbb29b97efd 17-May-2017 Alexey Surkov <surkov@google.com> Make the readahead buffer size configurable via an env variable.

PiperOrigin-RevId: 156238858
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
2ba27efa12283f5a87ea8d81bd75afc46813bd4d 29-Mar-2017 Alexey Surkov <surkov@google.com> Support for domain buckets, e.g gs://bucketname.domain-example.com/...
Change: 151516660
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
6a9236e060f552cba5883e586d01c5edfa168b42 17-Mar-2017 Alexey Surkov <surkov@google.com> Explicilty retry failures of individual deletes in DeleteRecursively.

Otherwise these failuers aren't currently covered by any retry logic.
Change: 150486764
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
a8cd6ff8f1176ea3e7cfd15276051f98e7476500 16-Mar-2017 Alexey Surkov <surkov@google.com> Smarter retry logic for non-idempotent file operations such as RenameFile, DeleteFile or DeleteDir.
Change: 150369708
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
3971c27bd2ea9d18d60df9dade623e352a94e723 14-Mar-2017 Alexey Surkov <surkov@google.com> Better logging for errors.

1) for resumable uploads, log the last causing failure in the final AbortedError
2) log all retry attempts

Logging example from the unittest:
W0309 18:00:39.706445 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 0.995024 seconds (attempt 1 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706562 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 1.39374 seconds (attempt 2 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706605 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 2.63587 seconds (attempt 3 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706652 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 4.30139 seconds (attempt 4 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706693 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 8.32369 seconds (attempt 5 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706751 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 16.4618 seconds (attempt 6 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706820 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 32.2621 seconds (attempt 7 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706867 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 32.2265 seconds (attempt 8 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706903 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 32.8241 seconds (attempt 9 out of 10), caused by: Unavailable: Failed.
W0309 18:00:39.706939 687030 retrying_utils.cc:67] The operation failed and will be automatically retried in 32.4939 seconds (attempt 10 out of 10), caused by: Unavailable: Failed.
Change: 150027572
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
c54417fcf33dc7c52a36b3aa0f138abec5ae5a6b 03-Mar-2017 Alexey Surkov <surkov@google.com> Increase the number of retries to 10.

Also makes file upload retries use the common retry logic.
Change: 149131497
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
bc225bfaa534acc25047fe844f19edc333b7a76a 14-Feb-2017 Peter Hawkins <phawkins@google.com> Fix code that ignores tensorflow::Status.

Add a new tensorflow::Status::IgnoreError() method to mark call sites where a Status has been intentionally ignored.
Change: 147402405
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9306b5c0836fef31ed6d99971dc7e0b192cdeb4b 12-Jan-2017 A. Unique TensorFlower <gardener@tensorflow.org> Keep track of whether a sync is needed to avoid redundant uploads to GCS.
Change: 144355590
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
f97cd45c6b95c6049244842183732aef8c079f8d 15-Nov-2016 A. Unique TensorFlower <gardener@tensorflow.org> Fixing a bug related to using a string piece after the inner data is destroyed.

The string piece holds a reference to the internal buffer_ when this class gets destructed the buffer gets destructed but the stringpiece can still be used outside (it is an input parameter). The fix is to first copy into scratch (which is an input parameter) and then put the scratch in the stringpiece (result).
Change: 139236445
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
c7a49f9fededb98a7c57ac6acfccddc43dd2f8ed 15-Nov-2016 A. Unique TensorFlower <gardener@tensorflow.org> Fixing a bug related to copying to the scratch buffer after read.
Change: 139135051
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
133cf792b23c017adef9c64617bbc5ef809fbe66 12-Nov-2016 A. Unique TensorFlower <gardener@tensorflow.org> Changing http_request to accept a vector for its output buffer.
Change: 138941640
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
8023ee2e4c7ed97e6d3dd57046b789554a04c066 10-Nov-2016 Alexey Surkov <surkov@google.com> Stop remembering when the readahead buffer reached EOF.

This change reverts a previously added optimization for small files and thus unblocks the scenario used by TensorBoard when the same RandomAccessFile object is read for
fetching new content appended to the file.
Change: 138775790
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
879e0accd1c833771c8058d3eb5f2d4f06f895d4 04-Nov-2016 Jonathan Hseu <jhseu@google.com> Change FileExists to return tensorflow::Status.

Also done separately by @llhe at github.com/tensorflow/tensorflow/pull/5370. We needed to do this change internally to fix all callers.

Motivation: The existing FileExists interface doesn't allow callers to distinguish between file not found vs. filesystem errors.

Semantics changes:
- gfile.Exists in Python now throws an exception for filesystem errors. It continues to return true/false if it can accurately determine whether a file exists.
- RecursivelyCreateDir now returns errors for filesystem errors when calling FileExists.
Change: 138224013
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9113b25790bfc4e2da1876a78d74382f776bf02a 03-Nov-2016 Jonathan Hseu <jhseu@google.com> Change path functions to operate on URIs rather than paths.

- Move the URI parsing and creation functions to path.h so that we don't
depend on core/platform from core/lib/io.
- Fixes https://github.com/tensorflow/tensorflow/issues/5316
Change: 138023841
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
5db4fbe3bbf744ba72d986b4795896b8759031c1 02-Nov-2016 Alexey Surkov <surkov@google.com> Make GetMachingPaths also return directory names.

This is now consistent with what other file systems have.
Change: 137892031
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
07ae2d1d606fa3f8f3fb09bcf65b570b3c606173 02-Nov-2016 Jonathan Hseu <jhseu@google.com> Fix issue where we wouldn't descend into subdirectories when listing GCS runs
in TensorBoard.

- Fixes GCS so that it still includes prefixes even if items is empty.
- Change list_directory to use GetChildren() instead of GetMatchingFiles.
GetMatchingFiles in GCS has a quirk where, unlike other filesystems, it
doesn't include directories. There's no obvious fix given the GCS API.
Change: 137885363
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
ce92434fd840086f7a275f41024da93431af71f4 01-Nov-2016 Alexey Surkov <surkov@google.com> Make GetChildren never return a self directory marker.

In GCS, a folder 'gs://bucket/path' can contain a zero-length object 'gs://bucket/path/', which primarily exists to make IsDirectory('gs://bucket/path') return 'true'.

Naturally GetChildren returned the directory marker for the specified directory whenever it existed, represented as an empty string, which violates assumptions that people normally have from this functions.
Change: 137878839
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
014da84b30b55c5579231840dd45e260d18b5f04 25-Oct-2016 Alexey Surkov <surkov@google.com> Better error forwarding in higher-level methods.

The current implementation masks a few errors which prevents retries and
results in irrelevant error logging.

Also remove the already implied strings::StrCat from errors::* macros calls.
Change: 137097532
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
ffdd64b6aae6f2f70f126fcbfc82ce3bfa8ac79c 18-Oct-2016 Alexey Surkov <surkov@google.com> Implements DeleteRecursively for GcsFileSystem.

GcsFileSystem uses a more efficient way to list all ojbects in a folder than the default FileSystem implementation.
Change: 136423015
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
345b7328871cadaa729052ad5a62a47c26f1595e 15-Oct-2016 Alexey Surkov <surkov@google.com> GCS Resumable Upload: use int64 instead of int32 when parsing file offsets.
Change: 136219797
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
5c1821be018d4a626efd0a9cee7844aaa8c69366 15-Oct-2016 Alexey Surkov <surkov@google.com> Account for the case when GCS Resumable Upload returns a Range header prefixed with "bytes=".
Change: 136211474
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
01b5ab1bc850ecff5c35ac6f936f3952b81208cd 27-Sep-2016 Rohan Jain <rohanj@google.com> Move Env::GetMatchingPaths implementation to FileSystem instead.
Change: 134358309
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
8c784c51555db944fbe8c6cff702f7201a5a6463 27-Sep-2016 Alexey Surkov <surkov@google.com> More efficient implementation of GetMatchingPaths for GCS.
Change: 134335319
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
929160abd520849f0280c7804a7915699ba3f547 23-Sep-2016 Jonathan Hseu <jhseu@google.com> Add a ParseURI function and remove the other URI parsing functions.

ParseURI provides all the functionality used by other filesystems right now, so we're able to remove their custom URI parsing code.

- Use ParseURI for URI parsing in GCS and HDFS.
- Note that this fixes a bug where FileSystem::TranslateName("file://foo/bar")
gives "foo/bar" as the path. "file:///" is the correct prefix in that case.
Change: 134009580
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
937d11ae9bd5c36846389192d7475444abd663fb 22-Sep-2016 Alexey Surkov <surkov@google.com> Safety check for cases when RenameFile tries to move a large object to a bucket with
a different location or storage class.

The situation when object.rewrite doesn't return done=true can occur when
1) the target bucket is in a different location or storage class
and
2) the object is relatively large
See comments for https://cloud.google.com/storage/docs/json_api/v1/objects/copy for details. This situations shouldn't happen in the TensorFlow scenarios, which typically
rename the object within the same bucket, but it's useful to have a safety
check with a meaningful failure message.
Change: 134004191
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
96db4c0fe3170982a0eac38a45da796f726fd247 22-Sep-2016 Vijay Vasudevan <vrv@google.com> Make test_benchmark not use RE2. Currently the pattern is not
ever specified by clients, so remove the use of RE2, but leave
comments explaning what we would do.

Also remove unnecessary includes of regexp.h in other files.
Change: 133913048
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9a7e30a21238e4714265f8ab63c45cde80d6df27 15-Sep-2016 Alexey Surkov <surkov@google.com> Bugfixes:
- set CURLOPT_READFUNCTION even when PUT/POST body is empty.
This seems to be solving the problem with hanging requests when PUT/POST body is empty.
- correctly process directory markers when renaming directories
Change: 133202022
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
16a39e515068d0c6141049ea508cab32a527498c 14-Sep-2016 Alexey Surkov <surkov@google.com> Implements RenameFile for folders.
Change: 133094766
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
9e1cc5d5a2d0396c8f0e2bc60c8f445ff6d44446 13-Sep-2016 Alexey Surkov <surkov@google.com> Switches from simple uploads to resumable uploads in GCS.

According to the GCS docs, simple uploads are only recommended for files below 5Mb:
https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload
This CL starts using the resumable upload API, including the retry logic recommended in the doc:
https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload
Change: 133051424
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
1d4bc7abe7468ae1b039bf832c141d5104deeb55 12-Sep-2016 Alexey Surkov <surkov@google.com> Emulate subfolders for GCS to correctly handle directory management operations.
Change: 132893746
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
c2249535e54a68e3784f80ebfcf6caab7fe5a708 09-Sep-2016 Derek Murray <mrry@google.com> Replace `FileStatistics::mode` with `FileStatistics::is_directory`.

The output of `stat()` is platform- and filesystem-dependent, so the
current API that exports a file's mode as a bitfield is not
portable. For example, on POSIX-based systems we use `mode_t` and
`S_ISDIR()` to test whether a file is a directory, whereas on Windows
we would would access the `_S_IFDIR` bit of an `st_mode`
bitfield. Note also that the GCS filesystem would set the mode
arbitrarily as 0600, because there is no direct mapping between GCS
file attributes and POSIX modes.

This CL removes the `mode_t mode` field and replaces it with a `bool
is_directory` field, which corresponds to the only use of that field
that I've been able to find, and which can be set as appropriate in
platform-specific code. If and when other attributes of a file
(e.g. permissions) are needed, these can be handled similarly.
Change: 132698567
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
10272d2bb7275a9e7c0b266928d8d9b3763d8f44 09-Sep-2016 Alexey Surkov <surkov@google.com> Add basic mutex synchronization to GcsFileSystem and GoogleAuthProvider.
Change: 132623564
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
7a1210bdbdade7210d48db287065ecac950338aa 01-Sep-2016 Vincent Vanhoucke <vanhoucke@google.com> Fix ~63 ClangTidy - Performance findings in TensorFlow.
Change: 131891101
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
01d291f7c8d6ae9e9ea29a7c689fedc8f31c1c42 31-Aug-2016 Alexey Surkov <surkov@google.com> Remember when the readahead buffer reaches EOF.

Previously, if a new request had a range ending after EOF, the readhead buffer got invalidated and a new HTTP request were made.
With this change, the buffer will remember that there is no data left and will still be used to answer such requests.
Change: 131761010
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
6e95ddd1eaa585acf555c7bca5cdb6384425e47e 24-Aug-2016 A. Unique TensorFlower <gardener@tensorflow.org> GCS File system optimization.

Current implementation allocates new buffer every time it reads buffer size of bytes from the file.
Buffer can be re-allocated many times for the same file.

After this change buffer gets re-used and grows only when needed.
Change: 131182639
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
2c90008e49b78d1b1731aacd6b4e28d8c8e690ab 24-Aug-2016 Alexey Surkov <surkov@google.com> Implements GcsFileSystem::Stat
Change: 131115272
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
5f4931f2662bf130f34aecab1a8164b7bfa0af57 20-Aug-2016 Alexey Surkov <surkov@google.com> More verbose GCS errors.
Change: 130801797
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
2094bb5349c060516907f02975bcdc6e752d407b 13-Jul-2016 A. Unique TensorFlower <gardener@tensorflow.org> Adding FileSystem::Stat to the core filesystem API. Implemented versions of it for all subclasses except for GCS File System for now.
Change: 127282696
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
26217c20fb0b2766e2c17430340bdacc4f41f5c2 01-Jul-2016 Alexey Surkov <surkov@google.com> Add retry logic to all GCS operations.

Also adds a few minor fixes for Google auth:
- support for the no-auth case (public objects will still work)
- less tolerance for almost expired tokens
- better error logging for failed token retrievals
Change: 126449395
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
3854ea49a44de3eb2e3eb225b9e35fbbd3a965d8 24-Jun-2016 Alexey Surkov <surkov@google.com> Minor improvements to GcsFileSystem.

- adds support of paths pointing to the root of a bucket, e.g gs://bucket
- adds pagination support for GetChildren
- makes a more optimal HTTP request in GetChildren
Change: 125785863
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
8bf25a491b60d223bba11233de9e62f4b0db17e8 23-Jun-2016 Alexey Surkov <surkov@google.com> Add a read-ahead cache to the GCS implementation of RandomAccessFile.

In some cases TensorFlow reads the data via RandomAccessFile in really small
chunks, which doesn't work very efficiently with HTTP requests. Adding a
read-ahead cache significantly boosts the performance.
Change: 125691397
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
209c006578483460e98c114a69d4b9ed6b95efed 17-Jun-2016 Vijay Vasudevan <vrv@google.com> TensorFlow: minor change functions in Env interface.

Switches to return a std::unique_ptr<> to convey transfer of ownership.
Keeps existing functions temporarily for backwards compatibility.

Change file_system.h interface to switch entirely to the new interface,
change all callers. If this breaks someone in the public, the interface
change should be straightforward.
Change: 125127028
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
92f44afcfb35ca4e212df7f8e0bfca245707cc06 10-Jun-2016 A. Unique TensorFlower <nobody@tensorflow.org> Changing GetChildren to not return names with complete gs:// path.
Change: 124503860
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
d94f70b4380385e7ab4cddb68e42bb53c6e18954 08-Jun-2016 A. Unique TensorFlower <nobody@tensorflow.org> Making sure when accessing GCS the object path is url-encoded. According to GCS docs, object path has to be url-encoded.
Change: 124326567
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
c8b59c046895fa5b6d79f73e0b5817330fcfbfc1 02-Jun-2016 A. Unique TensorFlower <nobody@tensorflow.org> Update copyright for 3p/tf/core.
Change: 123900938
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
bb465cdc0ed9c3b9b4f031505ea2294375677807 19-May-2016 Alexey Surkov <surkov@google.com> Google authentication for GCS file system.

Implements an authentication mechanism based on Application Default Credentials:
https://developers.google.com/identity/protocols/application-default-credentials
https://developers.google.com/identity/protocols/OAuth2ServiceAccount
Change: 122741738
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc
ed65e69560a8e2d58f7571fc2dcac269b20c260d 12-May-2016 A. Unique TensorFlower <nobody@tensorflow.org> File system implementation for Google Cloud Storage.

This code implements a file system for file paths starting with gs:// using the HTTP API to Google Cloud Storage. No authentication is implemented yet, so only GCS objects with public access can be used.
Change: 122126085
/external/tensorflow/tensorflow/core/platform/cloud/gcs_file_system.cc