add ObExtraMediumInfo and remove redundant code
This commit is contained in:
@ -504,6 +504,7 @@ ob_set_subtarget(ob_storage compaction
|
|||||||
compaction/ob_tenant_freeze_info_mgr.cpp
|
compaction/ob_tenant_freeze_info_mgr.cpp
|
||||||
compaction/ob_tenant_tablet_scheduler.cpp
|
compaction/ob_tenant_tablet_scheduler.cpp
|
||||||
compaction/ob_schedule_dag_func.cpp
|
compaction/ob_schedule_dag_func.cpp
|
||||||
|
compaction/ob_extra_medium_info.cpp
|
||||||
compaction/ob_medium_compaction_func.cpp
|
compaction/ob_medium_compaction_func.cpp
|
||||||
compaction/ob_medium_compaction_mgr.cpp
|
compaction/ob_medium_compaction_mgr.cpp
|
||||||
compaction/ob_medium_compaction_info.cpp
|
compaction/ob_medium_compaction_info.cpp
|
||||||
|
|||||||
94
src/storage/compaction/ob_extra_medium_info.cpp
Normal file
94
src/storage/compaction/ob_extra_medium_info.cpp
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2021 OceanBase
|
||||||
|
* OceanBase CE is licensed under Mulan PubL v2.
|
||||||
|
* You can use this software according to the terms and conditions of the Mulan PubL v2.
|
||||||
|
* You may obtain a copy of Mulan PubL v2 at:
|
||||||
|
* http://license.coscl.org.cn/MulanPubL-2.0
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the Mulan PubL v2 for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
|
#include "lib/oblog/ob_log_module.h"
|
||||||
|
#include "lib/utility/ob_macro_utils.h"
|
||||||
|
|
||||||
|
using namespace oceanbase::common;
|
||||||
|
|
||||||
|
namespace oceanbase
|
||||||
|
{
|
||||||
|
namespace compaction
|
||||||
|
{
|
||||||
|
ObExtraMediumInfo::ObExtraMediumInfo()
|
||||||
|
: compat_(MEDIUM_LIST_VERSION),
|
||||||
|
last_compaction_type_(0),
|
||||||
|
wait_check_flag_(0),
|
||||||
|
reserved_(0),
|
||||||
|
last_medium_scn_(0)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
ObExtraMediumInfo::ObExtraMediumInfo(const ObExtraMediumInfo &other)
|
||||||
|
{
|
||||||
|
if (this != &other) {
|
||||||
|
compat_ = other.compat_;
|
||||||
|
last_compaction_type_ = other.last_compaction_type_;
|
||||||
|
wait_check_flag_ = other.wait_check_flag_;
|
||||||
|
reserved_ = other.reserved_;
|
||||||
|
last_medium_scn_ = other.last_medium_scn_;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ObExtraMediumInfo &ObExtraMediumInfo::operator=(const ObExtraMediumInfo &other)
|
||||||
|
{
|
||||||
|
if (this != &other) {
|
||||||
|
compat_ = other.compat_;
|
||||||
|
last_compaction_type_ = other.last_compaction_type_;
|
||||||
|
wait_check_flag_ = other.wait_check_flag_;
|
||||||
|
reserved_ = other.reserved_;
|
||||||
|
last_medium_scn_ = other.last_medium_scn_;
|
||||||
|
}
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ObExtraMediumInfo::reset()
|
||||||
|
{
|
||||||
|
compat_ = MEDIUM_LIST_VERSION;
|
||||||
|
last_compaction_type_ = 0;
|
||||||
|
wait_check_flag_ = 0;
|
||||||
|
reserved_ = 0;
|
||||||
|
last_medium_scn_ = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ObExtraMediumInfo::serialize(char *buf, const int64_t buf_len, int64_t &pos) const
|
||||||
|
{
|
||||||
|
int ret = OB_SUCCESS;
|
||||||
|
LST_DO_CODE(OB_UNIS_ENCODE,
|
||||||
|
info_,
|
||||||
|
last_medium_scn_);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int ObExtraMediumInfo::deserialize(const char *buf, const int64_t data_len, int64_t &pos)
|
||||||
|
{
|
||||||
|
int ret = OB_SUCCESS;
|
||||||
|
LST_DO_CODE(OB_UNIS_DECODE,
|
||||||
|
info_,
|
||||||
|
last_medium_scn_);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int64_t ObExtraMediumInfo::get_serialize_size() const
|
||||||
|
{
|
||||||
|
int64_t len = 0;
|
||||||
|
LST_DO_CODE(OB_UNIS_ADD_LEN,
|
||||||
|
info_,
|
||||||
|
last_medium_scn_);
|
||||||
|
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
} // namespace compaction
|
||||||
|
} // namespace oceanbase
|
||||||
62
src/storage/compaction/ob_extra_medium_info.h
Normal file
62
src/storage/compaction/ob_extra_medium_info.h
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
/**
|
||||||
|
* Copyright (c) 2021 OceanBase
|
||||||
|
* OceanBase CE is licensed under Mulan PubL v2.
|
||||||
|
* You can use this software according to the terms and conditions of the Mulan PubL v2.
|
||||||
|
* You may obtain a copy of Mulan PubL v2 at:
|
||||||
|
* http://license.coscl.org.cn/MulanPubL-2.0
|
||||||
|
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
|
||||||
|
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
|
||||||
|
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
|
||||||
|
* See the Mulan PubL v2 for more details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef OCEANBASE_COMPACTION_OB_EXTRA_MEDIUM_INFO
|
||||||
|
#define OCEANBASE_COMPACTION_OB_EXTRA_MEDIUM_INFO
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include "lib/utility/ob_print_utils.h"
|
||||||
|
|
||||||
|
namespace oceanbase
|
||||||
|
{
|
||||||
|
namespace compaction
|
||||||
|
{
|
||||||
|
class ObExtraMediumInfo
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ObExtraMediumInfo();
|
||||||
|
~ObExtraMediumInfo() = default;
|
||||||
|
ObExtraMediumInfo(const ObExtraMediumInfo &other);
|
||||||
|
ObExtraMediumInfo &operator=(const ObExtraMediumInfo &other);
|
||||||
|
public:
|
||||||
|
void reset();
|
||||||
|
|
||||||
|
int serialize(char *buf, const int64_t buf_len, int64_t &pos) const;
|
||||||
|
int deserialize(const char *buf, const int64_t data_len, int64_t &pos);
|
||||||
|
int64_t get_serialize_size() const;
|
||||||
|
|
||||||
|
TO_STRING_KV(K_(info),
|
||||||
|
K_(compat),
|
||||||
|
K_(last_compaction_type),
|
||||||
|
K_(wait_check_flag),
|
||||||
|
K_(last_medium_scn));
|
||||||
|
public:
|
||||||
|
static constexpr int64_t MEDIUM_LIST_VERSION = 1;
|
||||||
|
static constexpr int32_t MEDIUM_LIST_INFO_RESERVED_BITS = 51;
|
||||||
|
public:
|
||||||
|
union
|
||||||
|
{
|
||||||
|
uint64_t info_;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
uint64_t compat_ : 8;
|
||||||
|
uint64_t last_compaction_type_ : 4; // check inner_table when last_compaction is major
|
||||||
|
uint64_t wait_check_flag_ : 1; // true: need check finish, false: no need check
|
||||||
|
uint64_t reserved_ : MEDIUM_LIST_INFO_RESERVED_BITS;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
int64_t last_medium_scn_;
|
||||||
|
};
|
||||||
|
} // namespace compaction
|
||||||
|
} // namespace oceanbase
|
||||||
|
|
||||||
|
#endif // OCEANBASE_COMPACTION_OB_EXTRA_MEDIUM_INFO
|
||||||
@ -24,6 +24,7 @@
|
|||||||
namespace oceanbase
|
namespace oceanbase
|
||||||
{
|
{
|
||||||
using namespace storage;
|
using namespace storage;
|
||||||
|
using namespace common;
|
||||||
|
|
||||||
namespace compaction
|
namespace compaction
|
||||||
{
|
{
|
||||||
@ -404,11 +405,8 @@ int ObTabletMediumCompactionInfoRecorder::submit_log(
|
|||||||
ObMediumCompactionInfoList::ObMediumCompactionInfoList()
|
ObMediumCompactionInfoList::ObMediumCompactionInfoList()
|
||||||
: is_inited_(false),
|
: is_inited_(false),
|
||||||
allocator_(nullptr),
|
allocator_(nullptr),
|
||||||
compat_(MEDIUM_LIST_VERSION),
|
extra_info_(),
|
||||||
last_compaction_type_(0),
|
medium_info_list_()
|
||||||
wait_check_flag_(0),
|
|
||||||
reserved_(0),
|
|
||||||
last_medium_scn_(0)
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -424,7 +422,6 @@ int ObMediumCompactionInfoList::init(common::ObIAllocator &allocator)
|
|||||||
ret = OB_INIT_TWICE;
|
ret = OB_INIT_TWICE;
|
||||||
LOG_WARN("init twice", K(ret));
|
LOG_WARN("init twice", K(ret));
|
||||||
} else {
|
} else {
|
||||||
compat_ = MEDIUM_LIST_VERSION;
|
|
||||||
allocator_ = &allocator;
|
allocator_ = &allocator;
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
}
|
}
|
||||||
@ -445,7 +442,6 @@ int ObMediumCompactionInfoList::init(
|
|||||||
} else {
|
} else {
|
||||||
allocator_ = &allocator;
|
allocator_ = &allocator;
|
||||||
set_basic_info(*input_list);
|
set_basic_info(*input_list);
|
||||||
compat_ = MEDIUM_LIST_VERSION;
|
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
@ -453,7 +449,7 @@ int ObMediumCompactionInfoList::init(
|
|||||||
|
|
||||||
int ObMediumCompactionInfoList::init(
|
int ObMediumCompactionInfoList::init(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTaletExtraMediumInfo &extra_medium_info,
|
const ObExtraMediumInfo &extra_medium_info,
|
||||||
const ObTabletDumpedMediumInfo &medium_info_list)
|
const ObTabletDumpedMediumInfo &medium_info_list)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
@ -497,10 +493,7 @@ int ObMediumCompactionInfoList::init(
|
|||||||
if (OB_FAIL(ret)) {
|
if (OB_FAIL(ret)) {
|
||||||
reset();
|
reset();
|
||||||
} else {
|
} else {
|
||||||
compat_ = MEDIUM_LIST_VERSION;
|
extra_info_ = extra_medium_info;
|
||||||
last_compaction_type_ = extra_medium_info.last_compaction_type_;
|
|
||||||
last_medium_scn_ = extra_medium_info.last_medium_scn_;
|
|
||||||
wait_check_flag_ = extra_medium_info.wait_check_flag_;
|
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -522,10 +515,9 @@ void ObMediumCompactionInfoList::reset()
|
|||||||
if (OB_NOT_NULL(allocator_)) {
|
if (OB_NOT_NULL(allocator_)) {
|
||||||
reset_list();
|
reset_list();
|
||||||
}
|
}
|
||||||
is_inited_ = false;
|
extra_info_.reset();
|
||||||
info_ = 0;
|
|
||||||
last_medium_scn_ = 0;
|
|
||||||
allocator_ = nullptr;
|
allocator_ = nullptr;
|
||||||
|
is_inited_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ObMediumCompactionInfoList::serialize(char *buf, const int64_t buf_len, int64_t &pos) const
|
int ObMediumCompactionInfoList::serialize(char *buf, const int64_t buf_len, int64_t &pos) const
|
||||||
@ -539,12 +531,10 @@ int ObMediumCompactionInfoList::serialize(char *buf, const int64_t buf_len, int6
|
|||||||
} else if (OB_UNLIKELY(!is_valid())) {
|
} else if (OB_UNLIKELY(!is_valid())) {
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("medium info list is invalid", K(ret), KPC(this));
|
LOG_WARN("medium info list is invalid", K(ret), KPC(this));
|
||||||
} else if (OB_FAIL(serialization::encode_vi64(buf, buf_len, new_pos, info_))) {
|
} else if (OB_FAIL(extra_info_.serialize(buf, buf_len, new_pos))) {
|
||||||
STORAGE_LOG(WARN, "failed to serialize info", K(ret), K(buf_len), K(pos));
|
LOG_WARN("failed to serialize extra info", K(ret), K(buf_len), K(pos));
|
||||||
} else if (OB_FAIL(serialization::encode_vi64(buf, buf_len, new_pos, last_medium_scn_))) {
|
|
||||||
STORAGE_LOG(WARN, "failed to serialize wait_check_medium_scn", K(ret), K(buf_len), K(pos));
|
|
||||||
} else if (OB_FAIL(serialization::encode_vi64(buf, buf_len, new_pos, medium_info_list_.get_size()))) {
|
} else if (OB_FAIL(serialization::encode_vi64(buf, buf_len, new_pos, medium_info_list_.get_size()))) {
|
||||||
LOG_WARN("failed to serialize medium status", K(ret), K(buf_len));
|
LOG_WARN("failed to serialize medium info list count", K(ret), K(buf_len));
|
||||||
} else {
|
} else {
|
||||||
DLIST_FOREACH_X(info, medium_info_list_, OB_SUCC(ret)) {
|
DLIST_FOREACH_X(info, medium_info_list_, OB_SUCC(ret)) {
|
||||||
if (OB_FAIL(static_cast<const ObMediumCompactionInfo *>(info)->serialize(buf, buf_len, new_pos))) {
|
if (OB_FAIL(static_cast<const ObMediumCompactionInfo *>(info)->serialize(buf, buf_len, new_pos))) {
|
||||||
@ -569,6 +559,7 @@ int ObMediumCompactionInfoList::deserialize(
|
|||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
int64_t new_pos = pos;
|
int64_t new_pos = pos;
|
||||||
int64_t deserialize_info = 0;
|
int64_t deserialize_info = 0;
|
||||||
|
int64_t last_medium_scn = 0;
|
||||||
int64_t list_count = 0;
|
int64_t list_count = 0;
|
||||||
if (IS_INIT) {
|
if (IS_INIT) {
|
||||||
ret = OB_INIT_TWICE;
|
ret = OB_INIT_TWICE;
|
||||||
@ -577,7 +568,7 @@ int ObMediumCompactionInfoList::deserialize(
|
|||||||
ret = OB_INVALID_ARGUMENT;
|
ret = OB_INVALID_ARGUMENT;
|
||||||
LOG_WARN("invalid args", K(ret), K(buf), K(data_len), K(pos));
|
LOG_WARN("invalid args", K(ret), K(buf), K(data_len), K(pos));
|
||||||
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &deserialize_info))) {
|
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &deserialize_info))) {
|
||||||
LOG_WARN("failed to deserialize cur medium snapshot", K(ret), K(data_len));
|
LOG_WARN("failed to deserialize info", K(ret), K(data_len));
|
||||||
} else if (0 == deserialize_info) {
|
} else if (0 == deserialize_info) {
|
||||||
if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &list_count))) {
|
if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &list_count))) {
|
||||||
LOG_WARN("failed to deserialize list count", K(ret), K(data_len));
|
LOG_WARN("failed to deserialize list count", K(ret), K(data_len));
|
||||||
@ -585,10 +576,11 @@ int ObMediumCompactionInfoList::deserialize(
|
|||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("list count should be zero in old version medium list", K(ret), K(list_count));
|
LOG_WARN("list count should be zero in old version medium list", K(ret), K(list_count));
|
||||||
}
|
}
|
||||||
} else if (FALSE_IT(info_ = deserialize_info)) {
|
} else if (FALSE_IT(extra_info_.info_ = deserialize_info)) {
|
||||||
} else if (FALSE_IT(allocator_ = &allocator)) { // set allocator to call reset() when deserialize failed
|
} else if (FALSE_IT(allocator_ = &allocator)) { // set allocator to call reset() when deserialize failed
|
||||||
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &last_medium_scn_))) {
|
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &last_medium_scn))) {
|
||||||
LOG_WARN("failed to deserialize wait_check_medium_scn", K(ret), K(data_len));
|
LOG_WARN("failed to deserialize last medium scn", K(ret), K(data_len));
|
||||||
|
} else if (FALSE_IT(extra_info_.last_medium_scn_ = last_medium_scn)) {
|
||||||
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &list_count))) {
|
} else if (OB_FAIL(serialization::decode_vi64(buf, data_len, new_pos, &list_count))) {
|
||||||
LOG_WARN("failed to deserialize list count", K(ret), K(data_len));
|
LOG_WARN("failed to deserialize list count", K(ret), K(data_len));
|
||||||
} else if (OB_UNLIKELY(list_count < 0)) {
|
} else if (OB_UNLIKELY(list_count < 0)) {
|
||||||
@ -624,7 +616,7 @@ int ObMediumCompactionInfoList::deserialize(
|
|||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
LOG_WARN("medium info list is invalid", K(ret), KPC(this));
|
LOG_WARN("medium info list is invalid", K(ret), KPC(this));
|
||||||
} else {
|
} else {
|
||||||
compat_ = MEDIUM_LIST_VERSION;
|
extra_info_.compat_ = ObExtraMediumInfo::MEDIUM_LIST_VERSION;
|
||||||
is_inited_ = true;
|
is_inited_ = true;
|
||||||
pos = new_pos;
|
pos = new_pos;
|
||||||
}
|
}
|
||||||
@ -634,8 +626,7 @@ int ObMediumCompactionInfoList::deserialize(
|
|||||||
int64_t ObMediumCompactionInfoList::get_serialize_size() const
|
int64_t ObMediumCompactionInfoList::get_serialize_size() const
|
||||||
{
|
{
|
||||||
int64_t len = 0;
|
int64_t len = 0;
|
||||||
len += serialization::encoded_length_vi64(info_);
|
len += extra_info_.get_serialize_size();
|
||||||
len += serialization::encoded_length_vi64(last_medium_scn_);
|
|
||||||
len += serialization::encoded_length_vi64(medium_info_list_.get_size());
|
len += serialization::encoded_length_vi64(medium_info_list_.get_size());
|
||||||
DLIST_FOREACH_NORET(info, medium_info_list_){
|
DLIST_FOREACH_NORET(info, medium_info_list_){
|
||||||
len += static_cast<const ObMediumCompactionInfo *>(info)->get_serialize_size();
|
len += static_cast<const ObMediumCompactionInfo *>(info)->get_serialize_size();
|
||||||
@ -650,7 +641,7 @@ void ObMediumCompactionInfoList::gene_info(
|
|||||||
// do nothing
|
// do nothing
|
||||||
} else {
|
} else {
|
||||||
J_OBJ_START();
|
J_OBJ_START();
|
||||||
J_KV("size", size(), K_(last_compaction_type), K_(wait_check_flag), K_(last_medium_scn));
|
J_KV(K_(extra_info), "size", size());
|
||||||
J_COMMA();
|
J_COMMA();
|
||||||
BUF_PRINTF("info_list");
|
BUF_PRINTF("info_list");
|
||||||
J_COLON();
|
J_COLON();
|
||||||
|
|||||||
@ -19,13 +19,13 @@
|
|||||||
#include "storage/meta_mem/ob_tablet_handle.h"
|
#include "storage/meta_mem/ob_tablet_handle.h"
|
||||||
#include "storage/compaction/ob_partition_merge_policy.h"
|
#include "storage/compaction/ob_partition_merge_policy.h"
|
||||||
#include "storage/compaction/ob_medium_compaction_info.h"
|
#include "storage/compaction/ob_medium_compaction_info.h"
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
|
|
||||||
namespace oceanbase
|
namespace oceanbase
|
||||||
{
|
{
|
||||||
namespace storage
|
namespace storage
|
||||||
{
|
{
|
||||||
class ObTablet;
|
class ObTablet;
|
||||||
class ObTaletExtraMediumInfo;
|
|
||||||
class ObTabletDumpedMediumInfo;
|
class ObTabletDumpedMediumInfo;
|
||||||
}
|
}
|
||||||
namespace compaction
|
namespace compaction
|
||||||
@ -100,7 +100,7 @@ public:
|
|||||||
|
|
||||||
int init(
|
int init(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTaletExtraMediumInfo &extra_medium_info,
|
const ObExtraMediumInfo &extra_medium_info,
|
||||||
const ObTabletDumpedMediumInfo &medium_info_list);
|
const ObTabletDumpedMediumInfo &medium_info_list);
|
||||||
|
|
||||||
void reset();
|
void reset();
|
||||||
@ -112,8 +112,8 @@ public:
|
|||||||
return inner_is_valid();
|
return inner_is_valid();
|
||||||
}
|
}
|
||||||
OB_INLINE const MediumInfoList &get_list() const { return medium_info_list_; }
|
OB_INLINE const MediumInfoList &get_list() const { return medium_info_list_; }
|
||||||
OB_INLINE int64_t get_wait_check_medium_scn() const { return wait_check_flag_ ? last_medium_scn_ : 0; }
|
OB_INLINE int64_t get_wait_check_medium_scn() const { return extra_info_.wait_check_flag_ ? extra_info_.last_medium_scn_ : 0; }
|
||||||
OB_INLINE bool need_check_finish() const { return wait_check_flag_; }
|
OB_INLINE bool need_check_finish() const { return extra_info_.wait_check_flag_; }
|
||||||
// check status on serialized medium list
|
// check status on serialized medium list
|
||||||
OB_INLINE bool could_schedule_next_round() const
|
OB_INLINE bool could_schedule_next_round() const
|
||||||
{
|
{
|
||||||
@ -122,15 +122,15 @@ public:
|
|||||||
const ObMediumCompactionInfo *get_next_schedule_medium_info(const int64_t last_major_snapshot) const;
|
const ObMediumCompactionInfo *get_next_schedule_medium_info(const int64_t last_major_snapshot) const;
|
||||||
OB_INLINE ObMediumCompactionInfo::ObCompactionType get_last_compaction_type() const
|
OB_INLINE ObMediumCompactionInfo::ObCompactionType get_last_compaction_type() const
|
||||||
{
|
{
|
||||||
return (ObMediumCompactionInfo::ObCompactionType)last_compaction_type_;
|
return static_cast<ObMediumCompactionInfo::ObCompactionType>(extra_info_.last_compaction_type_);
|
||||||
}
|
}
|
||||||
OB_INLINE int64_t get_last_compaction_scn() const
|
OB_INLINE int64_t get_last_compaction_scn() const
|
||||||
{
|
{
|
||||||
return last_medium_scn_;
|
return extra_info_.last_medium_scn_;
|
||||||
}
|
}
|
||||||
OB_INLINE uint64_t get_union_info() const
|
OB_INLINE uint64_t get_union_info() const
|
||||||
{
|
{
|
||||||
return info_;
|
return extra_info_.info_;
|
||||||
}
|
}
|
||||||
|
|
||||||
// serialize & deserialize
|
// serialize & deserialize
|
||||||
@ -147,42 +147,26 @@ public:
|
|||||||
const ObMediumCompactionInfo &medium_info,
|
const ObMediumCompactionInfo &medium_info,
|
||||||
const ObITable *last_major_sstable,
|
const ObITable *last_major_sstable,
|
||||||
const bool force_check);
|
const bool force_check);
|
||||||
TO_STRING_KV(K_(is_inited), K_(info), K_(last_compaction_type), K_(wait_check_flag), K_(last_medium_scn),
|
TO_STRING_KV(K_(is_inited), K_(extra_info), "list_size", size(), K_(medium_info_list));
|
||||||
"list_size", size(), K_(medium_info_list));
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void reset_list();
|
void reset_list();
|
||||||
OB_INLINE bool inner_is_valid() const
|
OB_INLINE bool inner_is_valid() const
|
||||||
{
|
{
|
||||||
return last_compaction_type_ < ObMediumCompactionInfo::COMPACTION_TYPE_MAX
|
return extra_info_.last_compaction_type_ < ObMediumCompactionInfo::COMPACTION_TYPE_MAX
|
||||||
&& last_medium_scn_ >= 0 && size() >= 0;
|
&& extra_info_.last_medium_scn_ >= 0 && size() >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
OB_INLINE void set_basic_info(const ObMediumCompactionInfoList &input_list)
|
OB_INLINE void set_basic_info(const ObMediumCompactionInfoList &input_list)
|
||||||
{
|
{
|
||||||
last_compaction_type_ = input_list.last_compaction_type_;
|
extra_info_ = input_list.extra_info_;
|
||||||
last_medium_scn_ = input_list.last_medium_scn_;
|
|
||||||
wait_check_flag_ = input_list.wait_check_flag_;
|
|
||||||
}
|
}
|
||||||
private:
|
|
||||||
static const int64_t MEDIUM_LIST_VERSION = 1;
|
|
||||||
static const int32_t MEDIUM_LIST_INFO_RESERVED_BITS = 51;
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool is_inited_;
|
bool is_inited_;
|
||||||
common::ObIAllocator *allocator_;
|
common::ObIAllocator *allocator_;
|
||||||
|
|
||||||
// need serialize
|
ObExtraMediumInfo extra_info_;
|
||||||
union {
|
|
||||||
uint64_t info_;
|
|
||||||
struct {
|
|
||||||
uint64_t compat_ : 8;
|
|
||||||
uint64_t last_compaction_type_ : 4; // check inner_table when last_compaction is major
|
|
||||||
uint64_t wait_check_flag_ : 1; // true: need check finish, false: don't need check
|
|
||||||
uint64_t reserved_ : MEDIUM_LIST_INFO_RESERVED_BITS;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
int64_t last_medium_scn_; // record last finish medium_scn
|
|
||||||
|
|
||||||
MediumInfoList medium_info_list_; // need for compat, will not store any MediumCompactionInfo after 4.2
|
MediumInfoList medium_info_list_; // need for compat, will not store any MediumCompactionInfo after 4.2
|
||||||
};
|
};
|
||||||
|
|||||||
@ -31,16 +31,18 @@
|
|||||||
#include "share/schema/ob_table_schema.h"
|
#include "share/schema/ob_table_schema.h"
|
||||||
#include "share/schema/ob_tenant_schema_service.h"
|
#include "share/schema/ob_tenant_schema_service.h"
|
||||||
#include "share/ob_tablet_autoincrement_service.h"
|
#include "share/ob_tablet_autoincrement_service.h"
|
||||||
#include "storage/access/ob_dml_param.h"
|
|
||||||
#include "storage/ob_dml_running_ctx.h"
|
#include "storage/ob_dml_running_ctx.h"
|
||||||
#include "storage/ob_i_store.h"
|
#include "storage/ob_i_store.h"
|
||||||
#include "storage/ob_i_table.h"
|
#include "storage/ob_i_table.h"
|
||||||
#include "storage/ob_row_reshape.h"
|
#include "storage/ob_row_reshape.h"
|
||||||
#include "storage/ob_sync_tablet_seq_clog.h"
|
#include "storage/ob_sync_tablet_seq_clog.h"
|
||||||
#include "storage/ob_storage_schema.h"
|
#include "storage/ob_storage_schema.h"
|
||||||
|
#include "storage/ob_tenant_tablet_stat_mgr.h"
|
||||||
|
#include "storage/access/ob_dml_param.h"
|
||||||
#include "storage/blocksstable/ob_sstable.h"
|
#include "storage/blocksstable/ob_sstable.h"
|
||||||
#include "storage/blocksstable/ob_sstable_sec_meta_iterator.h"
|
#include "storage/blocksstable/ob_sstable_sec_meta_iterator.h"
|
||||||
#include "storage/blocksstable/ob_storage_cache_suite.h"
|
#include "storage/blocksstable/ob_storage_cache_suite.h"
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
#include "storage/compaction/ob_tenant_freeze_info_mgr.h"
|
#include "storage/compaction/ob_tenant_freeze_info_mgr.h"
|
||||||
#include "storage/compaction/ob_tenant_tablet_scheduler.h"
|
#include "storage/compaction/ob_tenant_tablet_scheduler.h"
|
||||||
#include "storage/memtable/ob_memtable.h"
|
#include "storage/memtable/ob_memtable.h"
|
||||||
@ -60,15 +62,13 @@
|
|||||||
#include "storage/tablet/ob_tablet_create_delete_helper.h"
|
#include "storage/tablet/ob_tablet_create_delete_helper.h"
|
||||||
#include "storage/tablet/ob_tablet_memtable_mgr.h"
|
#include "storage/tablet/ob_tablet_memtable_mgr.h"
|
||||||
#include "storage/tablet/ob_tablet_ddl_info.h"
|
#include "storage/tablet/ob_tablet_ddl_info.h"
|
||||||
|
#include "storage/tablet/ob_tablet_medium_info_reader.h"
|
||||||
#include "storage/tablet/ob_tablet_mds_node_dump_operator.h"
|
#include "storage/tablet/ob_tablet_mds_node_dump_operator.h"
|
||||||
#include "storage/tablet/ob_tablet_create_delete_mds_user_data.h"
|
#include "storage/tablet/ob_tablet_create_delete_mds_user_data.h"
|
||||||
#include "storage/tablet/ob_tablet_binding_mds_user_data.h"
|
#include "storage/tablet/ob_tablet_binding_mds_user_data.h"
|
||||||
#include "storage/tx/ob_trans_part_ctx.h"
|
#include "storage/tx/ob_trans_part_ctx.h"
|
||||||
#include "storage/tx/ob_trans_service.h"
|
#include "storage/tx/ob_trans_service.h"
|
||||||
#include "storage/tx_storage/ob_ls_service.h"
|
#include "storage/tx_storage/ob_ls_service.h"
|
||||||
#include "storage/ob_tenant_tablet_stat_mgr.h"
|
|
||||||
#include "storage/blocksstable/ob_storage_cache_suite.h"
|
|
||||||
#include "storage/tablet/ob_tablet_medium_info_reader.h"
|
|
||||||
|
|
||||||
namespace oceanbase
|
namespace oceanbase
|
||||||
{
|
{
|
||||||
@ -5506,7 +5506,7 @@ int ObTablet::set_initial_state(const bool initial_state)
|
|||||||
int ObTablet::load_medium_info_list(
|
int ObTablet::load_medium_info_list(
|
||||||
common::ObArenaAllocator &allocator,
|
common::ObArenaAllocator &allocator,
|
||||||
const ObTabletComplexAddr<oceanbase::storage::ObTabletDumpedMediumInfo> &complex_addr,
|
const ObTabletComplexAddr<oceanbase::storage::ObTabletDumpedMediumInfo> &complex_addr,
|
||||||
const ObTaletExtraMediumInfo &extra_info,
|
const compaction::ObExtraMediumInfo &extra_info,
|
||||||
compaction::ObMediumCompactionInfoList &medium_info_list)
|
compaction::ObMediumCompactionInfoList &medium_info_list)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
|||||||
@ -70,6 +70,12 @@ namespace blocksstable
|
|||||||
{
|
{
|
||||||
class ObSSTable;
|
class ObSSTable;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace compaction
|
||||||
|
{
|
||||||
|
class ObExtraMediumInfo;
|
||||||
|
}
|
||||||
|
|
||||||
namespace transaction
|
namespace transaction
|
||||||
{
|
{
|
||||||
class ObTransID;
|
class ObTransID;
|
||||||
@ -631,7 +637,7 @@ private:
|
|||||||
static int load_medium_info_list(
|
static int load_medium_info_list(
|
||||||
common::ObArenaAllocator &allocator,
|
common::ObArenaAllocator &allocator,
|
||||||
const ObTabletComplexAddr<oceanbase::storage::ObTabletDumpedMediumInfo> &complex_addr,
|
const ObTabletComplexAddr<oceanbase::storage::ObTabletDumpedMediumInfo> &complex_addr,
|
||||||
const ObTaletExtraMediumInfo &extra_info,
|
const compaction::ObExtraMediumInfo &extra_info,
|
||||||
compaction::ObMediumCompactionInfoList &medium_info_list);
|
compaction::ObMediumCompactionInfoList &medium_info_list);
|
||||||
int set_initial_state(const bool initial_state);
|
int set_initial_state(const bool initial_state);
|
||||||
|
|
||||||
|
|||||||
@ -22,55 +22,6 @@ namespace oceanbase
|
|||||||
{
|
{
|
||||||
namespace storage
|
namespace storage
|
||||||
{
|
{
|
||||||
ObTaletExtraMediumInfo::ObTaletExtraMediumInfo()
|
|
||||||
: compat_(MEDIUM_LIST_VERSION),
|
|
||||||
last_compaction_type_(0),
|
|
||||||
wait_check_flag_(0),
|
|
||||||
reserved_(0),
|
|
||||||
last_medium_scn_(0)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void ObTaletExtraMediumInfo::reset()
|
|
||||||
{
|
|
||||||
compat_ = MEDIUM_LIST_VERSION;
|
|
||||||
last_compaction_type_ = 0;
|
|
||||||
wait_check_flag_ = 0;
|
|
||||||
reserved_ = 0;
|
|
||||||
last_medium_scn_ = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ObTaletExtraMediumInfo::serialize(char *buf, const int64_t buf_len, int64_t &pos) const
|
|
||||||
{
|
|
||||||
int ret = OB_SUCCESS;
|
|
||||||
LST_DO_CODE(OB_UNIS_ENCODE,
|
|
||||||
info_,
|
|
||||||
last_medium_scn_);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int ObTaletExtraMediumInfo::deserialize(const char *buf, const int64_t data_len, int64_t &pos)
|
|
||||||
{
|
|
||||||
int ret = OB_SUCCESS;
|
|
||||||
LST_DO_CODE(OB_UNIS_DECODE,
|
|
||||||
info_,
|
|
||||||
last_medium_scn_);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
int64_t ObTaletExtraMediumInfo::get_serialize_size() const
|
|
||||||
{
|
|
||||||
int64_t len = 0;
|
|
||||||
LST_DO_CODE(OB_UNIS_ADD_LEN,
|
|
||||||
info_,
|
|
||||||
last_medium_scn_);
|
|
||||||
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
ObTabletFullMediumInfo::ObTabletFullMediumInfo()
|
ObTabletFullMediumInfo::ObTabletFullMediumInfo()
|
||||||
: extra_medium_info_(),
|
: extra_medium_info_(),
|
||||||
medium_info_list_()
|
medium_info_list_()
|
||||||
|
|||||||
@ -16,6 +16,7 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include "lib/utility/ob_print_utils.h"
|
#include "lib/utility/ob_print_utils.h"
|
||||||
#include "storage/compaction/ob_compaction_util.h"
|
#include "storage/compaction/ob_compaction_util.h"
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
#include "storage/tablet/ob_tablet_dumped_medium_info.h"
|
#include "storage/tablet/ob_tablet_dumped_medium_info.h"
|
||||||
|
|
||||||
namespace oceanbase
|
namespace oceanbase
|
||||||
@ -27,41 +28,6 @@ class ObIAllocator;
|
|||||||
|
|
||||||
namespace storage
|
namespace storage
|
||||||
{
|
{
|
||||||
class ObTaletExtraMediumInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ObTaletExtraMediumInfo();
|
|
||||||
~ObTaletExtraMediumInfo() = default;
|
|
||||||
public:
|
|
||||||
void reset();
|
|
||||||
|
|
||||||
int serialize(char *buf, const int64_t buf_len, int64_t &pos) const;
|
|
||||||
int deserialize(const char *buf, const int64_t data_len, int64_t &pos);
|
|
||||||
int64_t get_serialize_size() const;
|
|
||||||
|
|
||||||
TO_STRING_KV(K_(info),
|
|
||||||
K_(compat),
|
|
||||||
K_(last_compaction_type),
|
|
||||||
K_(wait_check_flag),
|
|
||||||
K_(last_medium_scn));
|
|
||||||
private:
|
|
||||||
static const int64_t MEDIUM_LIST_VERSION = 1;
|
|
||||||
static const int32_t MEDIUM_LIST_INFO_RESERVED_BITS = 51;
|
|
||||||
public:
|
|
||||||
union
|
|
||||||
{
|
|
||||||
uint64_t info_;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
uint64_t compat_ : 8;
|
|
||||||
uint64_t last_compaction_type_ : 4; // check inner_table when last_compaction is major
|
|
||||||
uint64_t wait_check_flag_ : 1; // true: need check finish, false: don't need check
|
|
||||||
uint64_t reserved_ : MEDIUM_LIST_INFO_RESERVED_BITS;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
int64_t last_medium_scn_;
|
|
||||||
};
|
|
||||||
|
|
||||||
class ObTabletFullMediumInfo
|
class ObTabletFullMediumInfo
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@ -79,7 +45,7 @@ public:
|
|||||||
|
|
||||||
TO_STRING_KV(K_(extra_medium_info), K_(medium_info_list));
|
TO_STRING_KV(K_(extra_medium_info), K_(medium_info_list));
|
||||||
public:
|
public:
|
||||||
ObTaletExtraMediumInfo extra_medium_info_;
|
compaction::ObExtraMediumInfo extra_medium_info_;
|
||||||
ObTabletDumpedMediumInfo medium_info_list_;
|
ObTabletDumpedMediumInfo medium_info_list_;
|
||||||
};
|
};
|
||||||
} // namespace storage
|
} // namespace storage
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
#include "lib/utility/ob_macro_utils.h"
|
#include "lib/utility/ob_macro_utils.h"
|
||||||
#include "storage/blocksstable/ob_storage_cache_suite.h"
|
#include "storage/blocksstable/ob_storage_cache_suite.h"
|
||||||
#include "storage/compaction/ob_medium_compaction_mgr.h"
|
#include "storage/compaction/ob_medium_compaction_mgr.h"
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
#include "storage/tablet/ob_tablet_full_memory_mds_data.h"
|
#include "storage/tablet/ob_tablet_full_memory_mds_data.h"
|
||||||
#include "storage/tablet/ob_tablet_obj_load_helper.h"
|
#include "storage/tablet/ob_tablet_obj_load_helper.h"
|
||||||
#include "ob_i_tablet_mds_interface.h"
|
#include "ob_i_tablet_mds_interface.h"
|
||||||
@ -529,7 +530,7 @@ int ObTabletMdsData::do_init(
|
|||||||
int ObTabletMdsData::init_medium_info_list(
|
int ObTabletMdsData::init_medium_info_list(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info,
|
const compaction::ObExtraMediumInfo &old_extra_medium_info,
|
||||||
const int64_t finish_medium_scn,
|
const int64_t finish_medium_scn,
|
||||||
const ObMergeType merge_type)
|
const ObMergeType merge_type)
|
||||||
{
|
{
|
||||||
@ -570,7 +571,7 @@ int ObTabletMdsData::init_medium_info_list(
|
|||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTabletFullMediumInfo &full_memory_medium_info_list,
|
const ObTabletFullMediumInfo &full_memory_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info,
|
const compaction::ObExtraMediumInfo &old_extra_medium_info,
|
||||||
const int64_t finish_medium_scn)
|
const int64_t finish_medium_scn)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
@ -625,7 +626,7 @@ int ObTabletMdsData::init_medium_info_list(
|
|||||||
int ObTabletMdsData::init_with_update_medium_info(
|
int ObTabletMdsData::init_with_update_medium_info(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info)
|
const compaction::ObExtraMediumInfo &old_extra_medium_info)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
const int64_t finish_medium_scn = old_extra_medium_info.last_medium_scn_;
|
const int64_t finish_medium_scn = old_extra_medium_info.last_medium_scn_;
|
||||||
|
|||||||
@ -35,6 +35,7 @@ namespace compaction
|
|||||||
class ObMediumCompactionInfoKey;
|
class ObMediumCompactionInfoKey;
|
||||||
class ObMediumCompactionInfo;
|
class ObMediumCompactionInfo;
|
||||||
class ObMediumCompactionInfoList;
|
class ObMediumCompactionInfoList;
|
||||||
|
class ObExtraMediumInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace storage
|
namespace storage
|
||||||
@ -168,19 +169,19 @@ private:
|
|||||||
int init_medium_info_list(
|
int init_medium_info_list(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info,
|
const compaction::ObExtraMediumInfo &old_extra_medium_info,
|
||||||
const int64_t finish_medium_scn = 0,
|
const int64_t finish_medium_scn = 0,
|
||||||
const ObMergeType merge_type = ObMergeType::MERGE_TYPE_MAX);
|
const ObMergeType merge_type = ObMergeType::MERGE_TYPE_MAX);
|
||||||
int init_medium_info_list(
|
int init_medium_info_list(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTabletFullMediumInfo &full_memory_medium_info_list,
|
const ObTabletFullMediumInfo &full_memory_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info,
|
const compaction::ObExtraMediumInfo &old_extra_medium_info,
|
||||||
const int64_t finish_medium_scn);
|
const int64_t finish_medium_scn);
|
||||||
int init_with_update_medium_info(
|
int init_with_update_medium_info(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
const ObTabletDumpedMediumInfo *old_medium_info_list,
|
||||||
const ObTaletExtraMediumInfo &old_extra_medium_info);
|
const compaction::ObExtraMediumInfo &old_extra_medium_info);
|
||||||
static int fuse_mds_dump_node(
|
static int fuse_mds_dump_node(
|
||||||
common::ObIAllocator &allocator,
|
common::ObIAllocator &allocator,
|
||||||
const ObTabletComplexAddr<mds::MdsDumpKV> &mds_table_data,
|
const ObTabletComplexAddr<mds::MdsDumpKV> &mds_table_data,
|
||||||
@ -226,7 +227,7 @@ public:
|
|||||||
ObTabletMdsDumpStruct tablet_status_;
|
ObTabletMdsDumpStruct tablet_status_;
|
||||||
ObTabletMdsDumpStruct aux_tablet_info_;
|
ObTabletMdsDumpStruct aux_tablet_info_;
|
||||||
|
|
||||||
ObTaletExtraMediumInfo extra_medium_info_;
|
compaction::ObExtraMediumInfo extra_medium_info_;
|
||||||
ObTabletComplexAddr<ObTabletDumpedMediumInfo> medium_info_list_;
|
ObTabletComplexAddr<ObTabletDumpedMediumInfo> medium_info_list_;
|
||||||
|
|
||||||
ObTabletComplexAddr<share::ObTabletAutoincSeq> auto_inc_seq_;
|
ObTabletComplexAddr<share::ObTabletAutoincSeq> auto_inc_seq_;
|
||||||
|
|||||||
@ -14,6 +14,7 @@
|
|||||||
#define OCEANBASE_STORAGE_OB_TABLET_PERSIST_H_
|
#define OCEANBASE_STORAGE_OB_TABLET_PERSIST_H_
|
||||||
|
|
||||||
#include "lib/allocator/page_arena.h"
|
#include "lib/allocator/page_arena.h"
|
||||||
|
#include "storage/compaction/ob_extra_medium_info.h"
|
||||||
#include "storage/meta_mem/ob_tenant_meta_mem_mgr.h"
|
#include "storage/meta_mem/ob_tenant_meta_mem_mgr.h"
|
||||||
#include "storage/tablet/ob_tablet.h"
|
#include "storage/tablet/ob_tablet.h"
|
||||||
#include "storage/blockstore/ob_shared_block_reader_writer.h"
|
#include "storage/blockstore/ob_shared_block_reader_writer.h"
|
||||||
@ -57,7 +58,7 @@ public:
|
|||||||
ObMetaDiskAddr tablet_status_committed_kv_addr_;
|
ObMetaDiskAddr tablet_status_committed_kv_addr_;
|
||||||
ObMetaDiskAddr aux_tablet_info_uncommitted_kv_addr_;
|
ObMetaDiskAddr aux_tablet_info_uncommitted_kv_addr_;
|
||||||
ObMetaDiskAddr aux_tablet_info_committed_kv_addr_;
|
ObMetaDiskAddr aux_tablet_info_committed_kv_addr_;
|
||||||
ObTaletExtraMediumInfo extra_medium_info_;
|
compaction::ObExtraMediumInfo extra_medium_info_;
|
||||||
ObMetaDiskAddr medium_info_list_addr_;
|
ObMetaDiskAddr medium_info_list_addr_;
|
||||||
ObMetaDiskAddr auto_inc_seq_addr_;
|
ObMetaDiskAddr auto_inc_seq_addr_;
|
||||||
ObTabletCreateDeleteMdsUserData tablet_status_cache_;
|
ObTabletCreateDeleteMdsUserData tablet_status_cache_;
|
||||||
|
|||||||
Reference in New Issue
Block a user