add __all_virtual_function_io_stat

This commit is contained in:
obdev 2024-09-18 05:58:02 +00:00 committed by ob-robot
parent efc242224a
commit 3fc8183f60
26 changed files with 1307 additions and 75 deletions

View File

@ -110,7 +110,7 @@ namespace observer
class ObServer
{
public:
static const int64_t DEFAULT_ETHERNET_SPEED = 10000 / 8 * 1024 * 1024; // change from default 125m/s 1000Mbit to 1250MBps 10000Mbit
static const int64_t DEFAULT_ETHERNET_SPEED = 10000 / 8 * 1024 * 1024; // change from default 1250m/s 10000Mbit to 1250MBps 10000Mbit
static const int64_t DISK_USAGE_REPORT_INTERVAL = 1000L * 1000L * 60L; // 1min
static const uint64_t DEFAULT_CPU_FREQUENCY = 2500 * 1000; // 2500 * 1000 khz
static ObServer &get_instance();

View File

@ -500,7 +500,6 @@ int ObAllVirtualIOQuota::inner_get_next_row(common::ObNewRow *&row)
ret = OB_ITER_END;
} else {
QuotaInfo &item = quota_infos_.at(quota_pos_);
const int64_t IO_MODE_COUNT = static_cast<int64_t>(ObIOMode::MAX_MODE);
for (int64_t i = 0; OB_SUCC(ret) && i < output_column_ids_.count(); ++i) {
const uint64_t column_id = output_column_ids_.at(i);
switch (column_id) {
@ -1168,6 +1167,192 @@ int ObAllVirtualGroupIOStat::inner_get_next_row(common::ObNewRow *&row)
return ret;
}
/****************** Function IO Stat *******************/
ObAllVirtualFunctionIOStat::FuncInfo::FuncInfo()
: tenant_id_(OB_INVALID_TENANT_ID),
function_type_(share::ObFunctionType::DEFAULT_FUNCTION),
group_mode_(ObIOGroupMode::MODECNT),
size_(0),
real_iops_(0),
real_bw_(0),
schedule_us_(0),
io_delay_us_(0),
total_us_(0)
{
}
ObAllVirtualFunctionIOStat::FuncInfo::~FuncInfo()
{
}
ObAllVirtualFunctionIOStat::ObAllVirtualFunctionIOStat()
: func_infos_(), func_pos_(0)
{
}
ObAllVirtualFunctionIOStat::~ObAllVirtualFunctionIOStat()
{
}
int ObAllVirtualFunctionIOStat::init(const common::ObAddr &addr)
{
int ret = OB_SUCCESS;
ObVector<uint64_t> tenant_ids;
if (OB_FAIL(init_addr(addr))) {
LOG_WARN("init failed", K(ret), K(addr));
} else {
(void)GCTX.omt_->get_tenant_ids(tenant_ids);
for (int64_t i = 0; OB_SUCC(ret) && i < tenant_ids.size(); ++i) {
const uint64_t cur_tenant_id = tenant_ids.at(i);
ObRefHolder<ObTenantIOManager> tenant_holder;
if (is_virtual_tenant_id(cur_tenant_id)) {
// do nothing
} else if ((!is_sys_tenant(effective_tenant_id_)) && (effective_tenant_id_ != cur_tenant_id)) {
} else if (OB_FAIL(OB_IO_MANAGER.get_tenant_io_manager(cur_tenant_id, tenant_holder))) {
if (OB_HASH_NOT_EXIST != ret) {
LOG_WARN("get tenant io manager failed", K(ret), K(cur_tenant_id));
} else {
ret = OB_TENANT_NOT_EXIST;
LOG_WARN("tenant not exist", K(ret), K(cur_tenant_id));
}
} else if (OB_FAIL(record_function_info(cur_tenant_id, tenant_holder.get_ptr()->get_io_func_infos().func_usages_))) {
LOG_WARN("fail to record function item", K(ret), K(cur_tenant_id));
}
}
if (OB_SUCC(ret)) {
is_inited_ = true;
}
}
return ret;
}
int ObAllVirtualFunctionIOStat::record_function_info(const uint64_t tenant_id,
const ObIOFuncUsageArr &func_usages)
{
int ret = OB_SUCCESS;
if (OB_UNLIKELY(!is_valid_tenant_id(tenant_id))) {
ret = OB_INVALID_ARGUMENT;
LOG_WARN("invalid tenant id", K(ret), K(tenant_id));
} else {
const int FUNC_NUM = static_cast<uint8_t>(share::ObFunctionType::MAX_FUNCTION_NUM);
const int GROUP_MODE_NUM = static_cast<uint8_t>(ObIOGroupMode::MODECNT);
for (int i = 0; OB_SUCC(ret) && i < FUNC_NUM; ++i) {
for (int j = 0; OB_SUCC(ret) && j < GROUP_MODE_NUM; ++j) {
FuncInfo item;
item.function_type_ = static_cast<share::ObFunctionType>(i);
item.group_mode_ = static_cast<ObIOGroupMode>(j);
if (i >= func_usages.count()) {
ret = OB_INVALID_ARGUMENT;
LOG_ERROR("func usages out of range", K(i), K(func_usages.count()));
} else if (j >= func_usages.at(i).count()) {
ret = OB_INVALID_ARGUMENT;
LOG_ERROR("func usages by mode out of range", K(i), K(j), K(func_usages.at(i).count()));
} else {
item.size_ = static_cast<int64_t>(func_usages.at(i).at(j).last_stat_.avg_size_ + 0.5);
item.real_iops_ = static_cast<int64_t>(func_usages.at(i).at(j).last_stat_.avg_iops_ + 0.99);
item.real_bw_ = func_usages.at(i).at(j).last_stat_.avg_bw_;
item.schedule_us_ = func_usages.at(i).at(j).last_stat_.avg_delay_arr_.schedule_delay_us_;
item.io_delay_us_ = func_usages.at(i).at(j).last_stat_.avg_delay_arr_.device_delay_us_;
item.total_us_ = func_usages.at(i).at(j).last_stat_.avg_delay_arr_.total_delay_us_;
}
if (OB_FAIL(ret)) {
} else if (OB_FAIL(func_infos_.push_back(item))) {
LOG_WARN("fail to push back func info", K(ret), K(item));
}
}
}
}
return ret;
}
void ObAllVirtualFunctionIOStat::reset()
{
ObAllVirtualIOStatusIterator::reset();
func_infos_.reset();
func_pos_ = 0;
}
int ObAllVirtualFunctionIOStat::inner_get_next_row(common::ObNewRow *&row)
{
int ret = OB_SUCCESS;
row = nullptr;
ObObj *cells = cur_row_.cells_;
if (OB_UNLIKELY(!is_inited_ || nullptr == cells)) {
ret = OB_NOT_INIT;
LOG_WARN("not init", K(ret), KP(cur_row_.cells_), K(is_inited_));
} else if (func_pos_ >= func_infos_.count()) {
row = nullptr;
ret = OB_ITER_END;
} else {
const FuncInfo &item = func_infos_.at(func_pos_);
for (int64_t i = 0; OB_SUCC(ret) && i < output_column_ids_.count(); ++i) {
const uint64_t column_id = output_column_ids_.at(i);
switch (column_id) {
case SVR_IP: {
cells[i].set_varchar(ip_buf_);
cells[i].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
break;
}
case SVR_PORT: {
cells[i].set_int(addr_.get_port());
break;
}
case TENANT_ID: {
cells[i].set_int(item.tenant_id_);
break;
}
case FUNCTION_NAME: {
const char *str = to_cstring(get_io_function_name(item.function_type_));
cells[i].set_varchar(str);
cells[i].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
break;
}
case MODE: {
const char *str = get_io_mode_string(item.group_mode_);
cells[i].set_varchar(str);
cells[i].set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
break;
}
case SIZE: {
cells[i].set_int(item.size_);
break;
}
case REAL_IOPS: {
cells[i].set_int(item.real_iops_);
break;
}
case REAL_MBPS: {
cells[i].set_int(item.real_bw_ / 1024L / 1024L);
break;
}
case SCHEDULE_US: {
cells[i].set_int(item.schedule_us_);
break;
}
case IO_DELAY_US: {
cells[i].set_int(item.io_delay_us_);
break;
}
case TOTAL_US: {
cells[i].set_int(item.total_us_);
break;
}
default: {
ret = OB_ERR_UNEXPECTED;
LOG_WARN("invalid column id", K(ret), K(column_id), K(i), K(output_column_ids_));
break;
}
} // end switch
} // end for-loop
if (OB_SUCC(ret)) {
row = &cur_row_;
}
++func_pos_;
}
return ret;
}
}// namespace observer
}// namespace oceanbase

View File

