fix typo and enlarge major freeze timeout

This commit is contained in:
hiddenbomb 2024-02-19 07:00:43 +00:00 committed by ob-robot
parent 5a89709201
commit 2d906552e2
5 changed files with 38 additions and 17 deletions

View File

@ -286,7 +286,7 @@ struct IHashTable {
virtual int64_t get_used_buckets() const = 0;
virtual int64_t get_nbuckets() const = 0;
virtual int64_t get_collisions() const = 0;
virtual int64_t get_bucket_mem_size() const = 0;
virtual int64_t get_mem_used() const = 0;
virtual int64_t get_one_bucket_size() const = 0;
virtual int64_t get_normalized_key_size() const = 0;
virtual void set_diag_info(int64_t used_buckets, int64_t collisions) = 0;
@ -349,7 +349,17 @@ struct HashTable : public IHashTable
int64_t get_used_buckets() const override { return used_buckets_; }
int64_t get_nbuckets() const override { return nbuckets_; }
int64_t get_collisions() const override { return collisions_; }
int64_t get_bucket_mem_size() const override { return NULL == buckets_ ? 0 : buckets_->mem_used(); }
int64_t get_mem_used() const override {
int64_t size = 0;
size = sizeof(*this);
if (NULL != buckets_) {
size += buckets_->mem_used();
}
if (NULL != items_) {
size += items_->mem_used();
}
return size;
}
int64_t get_one_bucket_size() const { return sizeof(Bucket); };
int64_t get_normalized_key_size() const {
return Prober::get_normalized_key_size();

View File

@ -35,9 +35,13 @@ public:
};
int get_unmatched_rows(JoinTableCtx &ctx, OutputInfo &output_info);
void reset() {
// TODO shengle
if (NULL != hash_table_) {
hash_table_->reset();
}
};
int64_t get_bucket_mem_size() const { return hash_table_->get_bucket_mem_size(); }
int64_t get_mem_used() const {
return hash_table_->get_mem_used();
}
void free(ObIAllocator *allocator) {
if (NULL != hash_table_) {
hash_table_->free(allocator);

View File

@ -433,7 +433,7 @@ private:
// memory used for dump that it's really used
OB_INLINE int64_t get_cur_mem_used()
{
return get_mem_used() - join_table_.get_bucket_mem_size() - dumped_fixed_mem_size_;
return get_mem_used() - join_table_.get_mem_used() - dumped_fixed_mem_size_;
}
OB_INLINE int64_t get_data_mem_used() { return sql_mem_processor_.get_data_size(); }
OB_INLINE bool need_dump(int64_t mem_used)
@ -473,7 +473,7 @@ private:
{
int64_t bucket_cnt = profile_.get_bucket_size();
const int64_t DEFAULT_EXTRA_SIZE = 2 * 1024 * 1024;
int64_t res = join_table_.get_bucket_mem_size();
int64_t res = join_table_.get_mem_used();
return res < 0 ? DEFAULT_EXTRA_SIZE : res;
}

View File

@ -877,6 +877,13 @@ int ObSqlParameterization::transform_tree(TransformTreeCtx &ctx,
} else {
ctx.not_param_ = not_param;
ctx.ignore_scale_check_ = ignore_scale_check;
// select a + 1 as 'a' from t where b = ?; 'a' in SQL will be recognized as a constant by fast parser
// In the ps parameterization scenario, 'a' will be added to the param store as a fixed parameter in
// the execute phase. The param store has two parameters, causing correctness problems.
// Therefore, the scene ps parameterization ability of specifying aliases needs to be disabled.
if (T_ALIAS == root->type_ && NULL != root->str_value_) {
ctx.sql_info_->ps_need_parameterized_ = false;
}
if (T_ALIAS == root->type_ && 0 == i) {
// alias node的param_num_处理必须等到其第一个子节点转换完之后
// select a + 1 as 'a','a'不能被参数化,但是它在raw_params数组内的下标必须是计算了1的下标之后才能得到

View File

@ -664,7 +664,7 @@ int ObITabletMdsInterface::obj_to_string_holder_(const T &obj, ObStringHolder &h
int64_t pos = 0;
if (FALSE_IT(databuff_printf(stack_buffer, buffer_size, pos, "%s", to_cstring(obj)))) {// try hard to fill buffer, it's ok if buffer not enough
} else if (OB_FAIL(holder.assign(ObString(pos, stack_buffer)))) {
MDS_LOG(WARN, "fatil to assign to holder");
MDS_LOG(WARN, "fail to assign to holder");
}
return ret;
}
@ -686,16 +686,16 @@ int ObITabletMdsInterface::fill_virtual_info_by_complex_addr_(const ObTabletComp
} else if (FALSE_IT(cur_virtual_info = &mds_node_info_array.at(mds_node_info_array.count() - 1))) {
} else {
if (CLICK_FAIL(ObTabletMdsData::load_mds_dump_kv(allocator, addr, dump_kv))) {
MDS_LOG_GET(WARN, "fatil to read tablet_status_addr");
MDS_LOG_GET(WARN, "fail to read tablet_status_addr");
} else if (nullptr == dump_kv || (nullptr != dump_kv && !dump_kv->is_valid())) {
ret = OB_ENTRY_NOT_EXIST;
MDS_LOG_GET(INFO, "dump kv not exist");
} else if (CLICK_FAIL(obj_to_string_holder_(dump_kv->k_, cur_virtual_info->user_key_))) {
MDS_LOG_GET(WARN, "fatil to fill string holder");
MDS_LOG_GET(WARN, "fail to fill string holder");
} else if (CLICK_FAIL(dump_kv->v_.convert_to_user_mds_node(user_mds_node, get_tablet_meta_().ls_id_, get_tablet_meta_().tablet_id_))) {
MDS_LOG_GET(WARN, "fatil to convert tablet_status_node");
MDS_LOG_GET(WARN, "fail to convert tablet_status_node");
} else if (CLICK_FAIL(user_mds_node.fill_virtual_info(*cur_virtual_info))) {
MDS_LOG_GET(WARN, "fatil to fill virtual info");
MDS_LOG_GET(WARN, "fail to fill virtual info");
} else {
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
cur_virtual_info->tablet_id_ = get_tablet_meta_().tablet_id_;
@ -727,11 +727,11 @@ int ObITabletMdsInterface::fill_virtual_info_by_obj_(const T &obj,
if (!obj.is_valid()) {
MDS_LOG_GET(INFO, "obj is not valid");
} else if (CLICK_FAIL(mds_node_info_array.push_back(mds::MdsNodeInfoForVirtualTable()))) {
MDS_LOG_GET(WARN, "fatil to push_back");
MDS_LOG_GET(WARN, "fail to push_back");
} else if (FALSE_IT(cur_virtual_info = &mds_node_info_array.at(mds_node_info_array.count() - 1))) {
} else {
if (CLICK_FAIL(obj_to_string_holder_(obj, cur_virtual_info->user_data_))) {
MDS_LOG_GET(WARN, "fatil to fill string holder");
MDS_LOG_GET(WARN, "fail to fill string holder");
} else {
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
cur_virtual_info->tablet_id_ = get_tablet_meta_().tablet_id_;
@ -766,13 +766,13 @@ inline int ObITabletMdsInterface::fill_virtual_info(ObIArray<mds::MdsNodeInfoFor
}
if (OB_FAIL(ret)) {
} else if (CLICK_FAIL(fill_virtual_info_by_obj_(seq_on_tablet, mds::NodePosition::DISK, mds_node_info_array))) {
MDS_LOG_GET(WARN, "fatil to fill seq from disk");
MDS_LOG_GET(WARN, "fail to fill seq from disk");
} else if (CLICK_FAIL(fill_virtual_info_by_obj_(get_mds_data_().tablet_status_cache_, mds::NodePosition::TABLET, mds_node_info_array))) {
MDS_LOG_GET(WARN, "fatil to fill tablet_status_ from cache");
MDS_LOG_GET(WARN, "fail to fill tablet_status_ from cache");
} else if (CLICK_FAIL(fill_virtual_info_by_complex_addr_<ObTabletCreateDeleteMdsUserData>(get_mds_data_().tablet_status_.committed_kv_, mds_node_info_array))) {
MDS_LOG_GET(WARN, "fatil to fill tablet_status_");
MDS_LOG_GET(WARN, "fail to fill tablet_status_");
} else if (CLICK_FAIL(fill_virtual_info_by_complex_addr_<ObTabletBindingMdsUserData>(get_mds_data_().aux_tablet_info_.committed_kv_, mds_node_info_array))) {
MDS_LOG_GET(WARN, "fatil to fill aux_tablet_info_");
MDS_LOG_GET(WARN, "fail to fill aux_tablet_info_");
}
return ret;