Split encoding mem mode to relative tenant.

This commit is contained in:
obdev
2023-06-06 05:18:19 +00:00
committed by ob-robot
parent 90a7245b26
commit d129bae0fe
5 changed files with 12 additions and 7 deletions

View File

@ -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()

View File

@ -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));

View File

@ -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;

View File

@ -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()

View File

@ -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())
{ {
} }