Always use pread for reading cache segments

This commit is contained in:
Nikita Taranov 2023-12-17 18:37:07 +01:00 committed by GitHub
parent 7f675ddf80
commit 587f829eb8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -177,22 +177,13 @@ CachedOnDiskReadBufferFromFile::getCacheReadBuffer(const FileSegment & file_segm
}
ReadSettings local_read_settings{settings};
local_read_settings.local_fs_prefetch = false;
if (local_read_settings.local_fs_method != LocalFSReadMethod::pread_threadpool)
local_read_settings.local_fs_method = LocalFSReadMethod::pread;
if (use_external_buffer)
local_read_settings.local_fs_buffer_size = 0;
cache_file_reader = createReadBufferFromFileBase(
path,
local_read_settings,
std::nullopt,
std::nullopt,
file_segment.getFlagsForLocalRead(),
/*existing_memory=*/nullptr,
/*alignment=*/0,
/*use_external_buffer=*/true);
cache_file_reader
= createReadBufferFromFileBase(path, local_read_settings, std::nullopt, std::nullopt, file_segment.getFlagsForLocalRead());
if (getFileSizeFromReadBuffer(*cache_file_reader) == 0)
throw Exception(ErrorCodes::LOGICAL_ERROR, "Attempt to read from an empty cache file: {}", path);