[CP] [DATA_DICT] Fix dump base data_dictionary with 500 tenant_id
This commit is contained in:
@ -415,6 +415,7 @@ int ObDataDictService::generate_dict_and_dump_(const share::SCN &snapshot_scn)
|
|||||||
int64_t schema_version = OB_INVALID_VERSION;
|
int64_t schema_version = OB_INVALID_VERSION;
|
||||||
ObArray<uint64_t> database_ids;
|
ObArray<uint64_t> database_ids;
|
||||||
ObArray<uint64_t> table_ids;
|
ObArray<uint64_t> table_ids;
|
||||||
|
int64_t filter_table_count = 0;
|
||||||
|
|
||||||
if (OB_FAIL(sql_client_.get_schema_version(tenant_id_, snapshot_scn, schema_version))) {
|
if (OB_FAIL(sql_client_.get_schema_version(tenant_id_, snapshot_scn, schema_version))) {
|
||||||
ret = OB_SCHEMA_EAGAIN;
|
ret = OB_SCHEMA_EAGAIN;
|
||||||
@ -424,7 +425,7 @@ int ObDataDictService::generate_dict_and_dump_(const share::SCN &snapshot_scn)
|
|||||||
DDLOG(WARN, "handle_tenant_meta_ failed", KR(ret), K(snapshot_scn));
|
DDLOG(WARN, "handle_tenant_meta_ failed", KR(ret), K(snapshot_scn));
|
||||||
} else if (OB_FAIL(handle_database_metas_(schema_version, database_ids))) {
|
} else if (OB_FAIL(handle_database_metas_(schema_version, database_ids))) {
|
||||||
DDLOG(WARN, "handle_database_metas_ failed", KR(ret), K(snapshot_scn));
|
DDLOG(WARN, "handle_database_metas_ failed", KR(ret), K(snapshot_scn));
|
||||||
} else if (OB_FAIL(handle_table_metas_(schema_version, table_ids))) {
|
} else if (OB_FAIL(handle_table_metas_(schema_version, table_ids, filter_table_count))) {
|
||||||
DDLOG(WARN, "handle_table_metas_ failed", KR(ret), K(snapshot_scn), K(schema_version));
|
DDLOG(WARN, "handle_table_metas_ failed", KR(ret), K(snapshot_scn), K(schema_version));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -433,7 +434,8 @@ int ObDataDictService::generate_dict_and_dump_(const share::SCN &snapshot_scn)
|
|||||||
K(snapshot_scn),
|
K(snapshot_scn),
|
||||||
K(schema_version),
|
K(schema_version),
|
||||||
"database_count", database_ids.count(),
|
"database_count", database_ids.count(),
|
||||||
"table_count", table_ids.count());
|
"table_count", table_ids.count(),
|
||||||
|
K(filter_table_count));
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -602,12 +604,15 @@ int ObDataDictService::handle_database_metas_(
|
|||||||
|
|
||||||
int ObDataDictService::handle_table_metas_(
|
int ObDataDictService::handle_table_metas_(
|
||||||
const int64_t schema_version,
|
const int64_t schema_version,
|
||||||
const ObIArray<uint64_t> &table_ids)
|
const ObIArray<uint64_t> &table_ids,
|
||||||
|
int64_t &filter_table_count)
|
||||||
{
|
{
|
||||||
int ret = OB_SUCCESS;
|
int ret = OB_SUCCESS;
|
||||||
ObArenaAllocator tb_meta_allocator("ObDatDictTbMeta");
|
lib::ObMemAttr mem_attr(tenant_id_, "ObDatDictTbMeta");
|
||||||
schema::ObSchemaGetterGuard schema_guard; // will reset while getting schem_guard
|
ObArenaAllocator tb_meta_allocator(mem_attr);
|
||||||
static const int64_t batch_table_meta_size = 200;
|
static const int64_t batch_table_meta_size = 200;
|
||||||
|
filter_table_count = 0;
|
||||||
|
schema::ObSchemaGetterGuard schema_guard; // will reset while getting schem_guard
|
||||||
|
|
||||||
for (int i = 0; OB_SUCC(ret) && ! stop_flag_ && i < table_ids.count(); i++) {
|
for (int i = 0; OB_SUCC(ret) && ! stop_flag_ && i < table_ids.count(); i++) {
|
||||||
const ObTableSchema *table_schema = NULL;
|
const ObTableSchema *table_schema = NULL;
|
||||||
@ -633,6 +638,7 @@ int ObDataDictService::handle_table_metas_(
|
|||||||
} else if (OB_FAIL(filter_table_(*table_schema, is_filtered))) {
|
} else if (OB_FAIL(filter_table_(*table_schema, is_filtered))) {
|
||||||
DDLOG(WARN, "filter_table_ failed", KR(ret), K(is_filtered), KPC(table_schema));
|
DDLOG(WARN, "filter_table_ failed", KR(ret), K(is_filtered), KPC(table_schema));
|
||||||
} else if (is_filtered) {
|
} else if (is_filtered) {
|
||||||
|
filter_table_count++;
|
||||||
DDLOG(DEBUG, "filter_table_",
|
DDLOG(DEBUG, "filter_table_",
|
||||||
K(schema_version),
|
K(schema_version),
|
||||||
"table_id", table_schema->get_table_id(),
|
"table_id", table_schema->get_table_id(),
|
||||||
|
@ -104,7 +104,8 @@ private:
|
|||||||
const ObIArray<uint64_t> &database_ids);
|
const ObIArray<uint64_t> &database_ids);
|
||||||
int handle_table_metas_(
|
int handle_table_metas_(
|
||||||
const int64_t schema_version,
|
const int64_t schema_version,
|
||||||
const ObIArray<uint64_t> &table_ids);
|
const ObIArray<uint64_t> &table_ids,
|
||||||
|
int64_t &filter_table_count);
|
||||||
int filter_table_(const share::schema::ObTableSchema &table_schema, bool &is_filtered);
|
int filter_table_(const share::schema::ObTableSchema &table_schema, bool &is_filtered);
|
||||||
private:
|
private:
|
||||||
static const int64_t TIMER_TASK_INTERVAL;
|
static const int64_t TIMER_TASK_INTERVAL;
|
||||||
|
Reference in New Issue
Block a user