[OPT] opt lob manager buffer usage

This commit is contained in:
obdev 2024-02-09 06:49:58 +00:00 committed by ob-robot
parent 641f303439
commit 35bec76639

View File

@ -1345,7 +1345,7 @@ int ObLobManager::append(
}
// prepare write buffer
ObString write_buffer;
int64_t buf_len = ObLobMetaUtil::LOB_OPER_PIECE_DATA_SIZE;
int64_t buf_len = OB_MIN(ObLobMetaUtil::LOB_OPER_PIECE_DATA_SIZE, append_lob_len);
char *buf = nullptr;
if (OB_SUCC(ret)) {
buf = reinterpret_cast<char*>(param.allocator_->alloc(buf_len));
@ -1444,7 +1444,7 @@ int ObLobManager::append(
} else {
// prepare read buffer
ObString read_buffer;
uint64_t read_buff_size = LOB_READ_BUFFER_LEN;
uint64_t read_buff_size = OB_MIN(LOB_READ_BUFFER_LEN, read_param.byte_size_);
char *read_buff = static_cast<char*>(param.allocator_->alloc(read_buff_size));
if (OB_ISNULL(read_buff)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
@ -1704,7 +1704,7 @@ int ObLobManager::append(ObLobAccessParam& param, ObLobLocatorV2& lob, ObLobMeta
}
// prepare read buffer
ObString read_buffer;
uint64_t read_buff_size = LOB_READ_BUFFER_LEN;
uint64_t read_buff_size = OB_MIN(LOB_READ_BUFFER_LEN, append_lob_len);
char *read_buff = static_cast<char*>(param.allocator_->alloc(read_buff_size));
if (OB_ISNULL(read_buff)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
@ -2389,7 +2389,7 @@ int ObLobManager::write_inrow(ObLobAccessParam& param, ObLobLocatorV2& lob, uint
} else {
// prepare read buffer
ObString read_buffer;
uint64_t read_buff_size = LOB_READ_BUFFER_LEN;
uint64_t read_buff_size = OB_MIN(LOB_READ_BUFFER_LEN, read_param.byte_size_);
char *read_buff = static_cast<char*>(param.allocator_->alloc(read_buff_size));
if (OB_ISNULL(read_buff)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
@ -2677,7 +2677,7 @@ int ObLobManager::write_outrow(ObLobAccessParam& param, ObLobLocatorV2& lob, uin
} else {
// prepare read buffer
ObString read_buffer;
uint64_t read_buff_size = LOB_READ_BUFFER_LEN;
uint64_t read_buff_size = OB_MIN(LOB_READ_BUFFER_LEN, read_param.byte_size_);;
char *read_buff = static_cast<char*>(param.allocator_->alloc(read_buff_size));
if (OB_ISNULL(read_buff)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
@ -2796,7 +2796,7 @@ int ObLobManager::write(ObLobAccessParam& param, ObString& data)
ObLobQueryIter *iter = nullptr;
// prepare read buffer
ObString read_buffer;
uint64_t read_buff_size = LOB_READ_BUFFER_LEN;
uint64_t read_buff_size = ObLobMetaUtil::LOB_OPER_PIECE_DATA_SIZE;
char *read_buff = static_cast<char*>(param.allocator_->alloc(read_buff_size));
if (OB_ISNULL(read_buff)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
@ -3601,7 +3601,7 @@ int ObLobQueryIter::open(ObLobAccessParam &param, ObLobCtx& lob_ctx)
} else if (OB_FAIL(lob_ctx.lob_meta_mngr_->scan(param, meta_iter_))) {
LOG_WARN("open meta iter failed.");
} else {
last_data_buf_len_ = ObLobMetaUtil::LOB_OPER_PIECE_DATA_SIZE;
last_data_buf_len_ = OB_MIN(ObLobMetaUtil::LOB_OPER_PIECE_DATA_SIZE, param.byte_size_);
last_data_ptr_ = reinterpret_cast<char*>(param.allocator_->alloc(last_data_buf_len_));
if (OB_ISNULL(last_data_ptr_)) {
ret = OB_ALLOCATE_MEMORY_FAILED;