use tablet_allocator to get_tablets in virtual table
This commit is contained in:
@ -26,6 +26,7 @@ ObAllVirtualTableMgr::ObAllVirtualTableMgr()
|
|||||||
: ObVirtualTableScannerIterator(),
|
: ObVirtualTableScannerIterator(),
|
||||||
addr_(),
|
addr_(),
|
||||||
tablet_iter_(nullptr),
|
tablet_iter_(nullptr),
|
||||||
|
tablet_allocator_("VTTable"),
|
||||||
tablet_handle_(),
|
tablet_handle_(),
|
||||||
ls_id_(share::ObLSID::INVALID_LS_ID),
|
ls_id_(share::ObLSID::INVALID_LS_ID),
|
||||||
all_tables_(),
|
all_tables_(),
|
||||||
@ -54,6 +55,7 @@ void ObAllVirtualTableMgr::reset()
|
|||||||
}
|
}
|
||||||
|
|
||||||
tablet_handle_.reset();
|
tablet_handle_.reset();
|
||||||
|
tablet_allocator_.reset();
|
||||||
|
|
||||||
ObVirtualTableScannerIterator::reset();
|
ObVirtualTableScannerIterator::reset();
|
||||||
}
|
}
|
||||||
@ -108,10 +110,11 @@ int ObAllVirtualTableMgr::get_next_tablet()
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
|
||||||
|
tablet_allocator_.reuse();
|
||||||
if (nullptr == tablet_iter_) {
|
if (nullptr == tablet_iter_) {
|
||||||
|
tablet_allocator_.set_tenant_id(MTL_ID());
|
||||||
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
||||||
tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m, *allocator_);
|
if (OB_ISNULL(tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m, tablet_allocator_))) {
|
||||||
if (OB_ISNULL(tablet_iter_)) {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,6 +77,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
common::ObAddr addr_;
|
common::ObAddr addr_;
|
||||||
storage::ObTenantTabletIterator *tablet_iter_;
|
storage::ObTenantTabletIterator *tablet_iter_;
|
||||||
|
common::ObArenaAllocator tablet_allocator_;
|
||||||
ObTabletHandle tablet_handle_;
|
ObTabletHandle tablet_handle_;
|
||||||
int64_t ls_id_;
|
int64_t ls_id_;
|
||||||
char ip_buf_[common::OB_IP_STR_BUFF];
|
char ip_buf_[common::OB_IP_STR_BUFF];
|
||||||
|
|||||||
@ -24,6 +24,7 @@ ObAllVirtualTabletCompactionInfo::ObAllVirtualTabletCompactionInfo()
|
|||||||
ObMultiTenantOperator(),
|
ObMultiTenantOperator(),
|
||||||
addr_(),
|
addr_(),
|
||||||
tablet_iter_(nullptr),
|
tablet_iter_(nullptr),
|
||||||
|
tablet_allocator_("VTTable"),
|
||||||
tablet_handle_(),
|
tablet_handle_(),
|
||||||
ls_id_(share::ObLSID::INVALID_LS_ID),
|
ls_id_(share::ObLSID::INVALID_LS_ID),
|
||||||
iter_buf_(nullptr),
|
iter_buf_(nullptr),
|
||||||
@ -51,6 +52,7 @@ void ObAllVirtualTabletCompactionInfo::reset()
|
|||||||
iter_buf_ = nullptr;
|
iter_buf_ = nullptr;
|
||||||
}
|
}
|
||||||
tablet_handle_.reset();
|
tablet_handle_.reset();
|
||||||
|
tablet_allocator_.reset();
|
||||||
ObVirtualTableScannerIterator::reset();
|
ObVirtualTableScannerIterator::reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -106,10 +108,11 @@ int ObAllVirtualTabletCompactionInfo::get_next_tablet()
|
|||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
|
||||||
|
tablet_allocator_.reuse();
|
||||||
if (nullptr == tablet_iter_) {
|
if (nullptr == tablet_iter_) {
|
||||||
|
tablet_allocator_.set_tenant_id(MTL_ID());
|
||||||
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
||||||
tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m);
|
if (OB_ISNULL(tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m, tablet_allocator_))) {
|
||||||
if (OB_ISNULL(tablet_iter_)) {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -58,6 +58,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
common::ObAddr addr_;
|
common::ObAddr addr_;
|
||||||
storage::ObTenantTabletIterator *tablet_iter_;
|
storage::ObTenantTabletIterator *tablet_iter_;
|
||||||
|
common::ObArenaAllocator tablet_allocator_;
|
||||||
ObTabletHandle tablet_handle_;
|
ObTabletHandle tablet_handle_;
|
||||||
int64_t ls_id_;
|
int64_t ls_id_;
|
||||||
char ip_buf_[common::OB_IP_STR_BUFF];
|
char ip_buf_[common::OB_IP_STR_BUFF];
|
||||||
|
|||||||
@ -67,6 +67,7 @@ ObAllVirtualTabletSSTableMacroInfo::ObAllVirtualTabletSSTableMacroInfo()
|
|||||||
: ObVirtualTableScannerIterator(),
|
: ObVirtualTableScannerIterator(),
|
||||||
addr_(),
|
addr_(),
|
||||||
tablet_iter_(nullptr),
|
tablet_iter_(nullptr),
|
||||||
|
tablet_allocator_("VTTable"),
|
||||||
tablet_handle_(),
|
tablet_handle_(),
|
||||||
ls_id_(share::ObLSID::INVALID_LS_ID),
|
ls_id_(share::ObLSID::INVALID_LS_ID),
|
||||||
all_tables_(),
|
all_tables_(),
|
||||||
@ -111,6 +112,7 @@ void ObAllVirtualTabletSSTableMacroInfo::reset()
|
|||||||
memset(objs_, 0, sizeof(objs_));
|
memset(objs_, 0, sizeof(objs_));
|
||||||
iter_allocator_.reset();
|
iter_allocator_.reset();
|
||||||
rowkey_allocator_.reset();
|
rowkey_allocator_.reset();
|
||||||
|
tablet_allocator_.reset();
|
||||||
|
|
||||||
ObVirtualTableScannerIterator::reset();
|
ObVirtualTableScannerIterator::reset();
|
||||||
}
|
}
|
||||||
@ -233,6 +235,7 @@ int ObAllVirtualTabletSSTableMacroInfo::get_macro_info(
|
|||||||
MacroInfo &info)
|
MacroInfo &info)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
rowkey_allocator_.reuse();
|
||||||
const ObTableReadInfo &read_info = tablet_handle_.get_obj()->get_index_read_info();
|
const ObTableReadInfo &read_info = tablet_handle_.get_obj()->get_index_read_info();
|
||||||
if (OB_UNLIKELY(!macro_desc.is_valid())) {
|
if (OB_UNLIKELY(!macro_desc.is_valid())) {
|
||||||
ret = OB_INVALID_ARGUMENT;
|
ret = OB_INVALID_ARGUMENT;
|
||||||
@ -499,10 +502,11 @@ int ObAllVirtualTabletSSTableMacroInfo::process_curr_tenant(common::ObNewRow *&r
|
|||||||
int ObAllVirtualTabletSSTableMacroInfo::get_next_tablet()
|
int ObAllVirtualTabletSSTableMacroInfo::get_next_tablet()
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
|
tablet_allocator_.reuse();
|
||||||
if (nullptr == tablet_iter_) {
|
if (nullptr == tablet_iter_) {
|
||||||
|
tablet_allocator_.set_tenant_id(MTL_ID());
|
||||||
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
|
||||||
tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m, *allocator_);
|
if (OB_ISNULL(tablet_iter_ = new (iter_buf_) ObTenantTabletIterator(*t3m, tablet_allocator_))) {
|
||||||
if (OB_ISNULL(tablet_iter_)) {
|
|
||||||
ret = OB_ERR_UNEXPECTED;
|
ret = OB_ERR_UNEXPECTED;
|
||||||
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
SERVER_LOG(WARN, "fail to new tablet_iter_", K(ret));
|
||||||
}
|
}
|
||||||
|
|||||||
@ -122,6 +122,7 @@ private:
|
|||||||
private:
|
private:
|
||||||
common::ObAddr addr_;
|
common::ObAddr addr_;
|
||||||
ObTenantTabletIterator *tablet_iter_;
|
ObTenantTabletIterator *tablet_iter_;
|
||||||
|
common::ObArenaAllocator tablet_allocator_;
|
||||||
ObTabletHandle tablet_handle_;
|
ObTabletHandle tablet_handle_;
|
||||||
int64_t ls_id_;
|
int64_t ls_id_;
|
||||||
char ip_buf_[common::OB_IP_STR_BUFF];
|
char ip_buf_[common::OB_IP_STR_BUFF];
|
||||||
|
|||||||
Reference in New Issue
Block a user