Change the block_size_ of Macro meta's column_checksums(SEArray) from 8K to sizeof(int64_t) to save memory.

This commit is contained in:
obdev
2023-03-21 15:57:27 +00:00
committed by ob-robot
parent 8b9d8f2f05
commit a0b154e08e
2 changed files with 6 additions and 3 deletions

View File

@ -826,7 +826,10 @@ int ObMacroBlock::get_macro_block_meta(ObDataMacroBlockMeta &macro_meta)
macro_meta.val_.row_store_type_ = spec_->row_store_type_;
macro_meta.val_.schema_version_ = spec_->schema_version_;
macro_meta.val_.snapshot_version_ = spec_->snapshot_version_;
if (OB_NOT_NULL(macro_header_.column_checksum_)) {
if (OB_ISNULL(macro_header_.column_checksum_)) {
} else if (OB_FAIL(macro_meta.val_.column_checksums_.reserve(macro_meta.val_.column_count_))) {
STORAGE_LOG(WARN, "fail to reserve checksum array", K(ret), K(macro_meta));
} else {
for (int64_t i = 0; OB_SUCC(ret) && i < macro_meta.val_.column_count_; ++i) {
if (OB_FAIL(macro_meta.val_.column_checksums_.push_back(macro_header_.column_checksum_[i]))) {
STORAGE_LOG(WARN, "fail to push column checksum", K(ret), K(macro_meta));

View File

@ -48,7 +48,7 @@ ObDataBlockMetaVal::ObDataBlockMetaVal()
snapshot_version_(0),
logic_id_(),
macro_id_(),
column_checksums_(common::OB_MALLOC_NORMAL_BLOCK_SIZE, ModulePageAllocator("MacroMetaChksum", MTL_ID())),
column_checksums_(sizeof(int64_t), ModulePageAllocator("MacroMetaChksum", MTL_ID())),
has_string_out_row_(false),
all_lob_in_row_(false)
{
@ -84,7 +84,7 @@ ObDataBlockMetaVal::ObDataBlockMetaVal(ObIAllocator &allocator)
snapshot_version_(0),
logic_id_(),
macro_id_(),
column_checksums_(common::OB_MALLOC_NORMAL_BLOCK_SIZE, ModulePageAllocator(allocator, "MacroMetaChksum")),
column_checksums_(sizeof(int64_t), ModulePageAllocator(allocator, "MacroMetaChksum")),
has_string_out_row_(false),
all_lob_in_row_(false)
{