slightly better memory usage in AsynchronousBoundedReadBuffer

This commit is contained in:
Anton Popov 2024-01-29 21:21:52 +00:00
parent a51aa7b668
commit 182d1c08b8

View File

@ -48,11 +48,10 @@ AsynchronousBoundedReadBuffer::AsynchronousBoundedReadBuffer(
const ReadSettings & settings_,
AsyncReadCountersPtr async_read_counters_,
FilesystemReadPrefetchesLogPtr prefetches_log_)
: ReadBufferFromFileBase(chooseBufferSizeForRemoteReading(settings_, impl_->getFileSize()), nullptr, 0)
: ReadBufferFromFileBase(0, nullptr, 0)
, impl(std::move(impl_))
, read_settings(settings_)
, reader(reader_)
, prefetch_buffer(chooseBufferSizeForRemoteReading(read_settings, impl->getFileSize()))
, query_id(CurrentThread::isInitialized() && CurrentThread::get().getQueryContext() != nullptr ? CurrentThread::getQueryId() : "")
, current_reader_id(getRandomASCIIString(8))
, log(getLogger("AsynchronousBoundedReadBuffer"))
@ -115,7 +114,7 @@ void AsynchronousBoundedReadBuffer::prefetch(Priority priority)
last_prefetch_info.submit_time = std::chrono::system_clock::now();
last_prefetch_info.priority = priority;
chassert(prefetch_buffer.size() == chooseBufferSizeForRemoteReading(read_settings, impl->getFileSize()));
prefetch_buffer.resize(chooseBufferSizeForRemoteReading(read_settings, impl->getFileSize()));
prefetch_future = readAsync(prefetch_buffer.data(), prefetch_buffer.size(), priority);
ProfileEvents::increment(ProfileEvents::RemoteFSPrefetches);
}
@ -211,7 +210,7 @@ bool AsynchronousBoundedReadBuffer::nextImpl()
}
else
{
chassert(memory.size() == chooseBufferSizeForRemoteReading(read_settings, impl->getFileSize()));
memory.resize(chooseBufferSizeForRemoteReading(read_settings, impl->getFileSize()));
{
ProfileEventTimeIncrement<Microseconds> watch(ProfileEvents::SynchronousRemoteReadWaitMicroseconds);