[FEAT MERGE] implement Medium Compaction & adaptive Compaction Strategy
This commit is contained in:
@ -697,6 +697,7 @@ int ObPartitionRangeSpliter::get_range_split_info(ObIArray<ObITable *> &tables,
|
||||
} else {
|
||||
// build range paras
|
||||
range_info.store_range_ = &store_range;
|
||||
range_info.tables_ = &tables;
|
||||
bool is_sstable = false;
|
||||
int64_t size = 0;
|
||||
int64_t macro_block_cnt = 0;
|
||||
@ -724,7 +725,6 @@ int ObPartitionRangeSpliter::get_range_split_info(ObIArray<ObITable *> &tables,
|
||||
*range_info.store_range_, index_read_info, table, size, macro_block_cnt))) {
|
||||
STORAGE_LOG(WARN, "Failed to get single range info", K(ret), K(i), KPC(table));
|
||||
} else {
|
||||
range_info.tables_ = &tables;
|
||||
range_info.total_size_ += size;
|
||||
range_info.index_read_info_ = &index_read_info;
|
||||
range_info.max_macro_block_count_ = MAX(macro_block_cnt, range_info.max_macro_block_count_);
|
||||
@ -1575,13 +1575,13 @@ int ObPartitionIncrementalRangeSpliter::ObIncrementalIterator::get_next_row(
|
||||
int ObPartitionIncrementalRangeSpliter::ObIncrementalIterator::prepare_table_access_param()
|
||||
{
|
||||
int ret = OB_SUCCESS;
|
||||
const ObMergeSchema *merge_schema = merge_ctx_.schema_ctx_.merge_schema_;
|
||||
if (OB_FAIL(merge_schema->get_rowkey_column_ids(rowkey_col_ids_))) {
|
||||
const ObStorageSchema *storage_schema = merge_ctx_.get_schema();
|
||||
if (OB_FAIL(storage_schema->get_rowkey_column_ids(rowkey_col_ids_))) {
|
||||
STORAGE_LOG(WARN, "Failed to get rowkey column ids", KR(ret));
|
||||
} else if (OB_FAIL(ObMultiVersionRowkeyHelpper::add_extra_rowkey_cols(rowkey_col_ids_))) {
|
||||
STORAGE_LOG(WARN, "failed to add extra rowkey cols", KR(ret));
|
||||
} else if (OB_FAIL(tbl_read_info_.init(allocator_, merge_schema->get_column_count(),
|
||||
merge_schema->get_rowkey_column_num(),
|
||||
} else if (OB_FAIL(tbl_read_info_.init(allocator_, storage_schema->get_column_count(),
|
||||
storage_schema->get_rowkey_column_num(),
|
||||
lib::is_oracle_mode(), rowkey_col_ids_, true))) {
|
||||
STORAGE_LOG(WARN, "Failed to init columns info", KR(ret));
|
||||
} else if (OB_FAIL(tbl_xs_param_.init_merge_param(
|
||||
@ -1709,7 +1709,7 @@ int ObPartitionIncrementalRangeSpliter::init(compaction::ObTabletMergeCtx &merge
|
||||
merge_ctx_ = &merge_ctx;
|
||||
allocator_ = &allocator;
|
||||
major_sstable_ = static_cast<ObSSTable *>(merge_ctx.tables_handle_.get_table(0));
|
||||
tablet_size_ = merge_ctx.schema_ctx_.merge_schema_->get_tablet_size();
|
||||
tablet_size_ = merge_ctx.get_schema()->get_tablet_size();
|
||||
if (OB_UNLIKELY(tablet_size_ < 0)) {
|
||||
ret = OB_INVALID_ARGUMENT;
|
||||
STORAGE_LOG(WARN, "invalid argument tablet size", KR(ret), K_(tablet_size));
|
||||
@ -1812,8 +1812,7 @@ int ObPartitionIncrementalRangeSpliter::check_is_incremental(bool &is_incrementa
|
||||
int cmp_ret = 0;
|
||||
ObDatumRowkey row_rowkey;
|
||||
ObDatumRowkey end_rowkey;
|
||||
const int64_t rowkey_column_num =
|
||||
merge_ctx_->schema_ctx_.merge_schema_->get_rowkey_column_num();
|
||||
const int64_t rowkey_column_num = merge_ctx_->get_schema()->get_rowkey_column_num();
|
||||
const ObStorageDatumUtils &datum_utils =
|
||||
merge_ctx_->tablet_handle_.get_obj()->get_index_read_info().get_datum_utils();
|
||||
if (OB_FAIL(row_rowkey.assign(row->storage_datums_, rowkey_column_num))) {
|
||||
@ -1911,8 +1910,7 @@ int ObPartitionIncrementalRangeSpliter::get_ranges_by_inc_data(ObDatumRangeArray
|
||||
num_rows_per_range = default_noisy_row_num_skipped_;
|
||||
}
|
||||
|
||||
const int64_t rowkey_column_num =
|
||||
merge_ctx_->schema_ctx_.merge_schema_->get_rowkey_column_num();
|
||||
const int64_t rowkey_column_num = merge_ctx_->get_schema()->get_rowkey_column_num();
|
||||
int64_t count = 0;
|
||||
const ObDatumRow *row = nullptr;
|
||||
ObDatumRowkey rowkey;
|
||||
|
||||
Reference in New Issue
Block a user