github-actions[bot] commented on code in PR #31213: URL: https://github.com/apache/doris/pull/31213#discussion_r1497110328
########## be/src/io/fs/s3_file_bufferpool.cpp: ########## @@ -17,50 +17,73 @@ #include "s3_file_bufferpool.h" +#include <chrono> +#include <memory> + #include "common/config.h" +#include "common/exception.h" #include "common/logging.h" +#include "common/status.h" +#include "common/sync_point.h" +#include "io/cache/block/block_file_cache_fwd.h" #include "io/cache/block/block_file_segment.h" #include "io/fs/s3_common.h" #include "runtime/exec_env.h" #include "util/defer_op.h" #include "util/slice.h" +#include "vec/common/arena.h" namespace doris { namespace io { bvar::Adder<uint64_t> s3_file_buffer_allocated("s3_file_buffer_allocated"); -bvar::Adder<uint64_t> s3_file_buffer_allocating("s3_file_buffer_allocating"); -/** - * 0. check if the inner memory buffer is empty or not - * 1. relcaim the memory buffer if it's mot empty - */ -void FileBuffer::on_finish() { - if (_buffer.empty()) { - return; +template <typename Allocator = Allocator<false>> +struct Memory : boost::noncopyable, Allocator { + Memory() = default; + explicit Memory(size_t size) : _size(size) { + alloc(size); + s3_file_buffer_allocated << 1; } - S3FileBufferPool::GetInstance()->reclaim(Slice {_buffer.get_data(), _capacity}); - _buffer.clear(); -} + ~Memory() { + dealloc(); + s3_file_buffer_allocated << -1; + } + void alloc(size_t size) { _data = static_cast<char*>(Allocator::alloc(size, 0)); } + void dealloc() { + if (_data == nullptr) { + return; + } + Allocator::free(_data, _size); + _data = nullptr; + } + size_t _size; + char* _data; +}; -/** - * take other buffer's memory space and refresh capacity - */ -void FileBuffer::swap_buffer(Slice& other) { - _buffer = other; - _capacity = _buffer.get_size(); - other.clear(); +struct FileBuffer::PartData { + Memory<> _memory; + PartData() : _memory(config::s3_write_buffer_size) {} Review Comment: warning: use '= default' to define a trivial default constructor [modernize-use-equals-default] ```suggestion PartData() : _memory(config::s3_write_buffer_size) = default; ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@doris.apache.org For additional commands, e-mail: commits-h...@doris.apache.org