提交 137ad270 编写于 作者: S skylhd 提交者: ob-robot

[OPT] opt lob manager buffer usage

上级 55621f16
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册