[CP] [CP] Remove disk report skip logic

This commit is contained in:
JiahuaChen
2024-05-25 05:21:33 +00:00
committed by ob-robot
parent 3b615e859d
commit 51c7c13954
3 changed files with 29 additions and 43 deletions

View File

@ -825,7 +825,6 @@ int ObTenantMetaMemMgr::gc_tablets_in_queue(bool &all_tablet_cleaned)
} }
if (left_recycle_cnt < ONE_ROUND_TABLET_GC_COUNT_THRESHOLD) { if (left_recycle_cnt < ONE_ROUND_TABLET_GC_COUNT_THRESHOLD) {
FLOG_INFO("gc tablets in queue", K(gc_tablets_cnt), K(err_tablets_cnt), K(tablet_gc_queue_.count())); FLOG_INFO("gc tablets in queue", K(gc_tablets_cnt), K(err_tablets_cnt), K(tablet_gc_queue_.count()));
static_cast<ObDiskUsageReportTask *>(GCTX.disk_reporter_)->set_count_sstable_data_trigger();
} }
all_tablet_cleaned = tablet_gc_queue_.is_empty(); all_tablet_cleaned = tablet_gc_queue_.is_empty();
} }

View File

@ -38,9 +38,7 @@ namespace storage
ObDiskUsageReportTask::ObDiskUsageReportTask() ObDiskUsageReportTask::ObDiskUsageReportTask()
: is_inited_(false), : is_inited_(false),
sql_proxy_(NULL), sql_proxy_(NULL)
sstable_data_size_(-1),
sstable_meta_size_(-1)
{ {
// do nothing // do nothing
} }
@ -187,45 +185,37 @@ int ObDiskUsageReportTask::count_tenant_data(const uint64_t tenant_id)
int64_t tmp_meta_size = 0; int64_t tmp_meta_size = 0;
int64_t tmp_data_size = 0; int64_t tmp_data_size = 0;
if ((data_size = ATOMIC_LOAD(&sstable_data_size_)) >= 0) { data_size = 0;
meta_size = ATOMIC_LOAD(&sstable_meta_size_); if (OB_FAIL(MTL(ObTenantCheckpointSlogHandler*)->get_meta_block_list(block_list))) {
STORAGE_LOG(INFO, "skip count sstable data size", K(data_size), K(meta_size)); STORAGE_LOG(WARN, "failed to get tenant's meta block list", K(ret));
} else { } else {
data_size = 0; ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*);
if (OB_FAIL(MTL(ObTenantCheckpointSlogHandler*)->get_meta_block_list(block_list))) { ObArenaAllocator iter_allocator("DiskReport", OB_MALLOC_NORMAL_BLOCK_SIZE, tenant_id);
STORAGE_LOG(WARN, "failed to get tenant's meta block list", K(ret)); ObTenantTabletIterator tablet_iter(*t3m, iter_allocator, nullptr/*no op*/);
} else { ObTabletHandle tablet_handle;
ObTenantMetaMemMgr *t3m = MTL(ObTenantMetaMemMgr*); while (OB_SUCC(ret) && OB_SUCC(tablet_iter.get_next_tablet(tablet_handle))) {
ObArenaAllocator iter_allocator("DiskReport", OB_MALLOC_NORMAL_BLOCK_SIZE, tenant_id); if (OB_UNLIKELY(!tablet_handle.is_valid())) {
ObTenantTabletIterator tablet_iter(*t3m, iter_allocator, nullptr/*no op*/); ret = OB_ERR_UNEXPECTED;
ObTabletHandle tablet_handle; STORAGE_LOG(WARN, "unexpected invalid tablet", K(ret), K(tablet_handle));
while (OB_SUCC(ret) && OB_SUCC(tablet_iter.get_next_tablet(tablet_handle))) { } else if (tablet_handle.get_obj()->is_empty_shell()) {
if (OB_UNLIKELY(!tablet_handle.is_valid())) { // skip empty shell
ret = OB_ERR_UNEXPECTED; } else if (OB_FAIL(tablet_handle.get_obj()->get_tablet_size(
STORAGE_LOG(WARN, "unexpected invalid tablet", K(ret), K(tablet_handle)); true /*ignore shared block*/, tmp_meta_size, tmp_data_size))) {
} else if (tablet_handle.get_obj()->is_empty_shell()) { STORAGE_LOG(WARN, "failed to get tablet's meta and data size", K(ret));
// skip empty shell } else {
} else if (OB_FAIL(tablet_handle.get_obj()->get_tablet_size( meta_size += tmp_meta_size;
true /*ignore shared block*/, tmp_meta_size, tmp_data_size))) { data_size += tmp_data_size;
STORAGE_LOG(WARN, "failed to get tablet's meta and data size", K(ret));
} else {
meta_size += tmp_meta_size;
data_size += tmp_data_size;
}
tablet_handle.reset();
iter_allocator.reuse();
tmp_meta_size = 0;
tmp_data_size = 0;
} }
tablet_handle.reset();
iter_allocator.reuse();
tmp_meta_size = 0;
tmp_data_size = 0;
}
if (OB_ITER_END == ret || OB_SUCCESS == ret) { if (OB_ITER_END == ret || OB_SUCCESS == ret) {
ret = OB_SUCCESS; ret = OB_SUCCESS;
data_size += MTL(ObSharedMacroBlockMgr*)->get_shared_block_cnt() * OB_DEFAULT_MACRO_BLOCK_SIZE; data_size += MTL(ObSharedMacroBlockMgr*)->get_shared_block_cnt() * OB_DEFAULT_MACRO_BLOCK_SIZE;
meta_size += block_list.count() * OB_DEFAULT_MACRO_BLOCK_SIZE; meta_size += block_list.count() * OB_DEFAULT_MACRO_BLOCK_SIZE;
ATOMIC_SET(&sstable_meta_size_, meta_size);
ATOMIC_SET(&sstable_data_size_, data_size);
}
} }
} }

View File

@ -68,7 +68,6 @@ public:
// get data disk used size of specified tenant_id in current observer // get data disk used size of specified tenant_id in current observer
int get_data_disk_used_size(const uint64_t tenant_id, int64_t &used_size) const; int get_data_disk_used_size(const uint64_t tenant_id, int64_t &used_size) const;
int get_clog_disk_used_size(const uint64_t tenant_id, int64_t &used_size) const; int get_clog_disk_used_size(const uint64_t tenant_id, int64_t &used_size) const;
void set_count_sstable_data_trigger() { ATOMIC_SET(&sstable_data_size_, -1); }
private: private:
class ObReportResultGetter final class ObReportResultGetter final
@ -119,8 +118,6 @@ private:
ReportResultMap result_map_; ReportResultMap result_map_;
common::ObMySQLProxy *sql_proxy_; common::ObMySQLProxy *sql_proxy_;
share::ObDiskUsageTableOperator disk_usage_table_operator_; share::ObDiskUsageTableOperator disk_usage_table_operator_;
int64_t sstable_data_size_;
int64_t sstable_meta_size_;
}; };
} // namespace storage } // namespace storage