@ -263,6 +263,55 @@ private:
int64_t group_io_stats_pos_;
};
class ObAllVirtualFunctionIOStat : public ObAllVirtualIOStatusIterator
{
public:
ObAllVirtualFunctionIOStat();
virtual ~ObAllVirtualFunctionIOStat();
int init(const common::ObAddr &addr);
int record_function_info(const uint64_t tenant_id, const ObIOFuncUsageArr& func_infos);
virtual void reset() override;
virtual int inner_get_next_row(common::ObNewRow *&row) override;
private:
enum COLUMN
{
SVR_IP = common::OB_APP_MIN_COLUMN_ID,
SVR_PORT,
TENANT_ID,
FUNCTION_NAME,
MODE,
SIZE,
REAL_IOPS,
REAL_MBPS,
SCHEDULE_US,
IO_DELAY_US,
TOTAL_US
};
struct FuncInfo
{
public:
FuncInfo();
~FuncInfo();
TO_STRING_KV(K(tenant_id_), K(function_type_), K(group_mode_), K(size_), K(real_iops_), K(real_bw_), K(schedule_us_), K(io_delay_us_), K(total_us_));
public:
uint64_t tenant_id_;
share::ObFunctionType function_type_;
common::ObIOGroupMode group_mode_;
int64_t size_;
int64_t real_iops_;
int64_t real_bw_;
int64_t schedule_us_;
int64_t io_delay_us_;
int64_t total_us_;
};
DISALLOW_COPY_AND_ASSIGN(ObAllVirtualFunctionIOStat);
private:
ObArray<FuncInfo> func_infos_;
int64_t func_pos_;
};
}// namespace observer
}// namespace oceanbase

View File

