From 2b5c62d205e06942ff3707dcda252de73c67ace1 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Mon, 15 Jun 2020 00:20:25 -0700 Subject: [PATCH] Fix bug in MultiRead() coalescing introduced in 4fc216649d (#6446). Summary: TryMerge() overzealously created one huge file read request in an attempt to merge smaller disjoint requests. For example, ~30 input requests of ~100 bytes output as 1 request of 100 MiB causing alarmingly large read throughputs to be repeatedly observed by the environment. Signed-off-by: Jason Volk --- file/random_access_file_reader.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/file/random_access_file_reader.cc b/file/random_access_file_reader.cc index 0be3e05469d..5e56ea4ce8b 100644 --- a/file/random_access_file_reader.cc +++ b/file/random_access_file_reader.cc @@ -194,7 +194,7 @@ bool TryMerge(FSReadRequest* dest, const FSReadRequest& src) { size_t src_offset = static_cast(src.offset); size_t dest_end = End(*dest); size_t src_end = End(src); - if (std::max(dest_offset, dest_offset) > std::min(dest_end, src_end)) { + if (std::max(dest_offset, src_offset) > std::min(dest_end, src_end)) { return false; } dest->offset = static_cast(std::min(dest_offset, src_offset));