Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1084)

Issue 318563002: [fsp] Introduce BufferingFileStreamReader to read files in bigger chunks. (Closed)

Created:
6 years, 6 months ago by mtomasz
Modified:
6 years, 5 months ago
Reviewers:
hashimoto, kinaba
CC:
chromium-reviews, nkostylev+watch_chromium.org, tzik, nhiroki, oshima+watch_chromium.org, stevenjb+watch_chromium.org, kinuko+fileapi, davemoore+watch_chromium.org
Visibility:
Public.

Description

[fsp] Introduce BufferingFileStreamReader to read files in bigger chunks. Default chunk size is 32KB and it is too small for provided file systems, which require IPC calls for each chunk. Such small chunks cause the IPC overhead to slow down the reading process drastically. Moreover, since there is no streaming support in XMLHttpRequest, returning data in chunks in providing extensions, requires making separate HTTP requests with appriopriate Range header. That introduces another overhead. This patch introduces a wrapper on a FileStreamReader, which converts 32KB chunk requests to 512KB chunk requests to the underlying file stream reader. As a result, the overhead of IPC and HTTP is decreased significantly. TEST=unit_tests: *FileSystemProvider*BufferingFileStreamReader* BUG=248427 Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=282290

Patch Set 1 #

Patch Set 2 : Fixed a test. #

Total comments: 46

Patch Set 3 : Fixed. #

Total comments: 6

Patch Set 4 : Fixed. #

Total comments: 13

Patch Set 5 : Fixed. #

Patch Set 6 : Removed support for sync results + added support for larger buffers. #

Patch Set 7 : #

Total comments: 2

Patch Set 8 : Fixed naming. #

Total comments: 10

Patch Set 9 : Addressed comments. #

Messages