@ -2833,6 +2833,17 @@ int ObVTIterCreator::create_vt_iter(ObVTableScanParam &params,
}
break;
}
case OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID: {
ObAllVirtualFunctionIOStat *all_virtual_func_io_stat = NULL;
if (OB_SUCC(NEW_VIRTUAL_TABLE(ObAllVirtualFunctionIOStat, all_virtual_func_io_stat))) {
if (OB_FAIL(all_virtual_func_io_stat->init(addr_))) {
SERVER_LOG(WARN, "fail to init ObAllVirtualFunctionIOStatus, ", K(ret));
} else {
vt_iter = static_cast<ObVirtualTableIterator *>(all_virtual_func_io_stat);
}
}
break;
}
case OB_ALL_VIRTUAL_TEMP_FILE_TID:
{
ObAllVirtualTmpFileInfo *all_tmp_file_info = NULL;

View File

@ -25,6 +25,226 @@ using namespace common;
namespace share
{
int ObInnerTableSchema::all_virtual_function_io_stat_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(5);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("svr_ip", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
1, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
MAX_IP_ADDR_LENGTH, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("svr_port", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
2, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("tenant_id", //column_name
++column_id, //column_id
3, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("function_name", //column_name
++column_id, //column_id
4, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
32, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("mode", //column_name
++column_id, //column_id
5, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_INVALID, //column_collation_type
32, //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("size", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("real_iops", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("real_mbps", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("schedule_us", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("io_delay_us", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("total_us", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObIntType, //column_type
CS_TYPE_INVALID, //column_collation_type
sizeof(int64_t), //column_length
-1, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
table_schema.get_part_option().set_part_num(1);
table_schema.set_part_level(PARTITION_LEVEL_ONE);
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST_COLUMNS);
if (OB_FAIL(table_schema.get_part_option().set_part_expr("svr_ip, svr_port"))) {
LOG_WARN("set_part_expr failed", K(ret));
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
LOG_WARN("mock list partition array failed", K(ret));
}
}
table_schema.set_index_using_type(USING_HASH);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::all_virtual_temp_file_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;

View File

@ -2605,6 +2605,226 @@ int ObInnerTableSchema::all_virtual_vector_index_info_ora_schema(ObTableSchema &
return ret;
}
int ObInnerTableSchema::all_virtual_function_io_stat_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(5);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(VIRTUAL_TABLE);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCollationType::CS_TYPE_UTF8MB4_BIN);
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SVR_IP", //column_name
++column_id, //column_id
1, //rowkey_id
0, //index_id
1, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
MAX_IP_ADDR_LENGTH, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SVR_PORT", //column_name
++column_id, //column_id
2, //rowkey_id
0, //index_id
2, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TENANT_ID", //column_name
++column_id, //column_id
3, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("FUNCTION_NAME", //column_name
++column_id, //column_id
4, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
32, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("MODE", //column_name
++column_id, //column_id
5, //rowkey_id
0, //index_id
0, //part_key_pos
ObVarcharType, //column_type
CS_TYPE_UTF8MB4_BIN, //column_collation_type
32, //column_length
2, //column_precision
-1, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SIZE", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("REAL_IOPS", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("REAL_MBPS", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("SCHEDULE_US", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("IO_DELAY_US", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
ADD_COLUMN_SCHEMA("TOTAL_US", //column_name
++column_id, //column_id
0, //rowkey_id
0, //index_id
0, //part_key_pos
ObNumberType, //column_type
CS_TYPE_INVALID, //column_collation_type
38, //column_length
38, //column_precision
0, //column_scale
false, //is_nullable
false); //is_autoincrement
}
if (OB_SUCC(ret)) {
table_schema.get_part_option().set_part_num(1);
table_schema.set_part_level(PARTITION_LEVEL_ONE);
table_schema.get_part_option().set_part_func_type(PARTITION_FUNC_TYPE_LIST);
if (OB_FAIL(table_schema.get_part_option().set_part_expr("SVR_IP, SVR_PORT"))) {
LOG_WARN("set_part_expr failed", K(ret));
} else if (OB_FAIL(table_schema.mock_list_partition_array())) {
LOG_WARN("mock list partition array failed", K(ret));
}
}
table_schema.set_index_using_type(USING_HASH);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::all_virtual_temp_file_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;

View File

@ -229,6 +229,108 @@ int ObInnerTableSchema::innodb_sys_foreign_cols_schema(ObTableSchema &table_sche
return ret;
}
int ObInnerTableSchema::gv_ob_function_io_stat_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_GV_OB_FUNCTION_IO_STAT_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_GV_OB_FUNCTION_IO_STAT_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, FUNCTION_NAME, MODE, SIZE, REAL_IOPS, REAL_MBPS, SCHEDULE_US, IO_DELAY_US, TOTAL_US FROM oceanbase.__all_virtual_function_io_stat; )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::v_ob_function_io_stat_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_SYS_DATABASE_ID);
table_schema.set_table_id(OB_V_OB_FUNCTION_IO_STAT_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_V_OB_FUNCTION_IO_STAT_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT SVR_IP, SVR_PORT, TENANT_ID, FUNCTION_NAME, MODE, SIZE, REAL_IOPS, REAL_MBPS, SCHEDULE_US, IO_DELAY_US, TOTAL_US FROM OCEANBASE.GV$OB_FUNCTION_IO_STAT WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::dba_ob_temp_files_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;

View File

@ -25,6 +25,108 @@ using namespace common;
namespace share
{
int ObInnerTableSchema::gv_ob_function_io_stat_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_GV_OB_FUNCTION_IO_STAT_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_GV_OB_FUNCTION_IO_STAT_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.TENANT_ID AS TENANT_ID, A.FUNCTION_NAME AS FUNCTION_NAME, A."MODE" AS "MODE", A."SIZE" AS "SIZE", A.REAL_IOPS AS REAL_IOPS, A.REAL_MBPS AS REAL_MBPS, A.SCHEDULE_US AS SCHEDULE_US, A.IO_DELAY_US AS IO_DELAY_US, A.TOTAL_US AS TOTAL_US FROM SYS.ALL_VIRTUAL_FUNCTION_IO_STAT A )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::v_ob_function_io_stat_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;
uint64_t column_id = OB_APP_MIN_COLUMN_ID - 1;
//generated fields:
table_schema.set_tenant_id(OB_SYS_TENANT_ID);
table_schema.set_tablegroup_id(OB_INVALID_ID);
table_schema.set_database_id(OB_ORA_SYS_DATABASE_ID);
table_schema.set_table_id(OB_V_OB_FUNCTION_IO_STAT_ORA_TID);
table_schema.set_rowkey_split_pos(0);
table_schema.set_is_use_bloomfilter(false);
table_schema.set_progressive_merge_num(0);
table_schema.set_rowkey_column_num(0);
table_schema.set_load_type(TABLE_LOAD_TYPE_IN_DISK);
table_schema.set_table_type(SYSTEM_VIEW);
table_schema.set_index_type(INDEX_TYPE_IS_NOT);
table_schema.set_def_type(TABLE_DEF_TYPE_INTERNAL);
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_table_name(OB_V_OB_FUNCTION_IO_STAT_ORA_TNAME))) {
LOG_ERROR("fail to set table_name", K(ret));
}
}
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_compress_func_name(OB_DEFAULT_COMPRESS_FUNC_NAME))) {
LOG_ERROR("fail to set compress_func_name", K(ret));
}
}
table_schema.set_part_level(PARTITION_LEVEL_ZERO);
table_schema.set_charset_type(ObCharset::get_default_charset());
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
if (OB_SUCC(ret)) {
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT A.SVR_IP AS SVR_IP, A.SVR_PORT AS SVR_PORT, A.TENANT_ID AS TENANT_ID, A.FUNCTION_NAME AS FUNCTION_NAME, A."MODE" AS "MODE", A."SIZE" AS "SIZE", A.REAL_IOPS AS REAL_IOPS, A.REAL_MBPS AS REAL_MBPS, A.SCHEDULE_US AS SCHEDULE_US, A.IO_DELAY_US AS IO_DELAY_US, A.TOTAL_US AS TOTAL_US FROM SYS.GV$OB_FUNCTION_IO_STAT A WHERE SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT() )__"))) {
LOG_ERROR("fail to set view_definition", K(ret));
}
}
table_schema.set_index_using_type(USING_BTREE);
table_schema.set_row_store_type(ENCODING_ROW_STORE);
table_schema.set_store_format(OB_STORE_FORMAT_DYNAMIC_MYSQL);
table_schema.set_progressive_merge_round(1);
table_schema.set_storage_format_version(3);
table_schema.set_tablet_id(0);
table_schema.set_micro_index_clustered(false);
table_schema.set_max_used_column_id(column_id);
return ret;
}
int ObInnerTableSchema::dba_ob_temp_files_ora_schema(ObTableSchema &table_schema)
{
int ret = OB_SUCCESS;

View File

@ -1104,6 +1104,7 @@ public:
static int all_virtual_spatial_reference_systems_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ss_local_cache_info_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_vector_index_info_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_function_io_stat_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_temp_file_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_sql_audit_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_plan_stat_ora_schema(share::schema::ObTableSchema &table_schema);
@ -1387,6 +1388,7 @@ public:
static int all_virtual_spatial_reference_systems_real_agent_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_ss_local_cache_info_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_vector_index_info_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_function_io_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_virtual_temp_file_ora_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_stat_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_plan_cache_plan_stat_schema(share::schema::ObTableSchema &table_schema);
@ -1861,6 +1863,8 @@ public:
static int innodb_sys_fields_schema(share::schema::ObTableSchema &table_schema);
static int innodb_sys_foreign_schema(share::schema::ObTableSchema &table_schema);
static int innodb_sys_foreign_cols_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_function_io_stat_schema(share::schema::ObTableSchema &table_schema);
static int v_ob_function_io_stat_schema(share::schema::ObTableSchema &table_schema);
static int dba_ob_temp_files_schema(share::schema::ObTableSchema &table_schema);
static int cdb_ob_temp_files_schema(share::schema::ObTableSchema &table_schema);
static int dba_synonyms_schema(share::schema::ObTableSchema &table_schema);
@ -2338,6 +2342,8 @@ public:
static int dba_ob_spatial_columns_ora_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_ss_local_cache_ora_schema(share::schema::ObTableSchema &table_schema);
static int v_ob_ss_local_cache_ora_schema(share::schema::ObTableSchema &table_schema);
static int gv_ob_function_io_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int v_ob_function_io_stat_ora_schema(share::schema::ObTableSchema &table_schema);
static int dba_ob_temp_files_ora_schema(share::schema::ObTableSchema &table_schema);
static int all_table_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
static int all_column_aux_lob_meta_schema(share::schema::ObTableSchema &table_schema);
@ -3951,6 +3957,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_spatial_reference_systems_schema,
ObInnerTableSchema::all_virtual_ss_local_cache_info_schema,
ObInnerTableSchema::all_virtual_vector_index_info_schema,
ObInnerTableSchema::all_virtual_function_io_stat_schema,
ObInnerTableSchema::all_virtual_temp_file_schema,
ObInnerTableSchema::all_virtual_ash_all_virtual_ash_i1_schema,
ObInnerTableSchema::all_virtual_sql_plan_monitor_all_virtual_sql_plan_monitor_i1_schema,
@ -4244,6 +4251,7 @@ const schema_create_func virtual_table_schema_creators [] = {
ObInnerTableSchema::all_virtual_spatial_reference_systems_real_agent_ora_schema,
ObInnerTableSchema::all_virtual_ss_local_cache_info_ora_schema,
ObInnerTableSchema::all_virtual_vector_index_info_ora_schema,
ObInnerTableSchema::all_virtual_function_io_stat_ora_schema,
ObInnerTableSchema::all_virtual_temp_file_ora_schema,
ObInnerTableSchema::all_virtual_table_real_agent_ora_idx_data_table_id_real_agent_schema,
ObInnerTableSchema::all_virtual_table_real_agent_ora_idx_db_tb_name_real_agent_schema,
@ -4805,6 +4813,8 @@ const schema_create_func sys_view_schema_creators [] = {
ObInnerTableSchema::innodb_sys_fields_schema,
ObInnerTableSchema::innodb_sys_foreign_schema,
ObInnerTableSchema::innodb_sys_foreign_cols_schema,
ObInnerTableSchema::gv_ob_function_io_stat_schema,
ObInnerTableSchema::v_ob_function_io_stat_schema,
ObInnerTableSchema::dba_ob_temp_files_schema,
ObInnerTableSchema::cdb_ob_temp_files_schema,
ObInnerTableSchema::dba_synonyms_schema,
@ -5282,6 +5292,8 @@ const schema_create_func sys_view_schema_creators [] = {
ObInnerTableSchema::dba_ob_spatial_columns_ora_schema,
ObInnerTableSchema::gv_ob_ss_local_cache_ora_schema,
ObInnerTableSchema::v_ob_ss_local_cache_ora_schema,
ObInnerTableSchema::gv_ob_function_io_stat_ora_schema,
ObInnerTableSchema::v_ob_function_io_stat_ora_schema,
ObInnerTableSchema::dba_ob_temp_files_ora_schema,
NULL,};
@ -5933,6 +5945,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_NIC_INFO_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID,
OB_ALL_VIRTUAL_TEMP_FILE_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_ALL_VIRTUAL_SQL_AUDIT_I1_TID,
@ -6225,6 +6238,7 @@ const uint64_t tenant_space_tables [] = {
OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID,
OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID,
OB_GV_OB_PLAN_CACHE_STAT_TID,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID,
@ -6572,6 +6586,8 @@ const uint64_t tenant_space_tables [] = {
OB_INNODB_SYS_FIELDS_TID,
OB_INNODB_SYS_FOREIGN_TID,
OB_INNODB_SYS_FOREIGN_COLS_TID,
OB_GV_OB_FUNCTION_IO_STAT_TID,
OB_V_OB_FUNCTION_IO_STAT_TID,
OB_DBA_OB_TEMP_FILES_TID,
OB_DBA_SYNONYMS_TID,
OB_DBA_OBJECTS_ORA_TID,
@ -7048,6 +7064,8 @@ const uint64_t tenant_space_tables [] = {
OB_DBA_OB_SPATIAL_COLUMNS_ORA_TID,
OB_GV_OB_SS_LOCAL_CACHE_ORA_TID,
OB_V_OB_SS_LOCAL_CACHE_ORA_TID,
OB_GV_OB_FUNCTION_IO_STAT_ORA_TID,
OB_V_OB_FUNCTION_IO_STAT_ORA_TID,
OB_DBA_OB_TEMP_FILES_ORA_TID,
OB_ALL_TABLE_IDX_DATA_TABLE_ID_TID,
OB_ALL_TABLE_IDX_DB_TB_NAME_TID,
@ -7945,6 +7963,7 @@ const uint64_t all_ora_mapping_virtual_table_org_tables [] = {
OB_ALL_VIRTUAL_NIC_INFO_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID,
OB_ALL_VIRTUAL_TEMP_FILE_TID, };
const uint64_t all_ora_mapping_virtual_tables [] = { OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID
@ -8100,6 +8119,7 @@ const uint64_t all_ora_mapping_virtual_tables [] = { OB_ALL_VIRTUAL_SQL_AUDIT_O
, OB_ALL_VIRTUAL_NIC_INFO_ORA_TID
, OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID
, OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID
, OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID
, OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID
, };
@ -8640,6 +8660,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_NIC_INFO_TNAME,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TNAME,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TNAME,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TNAME,
OB_ALL_VIRTUAL_TEMP_FILE_TNAME,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TNAME,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_ALL_VIRTUAL_SQL_AUDIT_I1_TNAME,
@ -8932,6 +8953,7 @@ const char* const tenant_space_table_names [] = {
OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA_TNAME,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TNAME,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TNAME,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TNAME,
OB_ALL_VIRTUAL_TEMP_FILE_ORA_TNAME,
OB_GV_OB_PLAN_CACHE_STAT_TNAME,
OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME,
@ -9279,6 +9301,8 @@ const char* const tenant_space_table_names [] = {
OB_INNODB_SYS_FIELDS_TNAME,
OB_INNODB_SYS_FOREIGN_TNAME,
OB_INNODB_SYS_FOREIGN_COLS_TNAME,
OB_GV_OB_FUNCTION_IO_STAT_TNAME,
OB_V_OB_FUNCTION_IO_STAT_TNAME,
OB_DBA_OB_TEMP_FILES_TNAME,
OB_DBA_SYNONYMS_TNAME,
OB_DBA_OBJECTS_ORA_TNAME,
@ -9755,6 +9779,8 @@ const char* const tenant_space_table_names [] = {
OB_DBA_OB_SPATIAL_COLUMNS_ORA_TNAME,
OB_GV_OB_SS_LOCAL_CACHE_ORA_TNAME,
OB_V_OB_SS_LOCAL_CACHE_ORA_TNAME,
OB_GV_OB_FUNCTION_IO_STAT_ORA_TNAME,
OB_V_OB_FUNCTION_IO_STAT_ORA_TNAME,
OB_DBA_OB_TEMP_FILES_ORA_TNAME,
OB_ALL_TABLE_IDX_DATA_TABLE_ID_TNAME,
OB_ALL_TABLE_IDX_DB_TB_NAME_TNAME,
@ -10661,6 +10687,7 @@ const uint64_t tenant_distributed_vtables [] = {
OB_ALL_VIRTUAL_NIC_INFO_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID,
OB_ALL_VIRTUAL_TEMP_FILE_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID,
OB_ALL_VIRTUAL_SQL_AUDIT_ORA_ALL_VIRTUAL_SQL_AUDIT_I1_TID,
@ -10741,6 +10768,7 @@ const uint64_t tenant_distributed_vtables [] = {
OB_ALL_VIRTUAL_NIC_INFO_ORA_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID,
OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID, };
const uint64_t restrict_access_virtual_tables[] = {
@ -10881,7 +10909,8 @@ const uint64_t restrict_access_virtual_tables[] = {
OB_ALL_VIRTUAL_NIC_INFO_ORA_TID,
OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA_TID,
OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID,
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID };
OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID,
OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID };
static inline bool is_restrict_access_virtual_table(const uint64_t tid)
@ -13522,11 +13551,11 @@ static inline int get_sys_table_lob_aux_schema(const uint64_t tid,
const int64_t OB_CORE_TABLE_COUNT = 4;
const int64_t OB_SYS_TABLE_COUNT = 304;
const int64_t OB_VIRTUAL_TABLE_COUNT = 847;
const int64_t OB_SYS_VIEW_COUNT = 951;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 2107;
const int64_t OB_VIRTUAL_TABLE_COUNT = 849;
const int64_t OB_SYS_VIEW_COUNT = 955;
const int64_t OB_SYS_TENANT_TABLE_COUNT = 2113;
const int64_t OB_CORE_SCHEMA_VERSION = 1;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 2110;
const int64_t OB_BOOTSTRAP_SCHEMA_VERSION = 2116;
} // end namespace share
} // end namespace oceanbase

View File

@ -804,6 +804,7 @@ const uint64_t OB_ALL_VIRTUAL_SCHEDULER_JOB_RUN_DETAIL_V2_TID = 12488; // "__all
const uint64_t OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_TID = 12490; // "__all_virtual_spatial_reference_systems"
const uint64_t OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TID = 12492; // "__all_virtual_ss_local_cache_info"
const uint64_t OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TID = 12496; // "__all_virtual_vector_index_info"
const uint64_t OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TID = 12504; // "__all_virtual_function_io_stat"
const uint64_t OB_ALL_VIRTUAL_TEMP_FILE_TID = 12505; // "__all_virtual_temp_file"
const uint64_t OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TID = 15009; // "ALL_VIRTUAL_SQL_AUDIT_ORA"
const uint64_t OB_ALL_VIRTUAL_PLAN_STAT_ORA_TID = 15010; // "ALL_VIRTUAL_PLAN_STAT_ORA"
@ -1087,6 +1088,7 @@ const uint64_t OB_ALL_VIRTUAL_SCHEDULER_JOB_RUN_DETAIL_V2_REAL_AGENT_ORA_TID = 1
const uint64_t OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA_TID = 15459; // "ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA"
const uint64_t OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TID = 15462; // "ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA"
const uint64_t OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TID = 15467; // "ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA"
const uint64_t OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TID = 15484; // "ALL_VIRTUAL_FUNCTION_IO_STAT_ORA"
const uint64_t OB_ALL_VIRTUAL_TEMP_FILE_ORA_TID = 15485; // "ALL_VIRTUAL_TEMP_FILE_ORA"
const uint64_t OB_GV_OB_PLAN_CACHE_STAT_TID = 20001; // "GV$OB_PLAN_CACHE_STAT"
const uint64_t OB_GV_OB_PLAN_CACHE_PLAN_STAT_TID = 20002; // "GV$OB_PLAN_CACHE_PLAN_STAT"
@ -1561,6 +1563,8 @@ const uint64_t OB_V_OB_SS_LOCAL_CACHE_TID = 21600; // "V$OB_SS_LOCAL_CACHE"
const uint64_t OB_INNODB_SYS_FIELDS_TID = 21603; // "INNODB_SYS_FIELDS"
const uint64_t OB_INNODB_SYS_FOREIGN_TID = 21604; // "INNODB_SYS_FOREIGN"
const uint64_t OB_INNODB_SYS_FOREIGN_COLS_TID = 21605; // "INNODB_SYS_FOREIGN_COLS"
const uint64_t OB_GV_OB_FUNCTION_IO_STAT_TID = 21620; // "GV$OB_FUNCTION_IO_STAT"
const uint64_t OB_V_OB_FUNCTION_IO_STAT_TID = 21621; // "V$OB_FUNCTION_IO_STAT"
const uint64_t OB_DBA_OB_TEMP_FILES_TID = 21622; // "DBA_OB_TEMP_FILES"
const uint64_t OB_CDB_OB_TEMP_FILES_TID = 21623; // "CDB_OB_TEMP_FILES"
const uint64_t OB_DBA_SYNONYMS_TID = 25001; // "DBA_SYNONYMS"
@ -2038,6 +2042,8 @@ const uint64_t OB_V_OB_NIC_INFO_ORA_TID = 28231; // "V$OB_NIC_INFO_ORA"
const uint64_t OB_DBA_OB_SPATIAL_COLUMNS_ORA_TID = 28234; // "DBA_OB_SPATIAL_COLUMNS_ORA"
const uint64_t OB_GV_OB_SS_LOCAL_CACHE_ORA_TID = 28240; // "GV$OB_SS_LOCAL_CACHE_ORA"
const uint64_t OB_V_OB_SS_LOCAL_CACHE_ORA_TID = 28241; // "V$OB_SS_LOCAL_CACHE_ORA"
const uint64_t OB_GV_OB_FUNCTION_IO_STAT_ORA_TID = 28262; // "GV$OB_FUNCTION_IO_STAT_ORA"
const uint64_t OB_V_OB_FUNCTION_IO_STAT_ORA_TID = 28263; // "V$OB_FUNCTION_IO_STAT_ORA"
const uint64_t OB_DBA_OB_TEMP_FILES_ORA_TID = 28264; // "DBA_OB_TEMP_FILES_ORA"
const uint64_t OB_ALL_TABLE_AUX_LOB_META_TID = 50003; // "__all_table_aux_lob_meta"
const uint64_t OB_ALL_COLUMN_AUX_LOB_META_TID = 50004; // "__all_column_aux_lob_meta"
@ -3635,6 +3641,7 @@ const char *const OB_ALL_VIRTUAL_SCHEDULER_JOB_RUN_DETAIL_V2_TNAME = "__all_virt
const char *const OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_TNAME = "__all_virtual_spatial_reference_systems";
const char *const OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_TNAME = "__all_virtual_ss_local_cache_info";
const char *const OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_TNAME = "__all_virtual_vector_index_info";
const char *const OB_ALL_VIRTUAL_FUNCTION_IO_STAT_TNAME = "__all_virtual_function_io_stat";
const char *const OB_ALL_VIRTUAL_TEMP_FILE_TNAME = "__all_virtual_temp_file";
const char *const OB_ALL_VIRTUAL_SQL_AUDIT_ORA_TNAME = "ALL_VIRTUAL_SQL_AUDIT";
const char *const OB_ALL_VIRTUAL_PLAN_STAT_ORA_TNAME = "ALL_VIRTUAL_PLAN_STAT";
@ -3918,6 +3925,7 @@ const char *const OB_ALL_VIRTUAL_SCHEDULER_JOB_RUN_DETAIL_V2_REAL_AGENT_ORA_TNAM
const char *const OB_ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT_ORA_TNAME = "ALL_VIRTUAL_SPATIAL_REFERENCE_SYSTEMS_REAL_AGENT";
const char *const OB_ALL_VIRTUAL_SS_LOCAL_CACHE_INFO_ORA_TNAME = "ALL_VIRTUAL_SS_LOCAL_CACHE_INFO";
const char *const OB_ALL_VIRTUAL_VECTOR_INDEX_INFO_ORA_TNAME = "ALL_VIRTUAL_VECTOR_INDEX_INFO";
const char *const OB_ALL_VIRTUAL_FUNCTION_IO_STAT_ORA_TNAME = "ALL_VIRTUAL_FUNCTION_IO_STAT";
const char *const OB_ALL_VIRTUAL_TEMP_FILE_ORA_TNAME = "ALL_VIRTUAL_TEMP_FILE";
const char *const OB_GV_OB_PLAN_CACHE_STAT_TNAME = "GV$OB_PLAN_CACHE_STAT";
const char *const OB_GV_OB_PLAN_CACHE_PLAN_STAT_TNAME = "GV$OB_PLAN_CACHE_PLAN_STAT";
@ -4392,6 +4400,8 @@ const char *const OB_V_OB_SS_LOCAL_CACHE_TNAME = "V$OB_SS_LOCAL_CACHE";
const char *const OB_INNODB_SYS_FIELDS_TNAME = "INNODB_SYS_FIELDS";
const char *const OB_INNODB_SYS_FOREIGN_TNAME = "INNODB_SYS_FOREIGN";
const char *const OB_INNODB_SYS_FOREIGN_COLS_TNAME = "INNODB_SYS_FOREIGN_COLS";
const char *const OB_GV_OB_FUNCTION_IO_STAT_TNAME = "GV$OB_FUNCTION_IO_STAT";
const char *const OB_V_OB_FUNCTION_IO_STAT_TNAME = "V$OB_FUNCTION_IO_STAT";
const char *const OB_DBA_OB_TEMP_FILES_TNAME = "DBA_OB_TEMP_FILES";
const char *const OB_CDB_OB_TEMP_FILES_TNAME = "CDB_OB_TEMP_FILES";
const char *const OB_DBA_SYNONYMS_TNAME = "DBA_SYNONYMS";
@ -4869,6 +4879,8 @@ const char *const OB_V_OB_NIC_INFO_ORA_TNAME = "V$OB_NIC_INFO";
const char *const OB_DBA_OB_SPATIAL_COLUMNS_ORA_TNAME = "DBA_OB_SPATIAL_COLUMNS";
const char *const OB_GV_OB_SS_LOCAL_CACHE_ORA_TNAME = "GV$OB_SS_LOCAL_CACHE";
const char *const OB_V_OB_SS_LOCAL_CACHE_ORA_TNAME = "V$OB_SS_LOCAL_CACHE";
const char *const OB_GV_OB_FUNCTION_IO_STAT_ORA_TNAME = "GV$OB_FUNCTION_IO_STAT";
const char *const OB_V_OB_FUNCTION_IO_STAT_ORA_TNAME = "V$OB_FUNCTION_IO_STAT";
const char *const OB_DBA_OB_TEMP_FILES_ORA_TNAME = "DBA_OB_TEMP_FILES";
const char *const OB_ALL_TABLE_AUX_LOB_META_TNAME = "__all_table_aux_lob_meta";
const char *const OB_ALL_COLUMN_AUX_LOB_META_TNAME = "__all_column_aux_lob_meta";

View File

@ -15004,7 +15004,32 @@ def_table_schema(
# 12502: __all_virtual_wr_res_mgr_sysstat
# 12503: __all_virtual_kv_redis_table
# 12504: __all_virtual_function_io_stat
def_table_schema(
owner = 'zz412656',
table_name = '__all_virtual_function_io_stat',
table_id = '12504',
table_type = 'VIRTUAL_TABLE',
gm_columns = [],
rowkey_columns = [
('svr_ip', 'varchar:MAX_IP_ADDR_LENGTH'),
('svr_port', 'int'),
('tenant_id', 'int'),
('function_name', 'varchar:32'),
('mode', 'varchar:32')
],
in_tenant_space = True,
normal_columns = [
('size', 'int'),
('real_iops', 'int'),
('real_mbps', 'int'),
('schedule_us', 'int'),
('io_delay_us', 'int'),
('total_us', 'int'),
],
partition_columns = ['svr_ip', 'svr_port'],
vtable_route_policy = 'distributed',
)
def_table_schema(
owner = 'wuyuefei.wyf',
@ -15050,6 +15075,7 @@ def_table_schema(
vtable_route_policy = 'distributed',
)
# 余留位置(此行之前占位)
# 本区域占位建议:采用真实表名进行占位
################################################################################
@ -15564,8 +15590,7 @@ def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15467'
# 15481: __all_virtual_wr_sql_plan
# 15482: __all_virtual_res_mgr_sysstat
# 15483: __all_virtual_wr_res_mgr_sysstat
# 15484: __all_virtual_function_io_stat
def_table_schema(**no_direct_access(gen_oracle_mapping_virtual_table_def('15484', all_def_keywords['__all_virtual_function_io_stat'])))
def_table_schema(**gen_oracle_mapping_virtual_table_def('15485', all_def_keywords['__all_virtual_temp_file']))
# 余留位置(此行之前占位)
@ -37258,8 +37283,62 @@ def_table_schema(
# 21617: CDB_OB_SPM_EVO_RESULT
# 21618: DBA_OB_KV_REDIS_TABLE
# 21619: CDB_OB_KV_REDIS_TABLE
# 21620: GV$OB_FUNCTION_IO_STAT
# 21621: V$OB_FUNCTION_IO_STAT
def_table_schema(
owner = 'zz412656',
table_name = 'GV$OB_FUNCTION_IO_STAT',
table_id = '21620',
table_type = 'SYSTEM_VIEW',
gm_columns = [],
rowkey_columns = [],
normal_columns = [],
in_tenant_space = True,
view_definition = """
SELECT
SVR_IP,
SVR_PORT,
TENANT_ID,
FUNCTION_NAME,
MODE,
SIZE,
REAL_IOPS,
REAL_MBPS,
SCHEDULE_US,
IO_DELAY_US,
TOTAL_US
FROM
oceanbase.__all_virtual_function_io_stat;
""".replace("\n", " "),
)
def_table_schema(
owner = 'zz412656',
table_name = 'V$OB_FUNCTION_IO_STAT',
table_id = '21621',
table_type = 'SYSTEM_VIEW',
gm_columns = [],
rowkey_columns = [],
normal_columns = [],
in_tenant_space = True,
view_definition = """
SELECT
SVR_IP,
SVR_PORT,
TENANT_ID,
FUNCTION_NAME,
MODE,
SIZE,
REAL_IOPS,
REAL_MBPS,
SCHEDULE_US,
IO_DELAY_US,
TOTAL_US
FROM
OCEANBASE.GV$OB_FUNCTION_IO_STAT
WHERE
SVR_IP=HOST_IP() AND SVR_PORT=RPC_PORT()
""".replace("\n", " "),
)
def_table_schema(
owner = 'wuyuefei.wyf',
@ -37319,7 +37398,6 @@ def_table_schema(
FROM oceanbase.__all_virtual_temp_file
""".replace("\n", " ")
)
# 余留位置(此行之前占位)
# 本区域占位建议:采用真实视图名进行占位
################################################################################
@ -65747,8 +65825,68 @@ def_table_schema(
# 28259: DBA_WR_SQL_PLAN
# 28260: DBA_WR_RES_MGR_SYSSTAT
# 28261: DBA_OB_SPM_EVO_RESULT
# 28262: GV$OB_FUNCTION_IO_STAT
# 28263: V$OB_FUNCTION_IO_STAT
def_table_schema(
owner = 'zz412656',
table_name = 'GV$OB_FUNCTION_IO_STAT',
name_postfix = '_ORA',
database_id = 'OB_ORA_SYS_DATABASE_ID',
table_id = '28262',
table_type = 'SYSTEM_VIEW',
gm_columns = [],
rowkey_columns = [],
normal_columns = [],
in_tenant_space = True,
view_definition = """
SELECT
A.SVR_IP AS SVR_IP,
A.SVR_PORT AS SVR_PORT,
A.TENANT_ID AS TENANT_ID,
A.FUNCTION_NAME AS FUNCTION_NAME,
A."MODE" AS "MODE",
A."SIZE" AS "SIZE",
A.REAL_IOPS AS REAL_IOPS,
A.REAL_MBPS AS REAL_MBPS,
A.SCHEDULE_US AS SCHEDULE_US,
A.IO_DELAY_US AS IO_DELAY_US,
A.TOTAL_US AS TOTAL_US
FROM
SYS.ALL_VIRTUAL_FUNCTION_IO_STAT A
""".replace("\n", " "),
)
def_table_schema(
owner = 'zz412656',
table_name = 'V$OB_FUNCTION_IO_STAT',
name_postfix = '_ORA',
database_id = 'OB_ORA_SYS_DATABASE_ID',
table_id = '28263',
table_type = 'SYSTEM_VIEW',
gm_columns = [],
rowkey_columns = [],
normal_columns = [],
in_tenant_space = True,
view_definition = """
SELECT
A.SVR_IP AS SVR_IP,
A.SVR_PORT AS SVR_PORT,
A.TENANT_ID AS TENANT_ID,
A.FUNCTION_NAME AS FUNCTION_NAME,
A."MODE" AS "MODE",
A."SIZE" AS "SIZE",
A.REAL_IOPS AS REAL_IOPS,
A.REAL_MBPS AS REAL_MBPS,
A.SCHEDULE_US AS SCHEDULE_US,
A.IO_DELAY_US AS IO_DELAY_US,
A.TOTAL_US AS TOTAL_US
FROM
SYS.GV$OB_FUNCTION_IO_STAT A
WHERE
SVR_IP=HOST_IP()
AND
SVR_PORT=RPC_PORT()
""".replace("\n", " "),
)
def_table_schema(
owner = 'wuyuefei.wyf',
@ -65782,6 +65920,7 @@ def_table_schema(
""".replace("\n", " "),
)
# 余留位置(此行之前占位)
# 本区域占位建议:采用真实视图名进行占位
################################################################################

View File

@ -1155,6 +1155,7 @@
# 12490: __all_spatial_reference_systems # BASE_TABLE_NAME
# 12492: __all_virtual_ss_local_cache_info
# 12496: __all_virtual_vector_index_info
# 12504: __all_virtual_function_io_stat
# 12505: __all_virtual_temp_file
# 15009: ALL_VIRTUAL_SQL_AUDIT
# 15009: __all_virtual_sql_audit # BASE_TABLE_NAME
@ -1780,6 +1781,8 @@
# 15462: __all_virtual_ss_local_cache_info # BASE_TABLE_NAME
# 15467: ALL_VIRTUAL_VECTOR_INDEX_INFO
# 15467: __all_virtual_vector_index_info # BASE_TABLE_NAME
# 15484: ALL_VIRTUAL_FUNCTION_IO_STAT
# 15484: __all_virtual_function_io_stat # BASE_TABLE_NAME
# 15485: ALL_VIRTUAL_TEMP_FILE
# 15485: __all_virtual_temp_file # BASE_TABLE_NAME
# 20001: GV$OB_PLAN_CACHE_STAT
@ -2255,6 +2258,8 @@
# 21603: INNODB_SYS_FIELDS
# 21604: INNODB_SYS_FOREIGN
# 21605: INNODB_SYS_FOREIGN_COLS
# 21620: GV$OB_FUNCTION_IO_STAT
# 21621: V$OB_FUNCTION_IO_STAT
# 21622: DBA_OB_TEMP_FILES
# 21623: CDB_OB_TEMP_FILES
# 25001: DBA_SYNONYMS
@ -2732,6 +2737,8 @@
# 28234: DBA_OB_SPATIAL_COLUMNS
# 28240: GV$OB_SS_LOCAL_CACHE
# 28241: V$OB_SS_LOCAL_CACHE
# 28262: GV$OB_FUNCTION_IO_STAT
# 28263: V$OB_FUNCTION_IO_STAT
# 28264: DBA_OB_TEMP_FILES
# 14999: __idx_11003_all_virtual_plan_cache_stat_i1
# 14999: all_virtual_plan_cache_stat_i1 # INDEX_NAME

View File

@ -1819,8 +1819,11 @@ int ObIOHandle::wait(const int64_t wait_timeout_ms)
} else if (0 == wait_timeout_ms) {
ret = OB_EAGAIN;
} else if (UINT64_MAX == wait_timeout_ms) {
const int64_t timeout_ms = ((result_->time_log_.begin_ts_ > 0 ? result_->time_log_.begin_ts_ + result_->timeout_us_ : 0)
- ObTimeUtility::current_time()) / 1000L;
const int64_t timeout_ms =
((result_->time_log_.begin_ts_ > 0
? result_->time_log_.begin_ts_ + result_->timeout_us_ - ObTimeUtility::current_time()
: 0)) /
1000L;
ObWaitEventGuard wait_guard(result_->flag_.get_wait_event(),
timeout_ms,
result_->size_);

View File

@ -2250,7 +2250,7 @@ int ObTenantIOManager::print_io_function_status()
char io_status[1024] = { 0 };
int FUNC_NUM = static_cast<uint8_t>(share::ObFunctionType::MAX_FUNCTION_NUM);
int GROUP_MODE_NUM = static_cast<uint8_t>(ObIOGroupMode::MODECNT);
ObSEArray<ObIOFuncUsage, static_cast<uint8_t>(share::ObFunctionType::MAX_FUNCTION_NUM)> &func_usages = io_func_infos_.func_usages_;
ObIOFuncUsageArr &func_usages = io_func_infos_.func_usages_;
double avg_size = 0;
double avg_iops = 0;
int64_t avg_bw = 0;
@ -2259,13 +2259,15 @@ int ObTenantIOManager::print_io_function_status()
int64_t avg_submit_delay = 0;
int64_t avg_device_delay = 0;
int64_t avg_total_delay = 0;
for (int i = 0; i < FUNC_NUM; ++i) {
for (int j = 0; j < GROUP_MODE_NUM; ++j) {
for (int i = 0; OB_SUCC(ret) && i < FUNC_NUM; ++i) {
for (int j = 0; OB_SUCC(ret) && j < GROUP_MODE_NUM; ++j) {
avg_size = 0;
const char *mode_str = get_io_mode_string(static_cast<ObIOGroupMode>(j));
if (i >= func_usages.count()) {
ret = OB_INVALID_ARGUMENT;
LOG_ERROR("func usages out of range", K(i), K(func_usages.count()));
} else if (j >= func_usages.at(i).count()) {
ret = OB_INVALID_ARGUMENT;
LOG_ERROR("func usages by mode out of range", K(i), K(j), K(func_usages.at(i).count()));
} else if (OB_FAIL(func_usages.at(i).at(j).calc(
avg_size,
@ -2342,9 +2344,7 @@ int ObTenantIOManager::get_throttled_time(uint64_t group_id, int64_t &throttled_
return ret;
}
int ObTenantIOManager::get_io_func_infos(ObIOFuncUsages &io_func_infos) const
const ObIOFuncUsages& ObTenantIOManager::get_io_func_infos()
{
int ret = OB_SUCCESS;
io_func_infos = io_func_infos_;
return ret;
return io_func_infos_;
}

View File

@ -361,7 +361,7 @@ public:
void inc_ref();
void dec_ref();
int get_throttled_time(uint64_t group_id, int64_t &throttled_time);
int get_io_func_infos(ObIOFuncUsages &io_func_infos) const;
const ObIOFuncUsages& get_io_func_infos();
OB_INLINE int64_t get_object_storage_io_timeout_ms() const { return io_config_.object_storage_io_timeout_ms_; }
TO_STRING_KV(K(is_inited_), K(tenant_id_), K(ref_cnt_), K(io_memory_limit_), K(request_count_), K(result_count_),

View File

@ -580,6 +580,23 @@ int64_t ObIOUsage::to_string(char* buf, const int64_t buf_len) const
return pos;
}
/****************** IOGroupUsage **********************/
int ObIOGroupUsage::record(const double avg_size, const double avg_iops, const int64_t avg_bw,
const int64_t avg_prepare_delay, const int64_t avg_schedule_delay, const int64_t avg_submit_delay,
const int64_t avg_device_delay, const int64_t avg_total_delay)
{
int ret = OB_SUCCESS;
last_stat_.avg_size_ = avg_size;
last_stat_.avg_iops_ = avg_iops;
ATOMIC_STORE(&last_stat_.avg_bw_, avg_bw);
ATOMIC_STORE(&last_stat_.avg_delay_arr_.prepare_delay_us_, avg_prepare_delay);
ATOMIC_STORE(&last_stat_.avg_delay_arr_.schedule_delay_us_, avg_schedule_delay);
ATOMIC_STORE(&last_stat_.avg_delay_arr_.submit_delay_us_, avg_submit_delay);
ATOMIC_STORE(&last_stat_.avg_delay_arr_.device_delay_us_, avg_device_delay);
ATOMIC_STORE(&last_stat_.avg_delay_arr_.total_delay_us_, avg_total_delay);
return ret;
}
int ObIOGroupUsage::calc(double &avg_size, double &avg_iops, int64_t &avg_bw,
int64_t &avg_prepare_delay, int64_t &avg_schedule_delay, int64_t &avg_submit_delay, int64_t &avg_device_delay,
int64_t &avg_total_delay)
@ -587,26 +604,28 @@ int ObIOGroupUsage::calc(double &avg_size, double &avg_iops, int64_t &avg_bw,
int ret = OB_SUCCESS;
int64_t now = ObTimeUtility::fast_current_time();
int64_t last_ts = ATOMIC_LOAD(&last_ts_);
if (0 != last_ts && now - last_ts > 1 * 1000L * 1000L && ATOMIC_BCAS(&last_ts_, last_ts, 0)) {
if (0 != last_ts && now - last_ts > 0 && ATOMIC_BCAS(&last_ts_, last_ts, 0)) {
int64_t size = 0;
int64_t io_count = 0;
const int64_t diff = now - last_ts;
io_count = ATOMIC_SET(&io_count_, 0);
size = ATOMIC_SET(&size_, 0);
ATOMIC_STORE(&last_io_ps_record_, io_count * 1000L * 1000L / diff);
ATOMIC_STORE(&last_io_bw_record_, size * 1000L * 1000L / diff);
ATOMIC_STORE(&last_ts_, now);
if (io_count != 0) {
avg_size = static_cast<double>(size) / io_count;
avg_prepare_delay = total_prepare_delay_ / io_count;
avg_schedule_delay = total_schedule_delay_ / io_count;
avg_submit_delay = total_submit_delay_ / io_count;
avg_device_delay = total_device_delay_ / io_count;
avg_total_delay = total_total_delay_ / io_count;
avg_prepare_delay = total_delay_arr_.prepare_delay_us_ / io_count;
avg_schedule_delay = total_delay_arr_.schedule_delay_us_ / io_count;
avg_submit_delay = total_delay_arr_.submit_delay_us_ / io_count;
avg_device_delay = total_delay_arr_.device_delay_us_ / io_count;
avg_total_delay = total_delay_arr_.total_delay_us_ / io_count;
}
avg_iops = static_cast<double>(io_count * 1000L * 1000L) / diff;
avg_bw = size * 1000L * 1000L / diff;
clear();
if (OB_FAIL(record(avg_size, avg_iops, avg_bw, avg_prepare_delay, avg_schedule_delay, avg_submit_delay, avg_device_delay, avg_total_delay))) {
LOG_WARN("record io group usage failed", K(ret), K(*this));
} else if (OB_FAIL(clear())) {
LOG_WARN("clear io group usage failed", K(ret), K(*this));
}
}
return ret;
}
@ -1169,7 +1188,6 @@ int ObIOSender::enqueue_request(ObIORequest &req)
LOG_WARN("push new req into phy queue failed", K(ret));
} else {
inc_queue_count(req);
ATOMIC_INC(&sender_req_count_);
if (OB_NOT_NULL(req.io_result_)) {
req.io_result_->time_log_.enqueue_ts_ = ObTimeUtility::fast_current_time();
}

View File

@ -164,55 +164,78 @@ struct ObIOUsageInfo
TO_STRING_KV(K(io_stat_), K(io_estimator_), K(avg_iops_), K(avg_byte_), K(avg_prepare_delay_us_), K(avg_schedule_delay_us_), K(avg_submit_delay_us_), K(avg_device_delay_us_), K(avg_total_delay_us_));
};
// avg delay array (us)
struct ObIODelayArr
{
ObIODelayArr():prepare_delay_us_(0), schedule_delay_us_(0), submit_delay_us_(0), device_delay_us_(0), total_delay_us_(0)
{}
~ObIODelayArr(){}
int64_t prepare_delay_us_;
int64_t schedule_delay_us_;
int64_t submit_delay_us_;
int64_t device_delay_us_;
int64_t total_delay_us_;
void inc(const int prepare_delay, const int64_t schedule_delay, const int64_t submit_delay,
const int64_t device_delay, const int64_t total_delay)
{
ATOMIC_FAA(&prepare_delay_us_, prepare_delay);
ATOMIC_FAA(&schedule_delay_us_, schedule_delay);
ATOMIC_FAA(&submit_delay_us_, submit_delay);
ATOMIC_FAA(&device_delay_us_, device_delay);
ATOMIC_FAA(&total_delay_us_, total_delay);
}
int reset()
{
ATOMIC_SET(&prepare_delay_us_, 0);
ATOMIC_SET(&schedule_delay_us_, 0);
ATOMIC_SET(&submit_delay_us_, 0);
ATOMIC_SET(&device_delay_us_, 0);
ATOMIC_SET(&total_delay_us_, 0);
return OB_SUCCESS;
}
TO_STRING_KV(K(prepare_delay_us_), K(schedule_delay_us_), K(submit_delay_us_), K(device_delay_us_), K(total_delay_us_));
};
struct ObIOGroupUsage
{
struct ObIOLastStat
{
ObIOLastStat() : avg_size_(0), avg_iops_(0), avg_bw_(0), avg_delay_arr_()
{}
~ObIOLastStat()
{}
double avg_size_;
double avg_iops_;
int64_t avg_bw_;
ObIODelayArr avg_delay_arr_;
TO_STRING_KV(K(avg_size_), K(avg_iops_), K(avg_bw_), K(avg_delay_arr_));
};
ObIOGroupUsage()
: last_ts_(ObTimeUtility::fast_current_time()),
io_count_(0),
size_(0),
last_io_ps_record_(0),
last_io_bw_record_(0),
total_prepare_delay_(0),
total_schedule_delay_(0),
total_submit_delay_(0),
total_device_delay_(0),
total_total_delay_(0)
: last_ts_(ObTimeUtility::fast_current_time()), last_stat_(), io_count_(0), size_(0), total_delay_arr_()
{}
int calc(double &avg_size, double &avg_iops, int64_t &avg_bw, int64_t &avg_prepare_delay,
int64_t &avg_schedule_delay, int64_t &avg_submit_delay, int64_t &avg_device_delay, int64_t &avg_total_delay);
int calc(double &avg_size, double &avg_iops, int64_t &avg_bw, int64_t &avg_prepare_delay, int64_t &avg_schedule_delay,
int64_t &avg_submit_delay, int64_t &avg_device_delay, int64_t &avg_total_delay);
void inc(const int64_t size, const int prepare_delay, const int64_t schedule_delay, const int64_t submit_delay,
const int64_t device_delay, const int64_t total_delay)
{
ATOMIC_FAA(&size_, size);
ATOMIC_FAA(&io_count_, 1);
ATOMIC_FAA(&total_prepare_delay_, prepare_delay);
ATOMIC_FAA(&total_schedule_delay_, schedule_delay);
ATOMIC_FAA(&total_submit_delay_, submit_delay);
ATOMIC_FAA(&total_device_delay_, device_delay);
ATOMIC_FAA(&total_total_delay_, total_delay);
total_delay_arr_.inc(prepare_delay, schedule_delay, submit_delay, device_delay, total_delay);
}
int clear()
{
ATOMIC_SET(&total_prepare_delay_, 0);
ATOMIC_SET(&total_schedule_delay_, 0);
ATOMIC_SET(&total_submit_delay_, 0);
ATOMIC_SET(&total_device_delay_, 0);
ATOMIC_SET(&total_total_delay_, 0);
return OB_SUCCESS;
int ret = total_delay_arr_.reset();
return ret;
}
int64_t last_ts_;
int record(const double avg_size, const double avg_iops, const int64_t avg_bw, const int64_t avg_prepare_delay,
const int64_t avg_schedule_delay, const int64_t avg_submit_delay, const int64_t avg_device_delay,
const int64_t avg_total_delay);
int64_t last_ts_; // us
ObIOLastStat last_stat_;
int64_t io_count_;
int64_t size_;
int64_t last_io_ps_record_; // iops
int64_t last_io_bw_record_; // iobw
int64_t total_prepare_delay_; // us
int64_t total_schedule_delay_;
int64_t total_submit_delay_;
int64_t total_device_delay_;
int64_t total_total_delay_;
TO_STRING_KV(K(last_ts_), K(io_count_), K(size_), K(last_io_ps_record_), K(last_io_bw_record_),
K(total_prepare_delay_), K(total_schedule_delay_), K(total_submit_delay_), K(total_device_delay_),
K(total_total_delay_));
ObIODelayArr total_delay_arr_; // us
TO_STRING_KV(K(last_ts_), K(last_stat_), K(io_count_), K(size_), K(total_delay_arr_));
};
struct ObIOFailedReqUsageInfo : ObIOGroupUsage
@ -618,6 +641,7 @@ struct ObIOFuncUsageByMode : ObIOGroupUsage
{
};
typedef ObSEArray<ObIOFuncUsageByMode, static_cast<uint8_t>(ObIOGroupMode::MODECNT)> ObIOFuncUsage;
typedef ObSEArray<ObIOFuncUsage, static_cast<uint8_t>(share::ObFunctionType::MAX_FUNCTION_NUM)> ObIOFuncUsageArr;
struct ObIOFuncUsages
{
public:
@ -625,7 +649,7 @@ public:
~ObIOFuncUsages() = default;
int accumulate(ObIORequest &req);
TO_STRING_KV(K(func_usages_));
ObSEArray<ObIOFuncUsage, static_cast<uint8_t>(share::ObFunctionType::MAX_FUNCTION_NUM)> func_usages_;
ObIOFuncUsageArr func_usages_;
};
// Device Health status

View File

@ -48,8 +48,8 @@ ObString oceanbase::share::get_io_function_name(ObFunctionType function_type)
case ObFunctionType::PRIO_DDL_HIGH:
ret_name = ObString("DDL_HIGH");
break;
case ObFunctionType::PRIO_SERVER_BACKGROUND_LOW:
ret_name = ObString("SERVER_BACKGROUND_LOW");
case ObFunctionType::PRIO_GC_MACRO_BLOCK:
ret_name = ObString("GC_MACRO_BLOCK");
break;
case ObFunctionType::PRIO_CLOG_LOW:
ret_name = ObString("CLOG_LOW");

View File

@ -37,13 +37,13 @@ enum ObFunctionType : uint8_t
PRIO_HA_LOW = 6,
PRIO_DDL = 7,
PRIO_DDL_HIGH = 8,
PRIO_SERVER_BACKGROUND_LOW = 9, // block manager scans for bad blocks in the background
PRIO_GC_MACRO_BLOCK = 9, // block manager scans for bad blocks in the background
PRIO_CLOG_LOW = 10,
PRIO_CLOG_MID = 11,
PRIO_CLOG_HIGH = 12,
PRIO_EXTERNAL = 13,
PRIO_EXPORT = 14,
/* add new function type here, or you will have compatibility issues. */
MAX_FUNCTION_NUM
};

View File

@ -1087,7 +1087,7 @@ int ObBlockManager::mark_macro_blocks(
const uint64_t tenant_id = mtl_tenant_ids.at(i);
MacroBlockId macro_id;
MTL_SWITCH(tenant_id) {
CONSUMER_GROUP_FUNC_GUARD(ObFunctionType::PRIO_SERVER_BACKGROUND_LOW);
CONSUMER_GROUP_FUNC_GUARD(ObFunctionType::PRIO_GC_MACRO_BLOCK);
if (OB_FAIL(mark_tenant_blocks(mark_info, macro_id_set,
tmp_status))) {
LOG_WARN("fail to mark tenant blocks", K(ret), K(tenant_id));

View File

@ -406,6 +406,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | GV$OB_COMPACTION_SUGGESTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_DTL_INTERM_RESULT_MONITOR | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_FLT_TRACE_CONFIG | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_FUNCTION_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_GROUP_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_KVCACHE | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_KV_CONNECTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
@ -479,6 +480,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | V$OB_COMPATIBILITY_CONTROL | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_DTL_INTERM_RESULT_MONITOR | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_ENCRYPTED_TABLES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_FUNCTION_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_GROUP_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_KVCACHE | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_KV_CONNECTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
@ -791,6 +793,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | __all_virtual_files | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_flt_config | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_freeze_info | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_function_io_stat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_global_transaction | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_group_io_stat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_import_table_job | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
@ -1955,6 +1958,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | GV$OB_COMPACTION_SUGGESTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_DTL_INTERM_RESULT_MONITOR | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_FLT_TRACE_CONFIG | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_FUNCTION_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_GROUP_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_KVCACHE | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | GV$OB_KV_CONNECTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
@ -2028,6 +2032,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | V$OB_COMPATIBILITY_CONTROL | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_DTL_INTERM_RESULT_MONITOR | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_ENCRYPTED_TABLES | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_FUNCTION_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_GROUP_IO_STAT | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_KVCACHE | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | V$OB_KV_CONNECTIONS | SYSTEM VIEW | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
@ -2339,6 +2344,7 @@ select * from information_schema.tables where table_schema in ('oceanbase', 'mys
| def | oceanbase | __all_virtual_files | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_flt_config | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_freeze_info | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_function_io_stat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_global_transaction | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_group_io_stat | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |
| def | oceanbase | __all_virtual_import_table_job | SYSTEM TABLE | MEMORY | NULL | DYNAMIC | NULL | NULL | NULL | NULL | 0 | NULL | NULL | NULL | NULL | NULL | utf8mb4_general_ci | NULL | NULL | |

View File

@ -6968,6 +6968,38 @@ POS bigint(0) unsigned NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from information_schema.INNODB_SYS_FOREIGN_COLS limit 1);
cnt
1
desc oceanbase.GV$OB_FUNCTION_IO_STAT;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO NULL
SVR_PORT bigint(20) NO NULL
TENANT_ID bigint(20) NO NULL
FUNCTION_NAME varchar(32) NO NULL
MODE varchar(32) NO NULL
SIZE bigint(20) NO NULL
REAL_IOPS bigint(20) NO NULL
REAL_MBPS bigint(20) NO NULL
SCHEDULE_US bigint(20) NO NULL
IO_DELAY_US bigint(20) NO NULL
TOTAL_US bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_FUNCTION_IO_STAT limit 1);
cnt
1
desc oceanbase.V$OB_FUNCTION_IO_STAT;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO
SVR_PORT bigint(20) NO
TENANT_ID bigint(20) NO
FUNCTION_NAME varchar(32) NO
MODE varchar(32) NO
SIZE bigint(20) NO
REAL_IOPS bigint(20) NO
REAL_MBPS bigint(20) NO
SCHEDULE_US bigint(20) NO
IO_DELAY_US bigint(20) NO
TOTAL_US bigint(20) NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_FUNCTION_IO_STAT limit 1);
cnt
1
desc oceanbase.DBA_OB_TEMP_FILES;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO NULL

View File

@ -9908,6 +9908,38 @@ POS bigint(0) unsigned NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from information_schema.INNODB_SYS_FOREIGN_COLS limit 1);
cnt
1
desc oceanbase.GV$OB_FUNCTION_IO_STAT;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO NULL
SVR_PORT bigint(20) NO NULL
TENANT_ID bigint(20) NO NULL
FUNCTION_NAME varchar(32) NO NULL
MODE varchar(32) NO NULL
SIZE bigint(20) NO NULL
REAL_IOPS bigint(20) NO NULL
REAL_MBPS bigint(20) NO NULL
SCHEDULE_US bigint(20) NO NULL
IO_DELAY_US bigint(20) NO NULL
TOTAL_US bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.GV$OB_FUNCTION_IO_STAT limit 1);
cnt
1
desc oceanbase.V$OB_FUNCTION_IO_STAT;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO
SVR_PORT bigint(20) NO
TENANT_ID bigint(20) NO
FUNCTION_NAME varchar(32) NO
MODE varchar(32) NO
SIZE bigint(20) NO
REAL_IOPS bigint(20) NO
REAL_MBPS bigint(20) NO
SCHEDULE_US bigint(20) NO
IO_DELAY_US bigint(20) NO
TOTAL_US bigint(20) NO
select /*+QUERY_TIMEOUT(60000000)*/ count(*) as cnt from (select * from oceanbase.V$OB_FUNCTION_IO_STAT limit 1);
cnt
1
desc oceanbase.DBA_OB_TEMP_FILES;
Field Type Null Key Default Extra
SVR_IP varchar(46) NO NULL

View File

@ -5191,6 +5191,25 @@ IF(count(*) >= 0, 1, 0)
"oceanbase.__all_virtual_vector_index_info runs in single server"
IF(count(*) >= 0, 1, 0)
1
desc oceanbase.__all_virtual_function_io_stat;
Field Type Null Key Default Extra
svr_ip varchar(46) NO PRI NULL
svr_port bigint(20) NO PRI NULL
tenant_id bigint(20) NO PRI NULL
function_name varchar(32) NO PRI NULL
mode varchar(32) NO PRI NULL
size bigint(20) NO NULL
real_iops bigint(20) NO NULL
real_mbps bigint(20) NO NULL
schedule_us bigint(20) NO NULL
io_delay_us bigint(20) NO NULL
total_us bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_function_io_stat;
IF(count(*) >= 0, 1, 0)
1
"oceanbase.__all_virtual_function_io_stat runs in single server"
IF(count(*) >= 0, 1, 0)
1
desc oceanbase.__all_virtual_temp_file;
Field Type Null Key Default Extra
tenant_id bigint(20) NO NULL

View File

@ -9949,6 +9949,25 @@ IF(count(*) >= 0, 1, 0)
"oceanbase.__all_virtual_vector_index_info runs in single server"
IF(count(*) >= 0, 1, 0)
1
desc oceanbase.__all_virtual_function_io_stat;
Field Type Null Key Default Extra
svr_ip varchar(46) NO PRI NULL
svr_port bigint(20) NO PRI NULL
tenant_id bigint(20) NO PRI NULL
function_name varchar(32) NO PRI NULL
mode varchar(32) NO PRI NULL
size bigint(20) NO NULL
real_iops bigint(20) NO NULL
real_mbps bigint(20) NO NULL
schedule_us bigint(20) NO NULL
io_delay_us bigint(20) NO NULL
total_us bigint(20) NO NULL
select /*+QUERY_TIMEOUT(60000000)*/ IF(count(*) >= 0, 1, 0) from oceanbase.__all_virtual_function_io_stat;
IF(count(*) >= 0, 1, 0)
1
"oceanbase.__all_virtual_function_io_stat runs in single server"
IF(count(*) >= 0, 1, 0)
1
desc oceanbase.__all_virtual_temp_file;
Field Type Null Key Default Extra
tenant_id bigint(20) NO NULL

View File

@ -776,6 +776,7 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
12490 __all_virtual_spatial_reference_systems 2 201001 1
12492 __all_virtual_ss_local_cache_info 2 201001 1
12496 __all_virtual_vector_index_info 2 201001 1
12504 __all_virtual_function_io_stat 2 201001 1
12505 __all_virtual_temp_file 2 201001 1
20001 GV$OB_PLAN_CACHE_STAT 1 201001 1
20002 GV$OB_PLAN_CACHE_PLAN_STAT 1 201001 1
@ -1250,6 +1251,8 @@ select 0xffffffffff & table_id, table_name, table_type, database_id, part_num fr
21603 INNODB_SYS_FIELDS 1 201002 1
21604 INNODB_SYS_FOREIGN 1 201002 1
21605 INNODB_SYS_FOREIGN_COLS 1 201002 1
21620 GV$OB_FUNCTION_IO_STAT 1 201001 1
21621 V$OB_FUNCTION_IO_STAT 1 201001 1
21622 DBA_OB_TEMP_FILES 1 201001 1
21623 CDB_OB_TEMP_FILES 1 201001 1
check sys table count and table_id range success