[Refactor] Remove meaningless return value of RowBlock::init (#4627)

Simplify some code, mainly remove meaningless return value of RowBlock::init.
This commit is contained in:
Yingchun Lai
2020-09-20 20:57:00 +08:00
committed by GitHub
parent 531cf11e6e
commit 2a637f848d
9 changed files with 28 additions and 52 deletions

View File

@ -48,13 +48,12 @@ RowBlock::~RowBlock() {
delete[] _mem_buf;
}
OLAPStatus RowBlock::init(const RowBlockInfo& block_info) {
void RowBlock::init(const RowBlockInfo& block_info) {
_info = block_info;
_null_supported = block_info.null_supported;
_capacity = _info.row_num;
_compute_layout();
_mem_buf = new char[_mem_buf_bytes];
return OLAP_SUCCESS;
}
OLAPStatus RowBlock::finalize(uint32_t row_num) {
@ -82,7 +81,7 @@ void RowBlock::_compute_layout() {
size_t memory_size = 0;
for (int col_id = 0; col_id < _schema->num_columns(); ++col_id) {
const TabletColumn& column = _schema->column(col_id);
if (!column_set.empty() && column_set.find(col_id) == std::end(column_set)) {
if (!column_set.empty() && column_set.find(col_id) == column_set.end()) {
// which may lead BE crash
_field_offset_in_memory.push_back(std::numeric_limits<std::size_t>::max());
continue;

View File

@ -49,7 +49,7 @@ struct RowBlockInfo {
// RowBlock的内部buf中;
// 2. 给定row_index,读取内部各field的值
// 3. 给定查询的key,在RowBlock内做二分查找,返回起点的行偏移;
// 4. 向量化的条件过滤下推到RowBlock级别进行,因此增加完成过滤的数据读取
// 4. 向量化的条件过滤下推到RowBlock级别进行,因此增加完成过滤的数据读取
class RowBlock {
// Please keep these classes as 'friend'. They have to use lots of private fields for
// faster operation.
@ -65,7 +65,7 @@ public:
// row_num是RowBlock的最大行数,fields为了初始化各个field的起始位置。
// 在field都为定长的情况下根据这两个值可以确定RowBlock内部buffer的大小,
// 目前只考虑定长,因此在函数可以分配内存资源。
OLAPStatus init(const RowBlockInfo& block_info);
void init(const RowBlockInfo& block_info);
inline void get_row(uint32_t row_index, RowCursor* cursor) const {
cursor->attach(_mem_buf + row_index * _mem_row_bytes);

View File

@ -359,8 +359,7 @@ OLAPStatus AlphaRowsetReader::_init_merge_ctxs(RowsetReaderContext* read_context
if (new_column_data->rowset_pruning_filter()) {
_stats->rows_stats_filtered += new_column_data->num_rows();
VLOG(3) << "filter segment group in query in condition. version="
<< new_column_data->version().first
<< "-" << new_column_data->version().second;
<< new_column_data->version();
continue;
}
}
@ -369,15 +368,15 @@ OLAPStatus AlphaRowsetReader::_init_merge_ctxs(RowsetReaderContext* read_context
if (ret == DEL_SATISFIED) {
_stats->rows_del_filtered += new_column_data->num_rows();
VLOG(3) << "filter segment group in delete predicate:"
<< new_column_data->version().first << ", " << new_column_data->version().second;
<< new_column_data->version();
continue;
} else if (ret == DEL_PARTIAL_SATISFIED) {
VLOG(3) << "filter segment group partially in delete predicate:"
<< new_column_data->version().first << ", " << new_column_data->version().second;
<< new_column_data->version();
new_column_data->set_delete_status(DEL_PARTIAL_SATISFIED);
} else {
VLOG(3) << "not filter segment group in delete predicate:"
<< new_column_data->version().first << ", " << new_column_data->version().second;
<< new_column_data->version();
new_column_data->set_delete_status(DEL_NOT_SATISFIED);
}
AlphaMergeContext merge_ctx;

View File

@ -107,7 +107,7 @@ OLAPStatus BetaRowsetReader::init(RowsetReaderContext* read_context) {
// the output block's schema should be seek_columns to comform to v1
// TODO(hkp): this should be optimized to use return_columns
output_block_info.column_ids = *(_context->seek_columns);
RETURN_NOT_OK(_output_block->init(output_block_info));
_output_block->init(output_block_info);
_row.reset(new RowCursor());
RETURN_NOT_OK(_row->init(*(read_context->tablet_schema), *(_context->seek_columns)));

View File

@ -97,11 +97,7 @@ OLAPStatus ColumnDataWriter::init() {
RowBlockInfo block_info(0U, _segment_group->get_num_rows_per_row_block());
block_info.null_supported = true;
res = _row_block->init(block_info);
if (OLAP_SUCCESS != res) {
LOG(WARNING) << "fail to initiate row block. [res=" << res << "]";
return res;
}
_row_block->init(block_info);
return OLAP_SUCCESS;
}

View File

@ -769,18 +769,14 @@ OLAPStatus RowBlockAllocator::allocate(RowBlock** row_block, size_t num_rows, bo
RowBlockInfo row_block_info(0U, num_rows);
row_block_info.null_supported = null_supported;
OLAPStatus res = OLAP_SUCCESS;
if ((res = (*row_block)->init(row_block_info)) != OLAP_SUCCESS) {
LOG(WARNING) << "failed to init row block.";
SAFE_DELETE(*row_block);
return res;
}
(*row_block)->init(row_block_info);
_memory_allocated += row_block_size;
VLOG(3) << "RowBlockAllocator::allocate() this=" << this << ", num_rows=" << num_rows
<< ", m_memory_allocated=" << _memory_allocated << ", row_block_addr=" << *row_block;
return res;
VLOG(3) << "RowBlockAllocator::allocate() this=" << this
<< ", num_rows=" << num_rows
<< ", m_memory_allocated=" << _memory_allocated
<< ", row_block_addr=" << *row_block;
return OLAP_SUCCESS;
}
void RowBlockAllocator::release(RowBlock* row_block) {
@ -1766,9 +1762,8 @@ OLAPStatus SchemaChangeHandler::_get_versions_to_be_changed(
vector<Version> span_versions;
RETURN_NOT_OK(base_tablet->capture_consistent_versions(Version(0, rowset->version().second),
&span_versions));
for (uint32_t i = 0; i < span_versions.size(); i++) {
versions_to_be_changed->push_back(span_versions[i]);
}
versions_to_be_changed->insert(versions_to_be_changed->end(),
span_versions.begin(), span_versions.end());
return OLAP_SUCCESS;
}

View File

@ -179,9 +179,6 @@ public:
SchemaChangeHandler() {}
virtual ~SchemaChangeHandler() {}
OLAPStatus process_alter_tablet(AlterTabletType alter_tablet_type,
const TAlterTabletReq& request);
OLAPStatus schema_version_convert(TabletSharedPtr base_tablet, TabletSharedPtr new_tablet,
RowsetSharedPtr* base_rowset, RowsetSharedPtr* new_rowset);

View File

@ -89,8 +89,7 @@ TEST_F(TestRowBlock, init) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
ASSERT_EQ(9 + 17 + 17, block._mem_row_bytes);
}
{
@ -99,8 +98,7 @@ TEST_F(TestRowBlock, init) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = false;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
ASSERT_EQ(9 + 17 + 17, block._mem_row_bytes);
}
{
@ -109,8 +107,7 @@ TEST_F(TestRowBlock, init) {
block_info.row_num = 1024;
block_info.null_supported = true;
block_info.column_ids.push_back(1);
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
// null + sizeof(Slice)
ASSERT_EQ(17, block._mem_row_bytes);
ASSERT_EQ(std::numeric_limits<size_t>::max(), block._field_offset_in_memory[0]);
@ -126,8 +123,7 @@ TEST_F(TestRowBlock, write_and_read) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
RowCursor row;
row.init(tablet_schema);
@ -168,8 +164,7 @@ TEST_F(TestRowBlock, write_and_read_without_nullbyte) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = false;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
RowCursor row;
row.init(tablet_schema);
@ -210,8 +205,7 @@ TEST_F(TestRowBlock, compress_failed) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
RowCursor row;
row.init(tablet_schema);
@ -249,8 +243,7 @@ TEST_F(TestRowBlock, decompress_failed) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
RowCursor row;
row.init(tablet_schema);
@ -288,8 +281,7 @@ TEST_F(TestRowBlock, clear) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
block.finalize(5);
ASSERT_EQ(5, block.row_num());
@ -305,8 +297,7 @@ TEST_F(TestRowBlock, pos_limit) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
block.init(block_info);
// assert init value
ASSERT_EQ(0, block.pos());

View File

@ -90,8 +90,7 @@ TEST_F(TestRowBlockV2, test_convert) {
RowBlockInfo block_info;
block_info.row_num = 1024;
block_info.null_supported = true;
auto res = output_block.init(block_info);
ASSERT_EQ(OLAP_SUCCESS, res);
output_block.init(block_info);
auto tracker = std::make_shared<MemTracker>();
MemPool pool(tracker.get());
for (int i = 0; i < input_block.capacity(); ++i) {