fix typo and enlarge major freeze timeout
This commit is contained in:
@ -286,7 +286,7 @@ struct IHashTable {
|
|||||||
virtual int64_t get_used_buckets() const = 0;
|
virtual int64_t get_used_buckets() const = 0;
|
||||||
virtual int64_t get_nbuckets() const = 0;
|
virtual int64_t get_nbuckets() const = 0;
|
||||||
virtual int64_t get_collisions() 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_one_bucket_size() const = 0;
|
||||||
virtual int64_t get_normalized_key_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;
|
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_used_buckets() const override { return used_buckets_; }
|
||||||
int64_t get_nbuckets() const override { return nbuckets_; }
|
int64_t get_nbuckets() const override { return nbuckets_; }
|
||||||
int64_t get_collisions() const override { return collisions_; }
|
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_one_bucket_size() const { return sizeof(Bucket); };
|
||||||
int64_t get_normalized_key_size() const {
|
int64_t get_normalized_key_size() const {
|
||||||
return Prober::get_normalized_key_size();
|
return Prober::get_normalized_key_size();
|
||||||
|
|||||||
@ -35,9 +35,13 @@ public:
|
|||||||
};
|
};
|
||||||
int get_unmatched_rows(JoinTableCtx &ctx, OutputInfo &output_info);
|
int get_unmatched_rows(JoinTableCtx &ctx, OutputInfo &output_info);
|
||||||
void reset() {
|
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) {
|
void free(ObIAllocator *allocator) {
|
||||||
if (NULL != hash_table_) {
|
if (NULL != hash_table_) {
|
||||||
hash_table_->free(allocator);
|
hash_table_->free(allocator);
|
||||||
|
|||||||
@ -433,7 +433,7 @@ private:
|
|||||||
// memory used for dump that it's really used
|
// memory used for dump that it's really used
|
||||||
OB_INLINE int64_t get_cur_mem_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 int64_t get_data_mem_used() { return sql_mem_processor_.get_data_size(); }
|
||||||
OB_INLINE bool need_dump(int64_t mem_used)
|
OB_INLINE bool need_dump(int64_t mem_used)
|
||||||
@ -473,7 +473,7 @@ private:
|
|||||||
{
|
{
|
||||||
int64_t bucket_cnt = profile_.get_bucket_size();
|
int64_t bucket_cnt = profile_.get_bucket_size();
|
||||||
const int64_t DEFAULT_EXTRA_SIZE = 2 * 1024 * 1024;
|
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;
|
return res < 0 ? DEFAULT_EXTRA_SIZE : res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -877,6 +877,13 @@ int ObSqlParameterization::transform_tree(TransformTreeCtx &ctx,
|
|||||||
} else {
|
} else {
|
||||||
ctx.not_param_ = not_param;
|
ctx.not_param_ = not_param;
|
||||||
ctx.ignore_scale_check_ = ignore_scale_check;
|
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) {
|
if (T_ALIAS == root->type_ && 0 == i) {
|
||||||
// alias node的param_num_处理必须等到其第一个子节点转换完之后
|
// alias node的param_num_处理必须等到其第一个子节点转换完之后
|
||||||
// select a + 1 as 'a','a'不能被参数化,但是它在raw_params数组内的下标必须是计算了1的下标之后才能得到
|
// select a + 1 as 'a','a'不能被参数化,但是它在raw_params数组内的下标必须是计算了1的下标之后才能得到
|
||||||
|
|||||||
@ -664,7 +664,7 @@ int ObITabletMdsInterface::obj_to_string_holder_(const T &obj, ObStringHolder &h
|
|||||||
int64_t pos = 0;
|
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
|
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)))) {
|
} 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;
|
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 (FALSE_IT(cur_virtual_info = &mds_node_info_array.at(mds_node_info_array.count() - 1))) {
|
||||||
} else {
|
} else {
|
||||||
if (CLICK_FAIL(ObTabletMdsData::load_mds_dump_kv(allocator, addr, dump_kv))) {
|
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())) {
|
} else if (nullptr == dump_kv || (nullptr != dump_kv && !dump_kv->is_valid())) {
|
||||||
ret = OB_ENTRY_NOT_EXIST;
|
ret = OB_ENTRY_NOT_EXIST;
|
||||||
MDS_LOG_GET(INFO, "dump kv 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_))) {
|
} 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_))) {
|
} 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))) {
|
} 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 {
|
} else {
|
||||||
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
|
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
|
||||||
cur_virtual_info->tablet_id_ = get_tablet_meta_().tablet_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()) {
|
if (!obj.is_valid()) {
|
||||||
MDS_LOG_GET(INFO, "obj is not valid");
|
MDS_LOG_GET(INFO, "obj is not valid");
|
||||||
} else if (CLICK_FAIL(mds_node_info_array.push_back(mds::MdsNodeInfoForVirtualTable()))) {
|
} 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 (FALSE_IT(cur_virtual_info = &mds_node_info_array.at(mds_node_info_array.count() - 1))) {
|
||||||
} else {
|
} else {
|
||||||
if (CLICK_FAIL(obj_to_string_holder_(obj, cur_virtual_info->user_data_))) {
|
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 {
|
} else {
|
||||||
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
|
cur_virtual_info->ls_id_ = get_tablet_meta_().ls_id_;
|
||||||
cur_virtual_info->tablet_id_ = get_tablet_meta_().tablet_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)) {
|
if (OB_FAIL(ret)) {
|
||||||
} else if (CLICK_FAIL(fill_virtual_info_by_obj_(seq_on_tablet, mds::NodePosition::DISK, mds_node_info_array))) {
|
} 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))) {
|
} 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))) {
|
} 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))) {
|
} 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;
|
return ret;
|
||||||
|
|||||||
Reference in New Issue
Block a user