Total messages: 39 (0 generated)
mtomasz
@hashimoto: PTAL. Thanks.
6 years, 6 months ago (2014-06-04 04:06:05 UTC) #1
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc File chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc#newcode24 chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc:24: const int kBufferSize = 512 * 1024; // 512KB. ...
6 years, 6 months ago (2014-06-05 03:18:35 UTC) #2
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc File chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc#newcode24 chrome/browser/chromeos/file_system_provider/fileapi/backend_delegate.cc:24: const int kBufferSize = 512 * 1024; // 512KB. ...
6 years, 6 months ago (2014-06-05 09:22:27 UTC) #3
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h#newcode58 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h:58: scoped_refptr<net::IOBuffer> preloading_buffer_; On 2014/06/05 09:22:27, mtomasz wrote: > On ...
6 years, 6 months ago (2014-06-05 10:07:09 UTC) #4
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h#newcode58 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h:58: scoped_refptr<net::IOBuffer> preloading_buffer_; On 2014/06/05 10:07:10, hashimoto wrote: > On ...
6 years, 6 months ago (2014-06-05 11:27:43 UTC) #5
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h#newcode58 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h:58: scoped_refptr<net::IOBuffer> preloading_buffer_; On 2014/06/05 11:27:43, mtomasz wrote: > On ...
6 years, 6 months ago (2014-06-05 12:31:08 UTC) #6
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h#newcode58 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.h:58: scoped_refptr<net::IOBuffer> preloading_buffer_; On 2014/06/05 12:31:09, hashimoto wrote: > On ...
6 years, 6 months ago (2014-06-06 01:31:03 UTC) #7
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/06 01:31:03, ...
6 years, 6 months ago (2014-06-06 03:36:52 UTC) #8
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/06 03:36:52, ...
6 years, 6 months ago (2014-06-06 04:22:56 UTC) #9
mtomasz
On 2014/06/06 04:22:56, mtomasz wrote: > https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc > File > chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc > (right): > > ...
6 years, 6 months ago (2014-06-09 06:59:33 UTC) #10
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/06 04:22:56, ...
6 years, 6 months ago (2014-06-09 11:12:05 UTC) #11
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/09 11:12:04, ...
6 years, 6 months ago (2014-06-09 13:51:16 UTC) #12
mtomasz
PTAL. https://codereview.chromium.org/318563002/diff/80001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): https://codereview.chromium.org/318563002/diff/80001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc#newcode38 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc:38: return bytes_read; On 2014/06/09 13:51:16, mtomasz wrote: > ...
6 years, 6 months ago (2014-06-10 08:38:42 UTC) #13
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/09 13:51:15, ...
6 years, 6 months ago (2014-06-10 10:43:25 UTC) #14
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/10 10:43:24, ...
6 years, 6 months ago (2014-06-10 12:23:56 UTC) #15
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/10 12:23:55, ...
6 years, 6 months ago (2014-06-11 06:01:04 UTC) #16
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode56 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:56: base::WeakPtr<Logger> GetWeakPtr() { return weak_ptr_factory_.GetWeakPtr(); } On 2014/06/11 06:01:03, ...
6 years, 6 months ago (2014-06-12 04:10:09 UTC) #17
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode155 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:155: base::Bind(&Logger::OnReadResult, logger.GetWeakPtr())); On 2014/06/11 06:01:03, hashimoto wrote: > On ...
6 years, 6 months ago (2014-06-16 04:12:18 UTC) #18
mtomasz
@hashimoto: Ping.
6 years, 6 months ago (2014-06-18 23:18:43 UTC) #19
hashimoto
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode155 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:155: base::Bind(&Logger::OnReadResult, logger.GetWeakPtr())); On 2014/06/16 04:12:17, mtomasz wrote: > On ...
6 years, 6 months ago (2014-06-19 07:27:45 UTC) #20
mtomasz
https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc (right): https://codereview.chromium.org/318563002/diff/20001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc#newcode155 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader_unittest.cc:155: base::Bind(&Logger::OnReadResult, logger.GetWeakPtr())); On 2014/06/19 07:27:45, hashimoto wrote: > On ...
6 years, 6 months ago (2014-06-20 04:20:23 UTC) #21
mtomasz
@hashimoto: Ping.
6 years, 6 months ago (2014-06-24 05:56:34 UTC) #22
mtomasz
Adding @kinaba, since @hashimoto seems busy in MTV. To sum up the long discussion, there ...
6 years, 6 months ago (2014-06-27 00:59:44 UTC) #23
mtomasz
On 2014/06/27 00:59:44, mtomasz wrote: > Adding @kinaba, since @hashimoto seems busy in MTV. > ...
6 years, 6 months ago (2014-06-27 01:04:27 UTC) #24
hashimoto
Sorry for being late to respond. Replying on this issue is becoming more like filling ...
6 years, 6 months ago (2014-06-27 02:17:58 UTC) #25
mtomasz
https://codereview.chromium.org/318563002/diff/80001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): https://codereview.chromium.org/318563002/diff/80001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc#newcode38 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc:38: return bytes_read; TOn 2014/06/27 02:17:58, hashimoto wrote: > On ...
6 years, 6 months ago (2014-06-27 05:00:25 UTC) #26
kinaba
Not sure if I've fully followed the whole discussion, so allow me to post a ...
6 years, 6 months ago (2014-06-27 06:18:19 UTC) #27
kinaba
On 2014/06/27 06:18:19, kinaba wrote: > should be fine. If I'm not missing, there's no ...
6 years, 6 months ago (2014-06-27 06:19:12 UTC) #28
mtomasz
On 2014/06/27 06:19:12, kinaba wrote: > On 2014/06/27 06:18:19, kinaba wrote: > > should be ...
6 years, 5 months ago (2014-07-02 04:22:10 UTC) #29
hashimoto
On 2014/07/02 04:22:10, mtomasz wrote: > On 2014/06/27 06:19:12, kinaba wrote: > > On 2014/06/27 ...
6 years, 5 months ago (2014-07-02 09:05:47 UTC) #30
mtomasz
On 2014/07/02 09:05:47, hashimoto wrote: > On 2014/07/02 04:22:10, mtomasz wrote: > > On 2014/06/27 ...
6 years, 5 months ago (2014-07-02 12:10:17 UTC) #31
mtomasz
@hashimoto, @kinaba: I've removed the Logger class. PTAL.
6 years, 5 months ago (2014-07-04 02:59:41 UTC) #32
kinaba
To me it looks ok, but please wait fpr @hashimoto's comments. https://codereview.chromium.org/318563002/diff/140001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): ...
6 years, 5 months ago (2014-07-07 06:37:30 UTC) #33
mtomasz
https://codereview.chromium.org/318563002/diff/140001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): https://codereview.chromium.org/318563002/diff/140001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc#newcode36 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc:36: CopyFromBuffer(make_scoped_refptr(buffer), buffer_length); On 2014/07/07 06:37:29, kinaba wrote: > maybe: ...
6 years, 5 months ago (2014-07-08 02:08:06 UTC) #34
hashimoto
lgtm https://codereview.chromium.org/318563002/diff/160001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): https://codereview.chromium.org/318563002/diff/160001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc#newcode9 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc:9: #include "base/message_loop/message_loop.h" nit: No need to include this. ...
6 years, 5 months ago (2014-07-08 11:12:55 UTC) #35
mtomasz
https://codereview.chromium.org/318563002/diff/160001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc File chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc (right): https://codereview.chromium.org/318563002/diff/160001/chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc#newcode9 chrome/browser/chromeos/file_system_provider/fileapi/buffering_file_stream_reader.cc:9: #include "base/message_loop/message_loop.h" On 2014/07/08 11:12:55, hashimoto wrote: > nit: ...
6 years, 5 months ago (2014-07-09 02:05:22 UTC) #36
mtomasz
The CQ bit was checked by mtomasz@chromium.org
6 years, 5 months ago (2014-07-10 02:21:48 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/mtomasz@chromium.org/318563002/180001
6 years, 5 months ago (2014-07-10 02:22:51 UTC) #38
commit-bot: I haz the power
6 years, 5 months ago (2014-07-10 08:24:02 UTC) #39
Message was sent while issue was closed.
Change committed as 282290

Powered by Google App Engine
This is Rietveld 408576698