Split encoding mem mode to relative tenant.
This commit is contained in:
		| @ -25,7 +25,7 @@ using namespace common; | |||||||
|  |  | ||||||
| ObEncodingHashTable::ObEncodingHashTable() : is_created_(false), bucket_num_(0), | ObEncodingHashTable::ObEncodingHashTable() : is_created_(false), bucket_num_(0), | ||||||
|     node_num_(0), list_num_(0), node_cnt_(0), list_cnt_(0), buckets_(NULL), nodes_(NULL), |     node_num_(0), list_num_(0), node_cnt_(0), list_cnt_(0), buckets_(NULL), nodes_(NULL), | ||||||
|     lists_(NULL), alloc_(blocksstable::OB_ENCODING_LABEL_HASH_TABLE) |     lists_(NULL), alloc_(blocksstable::OB_ENCODING_LABEL_HASH_TABLE, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()) | ||||||
| { | { | ||||||
|   MEMSET(&null_nodes_, 0, sizeof(null_nodes_)); |   MEMSET(&null_nodes_, 0, sizeof(null_nodes_)); | ||||||
|   MEMSET(&nope_nodes_, 0, sizeof(nope_nodes_)); |   MEMSET(&nope_nodes_, 0, sizeof(nope_nodes_)); | ||||||
| @ -226,6 +226,8 @@ ObEncodingHashTableFactory::ObEncodingHashTableFactory() | |||||||
|   : allocator_(OB_MALLOC_NORMAL_BLOCK_SIZE, ObMalloc(blocksstable::OB_ENCODING_LABEL_HT_FACTORY)), |   : allocator_(OB_MALLOC_NORMAL_BLOCK_SIZE, ObMalloc(blocksstable::OB_ENCODING_LABEL_HT_FACTORY)), | ||||||
|     hashtables_() |     hashtables_() | ||||||
| { | { | ||||||
|  |   lib::ObMemAttr attr(MTL_ID(), blocksstable::OB_ENCODING_LABEL_HT_FACTORY); | ||||||
|  |   allocator_.set_attr(attr); | ||||||
| } | } | ||||||
|  |  | ||||||
| ObEncodingHashTableFactory::~ObEncodingHashTableFactory() | ObEncodingHashTableFactory::~ObEncodingHashTableFactory() | ||||||
|  | |||||||
| @ -18,6 +18,7 @@ | |||||||
| #include "common/object/ob_object.h" | #include "common/object/ob_object.h" | ||||||
| #include "common/ob_action_flag.h" | #include "common/ob_action_flag.h" | ||||||
| #include "storage/blocksstable/ob_datum_row.h" | #include "storage/blocksstable/ob_datum_row.h" | ||||||
|  | #include "share/rc/ob_tenant_base.h" | ||||||
|  |  | ||||||
| namespace oceanbase | namespace oceanbase | ||||||
| { | { | ||||||
| @ -603,8 +604,7 @@ private: | |||||||
|       ret = common::OB_SIZE_OVERFLOW; |       ret = common::OB_SIZE_OVERFLOW; | ||||||
|       STORAGE_LOG(WARN, "size will overflow", K(ret), K_(size), K(block_cnt), K(cur_cnt)); |       STORAGE_LOG(WARN, "size will overflow", K(ret), K_(size), K(block_cnt), K(cur_cnt)); | ||||||
|     } else { |     } else { | ||||||
|       common::ObMemAttr ma; |       common::ObMemAttr ma(MTL_ID(), blocksstable::OB_ENCODING_LABEL_PIVOT); | ||||||
|       ma.label_ = blocksstable::OB_ENCODING_LABEL_PIVOT; |  | ||||||
|       for (int64_t i = 0; i < block_cnt && OB_SUCC(ret); ++i) { |       for (int64_t i = 0; i < block_cnt && OB_SUCC(ret); ++i) { | ||||||
|         if (NULL == block_list_[cur_cnt + i]) { |         if (NULL == block_list_[cur_cnt + i]) { | ||||||
|           T *block = static_cast<T *>(common::ob_malloc(BLOCK_SIZE, ma)); |           T *block = static_cast<T *>(common::ob_malloc(BLOCK_SIZE, ma)); | ||||||
|  | |||||||
| @ -306,14 +306,15 @@ int ObMicroBlockEncoder::init_all_col_values(const ObMicroBlockEncodingCtx &ctx) | |||||||
|   if (OB_FAIL(all_col_datums_.reserve(ctx.column_cnt_))) { |   if (OB_FAIL(all_col_datums_.reserve(ctx.column_cnt_))) { | ||||||
|     LOG_WARN("reserve array failed", K(ret), "size", ctx.column_cnt_); |     LOG_WARN("reserve array failed", K(ret), "size", ctx.column_cnt_); | ||||||
|   } |   } | ||||||
|  |   lib::ObMemAttr attr(MTL_ID(), blocksstable::OB_ENCODING_LABEL_PIVOT); | ||||||
|   for (int64_t i = all_col_datums_.count(); i < ctx.column_cnt_ && OB_SUCC(ret); ++i) { |   for (int64_t i = all_col_datums_.count(); i < ctx.column_cnt_ && OB_SUCC(ret); ++i) { | ||||||
|     ObColDatums *c = OB_NEW(ObColDatums, blocksstable::OB_ENCODING_LABEL_PIVOT); |     ObColDatums *c = OB_NEW(ObColDatums, attr); | ||||||
|     if (OB_ISNULL(c)) { |     if (OB_ISNULL(c)) { | ||||||
|       ret = OB_ALLOCATE_MEMORY_FAILED; |       ret = OB_ALLOCATE_MEMORY_FAILED; | ||||||
|       LOG_WARN("alloc memory failed", K(ret), K(ctx)); |       LOG_WARN("alloc memory failed", K(ret), K(ctx)); | ||||||
|     } else if (OB_FAIL(all_col_datums_.push_back(c))) { |     } else if (OB_FAIL(all_col_datums_.push_back(c))) { | ||||||
|       LOG_WARN("push back column values failed", K(ret)); |       LOG_WARN("push back column values failed", K(ret)); | ||||||
|       OB_DELETE(ObColDatums, blocksstable::OB_ENCODING_LABEL_PIVOT, c); |       OB_DELETE(ObColDatums, attr, c); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|   return ret; |   return ret; | ||||||
|  | |||||||
| @ -123,7 +123,7 @@ int ObMultiPrefixTree::HashTable::build(TreeNode &tnode, const int64_t move_step | |||||||
|  *  ObMultiPrefixTree |  *  ObMultiPrefixTree | ||||||
|  */ |  */ | ||||||
| ObMultiPrefixTree::ObMultiPrefixTree() : is_inited_(false), | ObMultiPrefixTree::ObMultiPrefixTree() : is_inited_(false), | ||||||
|     alloc_(blocksstable::OB_ENCODING_LABEL_MULTI_PREFIX_TREE), |     alloc_(blocksstable::OB_ENCODING_LABEL_MULTI_PREFIX_TREE, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()), | ||||||
|     tree_nodes_(NULL), cell_nodes_(NULL), |     tree_nodes_(NULL), cell_nodes_(NULL), | ||||||
|     tnode_cnt_(0), cnode_cnt_(0), cnode_cnt_limit_(0), ht_(), |     tnode_cnt_(0), cnode_cnt_(0), cnode_cnt_limit_(0), ht_(), | ||||||
|     null_cnt_(0), nope_cnt_(0) |     null_cnt_(0), nope_cnt_(0) | ||||||
| @ -458,6 +458,8 @@ ObMultiPrefixTreeFactory::ObMultiPrefixTreeFactory() | |||||||
|     : allocator_(OB_MALLOC_NORMAL_BLOCK_SIZE, ObMalloc(blocksstable::OB_ENCODING_LABEL_PREFIX_TREE_FACTORY)), |     : allocator_(OB_MALLOC_NORMAL_BLOCK_SIZE, ObMalloc(blocksstable::OB_ENCODING_LABEL_PREFIX_TREE_FACTORY)), | ||||||
|       prefix_trees_() |       prefix_trees_() | ||||||
| { | { | ||||||
|  |   lib::ObMemAttr attr(MTL_ID(), blocksstable::OB_ENCODING_LABEL_PREFIX_TREE_FACTORY); | ||||||
|  |   allocator_.set_attr(attr); | ||||||
| } | } | ||||||
|  |  | ||||||
| ObMultiPrefixTreeFactory::~ObMultiPrefixTreeFactory() | ObMultiPrefixTreeFactory::~ObMultiPrefixTreeFactory() | ||||||
|  | |||||||
| @ -32,7 +32,7 @@ ObStringDiffEncoder::ObStringDiffEncoder() | |||||||
|     : string_size_(0), common_size_(0), row_store_size_(0), |     : string_size_(0), common_size_(0), row_store_size_(0), | ||||||
|     null_cnt_(0), nope_cnt_(0), first_string_(NULL), |     null_cnt_(0), nope_cnt_(0), first_string_(NULL), | ||||||
|     header_(NULL), last_change_diff_row_id_(0), |     header_(NULL), last_change_diff_row_id_(0), | ||||||
|     allocator_(blocksstable::OB_ENCODING_LABEL_STRING_DIFF) |     allocator_(blocksstable::OB_ENCODING_LABEL_STRING_DIFF, OB_MALLOC_NORMAL_BLOCK_SIZE, MTL_ID()) | ||||||
| { | { | ||||||
| } | } | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 obdev
					obdev