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),
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(&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)),
hashtables_()
{
lib::ObMemAttr attr(MTL_ID(), blocksstable::OB_ENCODING_LABEL_HT_FACTORY);
allocator_.set_attr(attr);
}
ObEncodingHashTableFactory::~ObEncodingHashTableFactory()

View File

@ -18,6 +18,7 @@
#include "common/object/ob_object.h"
#include "common/ob_action_flag.h"
#include "storage/blocksstable/ob_datum_row.h"
#include "share/rc/ob_tenant_base.h"
namespace oceanbase
{
@ -603,8 +604,7 @@ private:
ret = common::OB_SIZE_OVERFLOW;
STORAGE_LOG(WARN, "size will overflow", K(ret), K_(size), K(block_cnt), K(cur_cnt));
} else {
common::ObMemAttr ma;
ma.label_ = blocksstable::OB_ENCODING_LABEL_PIVOT;
common::ObMemAttr ma(MTL_ID(), blocksstable::OB_ENCODING_LABEL_PIVOT);
for (int64_t i = 0; i < block_cnt && OB_SUCC(ret); ++i) {
if (NULL == block_list_[cur_cnt + i]) {
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_))) {
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) {
ObColDatums *c = OB_NEW(ObColDatums, blocksstable::OB_ENCODING_LABEL_PIVOT);
ObColDatums *c = OB_NEW(ObColDatums, attr);
if (OB_ISNULL(c)) {
ret = OB_ALLOCATE_MEMORY_FAILED;
LOG_WARN("alloc memory failed", K(ret), K(ctx));
} else if (OB_FAIL(all_col_datums_.push_back(c))) {
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;

View File

@ -123,7 +123,7 @@ int ObMultiPrefixTree::HashTable::build(TreeNode &tnode, const int64_t move_step
* ObMultiPrefixTree
*/
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),
tnode_cnt_(0), cnode_cnt_(0), cnode_cnt_limit_(0), ht_(),
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)),
prefix_trees_()
{
lib::ObMemAttr attr(MTL_ID(), blocksstable::OB_ENCODING_LABEL_PREFIX_TREE_FACTORY);
allocator_.set_attr(attr);
}
ObMultiPrefixTreeFactory::~ObMultiPrefixTreeFactory()

View File

@ -32,7 +32,7 @@ ObStringDiffEncoder::ObStringDiffEncoder()
: string_size_(0), common_size_(0), row_store_size_(0),
null_cnt_(0), nope_cnt_(0), first_string_(NULL),
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())
{
}