From 58bd792976c7c6231b363a4acb93f27e0da259a9 Mon Sep 17 00:00:00 2001 From: zhengya Date: Tue, 9 Jun 2026 17:12:16 +0800 Subject: [PATCH 1/2] fix: process API timeout --- .../db/metadb/migrator/schema/const.go | 2 +- .../schema/rawsql/mysql/ddl_create_table.sql | 18 ++++++---- .../schema/rawsql/mysql/issu/6.6.1.73.sql | 35 +++++++++++++++++++ server/controller/db/metadb/query/query.go | 4 +-- 4 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 server/controller/db/metadb/migrator/schema/rawsql/mysql/issu/6.6.1.73.sql diff --git a/server/controller/db/metadb/migrator/schema/const.go b/server/controller/db/metadb/migrator/schema/const.go index f9af7732c75..e3e7823dfff 100644 --- a/server/controller/db/metadb/migrator/schema/const.go +++ b/server/controller/db/metadb/migrator/schema/const.go @@ -20,5 +20,5 @@ const ( RAW_SQL_ROOT_DIR = "/etc/metadb/schema/rawsql" DB_VERSION_TABLE = "db_version" - DB_VERSION_EXPECTED = "6.6.1.72" + DB_VERSION_EXPECTED = "6.6.1.73" ) diff --git a/server/controller/db/metadb/migrator/schema/rawsql/mysql/ddl_create_table.sql b/server/controller/db/metadb/migrator/schema/rawsql/mysql/ddl_create_table.sql index 3ef985a19ae..366ffc18164 100644 --- a/server/controller/db/metadb/migrator/schema/rawsql/mysql/ddl_create_table.sql +++ b/server/controller/db/metadb/migrator/schema/rawsql/mysql/ddl_create_table.sql @@ -485,7 +485,8 @@ CREATE TABLE IF NOT EXISTS vm ( INDEX epc_id_index(epc_id), INDEX az_index(az), INDEX region_index(region), - INDEX id_index(`id`) + INDEX id_index(`id`), + INDEX created_at_index(created_at) )ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE vm; @@ -800,7 +801,8 @@ CREATE TABLE IF NOT EXISTS lb ( lcuuid CHAR(64) DEFAULT '', created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP, - deleted_at DATETIME DEFAULT NULL + deleted_at DATETIME DEFAULT NULL, + INDEX created_at_index(created_at) ) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE lb; @@ -1124,7 +1126,8 @@ CREATE TABLE IF NOT EXISTS pod_group ( deleted_at DATETIME DEFAULT NULL, INDEX pod_namespace_id_index(pod_namespace_id), INDEX pod_cluster_id_index(pod_cluster_id), - INDEX lcuuid_index(lcuuid) + INDEX lcuuid_index(lcuuid), + INDEX created_at_index(created_at) ) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE pod_group; @@ -1162,7 +1165,8 @@ CREATE TABLE IF NOT EXISTS pod_rs ( updated_at DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP, deleted_at DATETIME DEFAULT NULL, INDEX pod_group_id_index(pod_group_id), - INDEX pod_namespace_id_index(pod_namespace_id) + INDEX pod_namespace_id_index(pod_namespace_id), + INDEX created_at_index(created_at) ) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE pod_rs; @@ -1201,7 +1205,8 @@ CREATE TABLE IF NOT EXISTS pod ( INDEX az_index(az), INDEX region_index(region), INDEX domain_index(domain), - INDEX lcuuid_index(lcuuid) + INDEX lcuuid_index(lcuuid), + INDEX created_at_index(created_at) ) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; TRUNCATE TABLE pod; @@ -1268,7 +1273,8 @@ CREATE TABLE IF NOT EXISTS process ( deleted_at DATETIME DEFAULT NULL, INDEX domain_sub_domain_gid_updated_at_index(domain, sub_domain, gid, updated_at), INDEX deleted_at_index(deleted_at), - INDEX lcuuid_index(lcuuid) + INDEX lcuuid_index(lcuuid), + INDEX created_at_index(created_at) ) ENGINE=innodb DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; TRUNCATE TABLE process; diff --git a/server/controller/db/metadb/migrator/schema/rawsql/mysql/issu/6.6.1.73.sql b/server/controller/db/metadb/migrator/schema/rawsql/mysql/issu/6.6.1.73.sql new file mode 100644 index 00000000000..0593c080f5c --- /dev/null +++ b/server/controller/db/metadb/migrator/schema/rawsql/mysql/issu/6.6.1.73.sql @@ -0,0 +1,35 @@ +DROP PROCEDURE IF EXISTS AddIndexIfNotExists; + +CREATE PROCEDURE AddIndexIfNotExists( + IN tableName VARCHAR(255), + IN indexName VARCHAR(255), + IN indexCol VARCHAR(255) +) +BEGIN + DECLARE index_count INT; + + SELECT COUNT(*) + INTO index_count + FROM information_schema.statistics + WHERE table_schema = DATABASE() + AND table_name = tableName + AND column_name = indexCol; + + IF index_count = 0 THEN + SET @sql = CONCAT('ALTER TABLE ', tableName, ' ADD INDEX ', indexName, ' (', indexCol, ') USING BTREE'); + PREPARE stmt FROM @sql; + EXECUTE stmt; + DEALLOCATE PREPARE stmt; + END IF; +END; + +CALL AddIndexIfNotExists('vm', 'created_at_index', 'created_at'); +CALL AddIndexIfNotExists('lb', 'created_at_index', 'created_at'); +CALL AddIndexIfNotExists('pod_group', 'created_at_index', 'created_at'); +CALL AddIndexIfNotExists('pod_rs', 'created_at_index', 'created_at'); +CALL AddIndexIfNotExists('pod', 'created_at_index', 'created_at'); +CALL AddIndexIfNotExists('process', 'created_at_index', 'created_at'); + +DROP PROCEDURE IF EXISTS AddIndexIfNotExists; + +UPDATE db_version SET version="6.6.1.73"; diff --git a/server/controller/db/metadb/query/query.go b/server/controller/db/metadb/query/query.go index ae0fccd920f..261ab152bef 100644 --- a/server/controller/db/metadb/query/query.go +++ b/server/controller/db/metadb/query/query.go @@ -28,7 +28,7 @@ func FindInBatches[T any](query *gorm.DB) ([]*T, error) { pageCount := int(metadb.GetConfig().BatchSize0) pageData := make([]*T, 0) for pageIndex == 0 || len(pageData) == pageCount { - err := query.Find(&pageData).Limit(pageCount).Offset(pageIndex * pageCount).Error + err := query.Limit(pageCount).Offset(pageIndex * pageCount).Find(&pageData).Error if err != nil { return []*T{}, err } @@ -45,7 +45,7 @@ func FindInBatchesObj[T any](query *gorm.DB) ([]T, error) { // TODO unify return pageCount := int(metadb.GetConfig().BatchSize0) pageData := make([]T, 0) for pageIndex == 0 || len(pageData) == pageCount { - err := query.Find(&pageData).Limit(pageCount).Offset(pageIndex * pageCount).Error + err := query.Limit(pageCount).Offset(pageIndex * pageCount).Find(&pageData).Error if err != nil { return []T{}, err } From 0488561964115896a7fd126669f2e22c6111b5cf Mon Sep 17 00:00:00 2001 From: zhengya Date: Tue, 9 Jun 2026 18:07:58 +0800 Subject: [PATCH 2/2] feat: disable ID allocation for process --- server/controller/recorder/db/idmng/manager.go | 1 - server/controller/recorder/db/process.go | 2 +- server/controller/recorder/updater/process.go | 1 + 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/controller/recorder/db/idmng/manager.go b/server/controller/recorder/db/idmng/manager.go index 498dd8444a9..41a32441ead 100644 --- a/server/controller/recorder/db/idmng/manager.go +++ b/server/controller/recorder/db/idmng/manager.go @@ -72,7 +72,6 @@ func newIDManager(cfg RecorderConfig, orgID int) (*IDManager, error) { ctrlrcommon.RESOURCE_TYPE_POD_INGRESS_EN: newIDPool[mysqlmodel.PodIngress](mng.org, ctrlrcommon.RESOURCE_TYPE_POD_INGRESS_EN, cfg.ResourceMaxID1), ctrlrcommon.RESOURCE_TYPE_POD_GROUP_EN: newIDPool[mysqlmodel.PodGroup](mng.org, ctrlrcommon.RESOURCE_TYPE_POD_GROUP_EN, cfg.ResourceMaxID1), ctrlrcommon.RESOURCE_TYPE_POD_REPLICA_SET_EN: newIDPool[mysqlmodel.PodReplicaSet](mng.org, ctrlrcommon.RESOURCE_TYPE_POD_REPLICA_SET_EN, cfg.ResourceMaxID1), - ctrlrcommon.RESOURCE_TYPE_PROCESS_EN: newIDPool[mysqlmodel.Process](mng.org, ctrlrcommon.RESOURCE_TYPE_PROCESS_EN, cfg.ResourceMaxID1), ctrlrcommon.RESOURCE_TYPE_GPROCESS_EN: newProcessGIDPool(mng.org, ctrlrcommon.RESOURCE_TYPE_GPROCESS_EN, cfg.ResourceMaxID1), ctrlrcommon.RESOURCE_TYPE_VTAP_EN: newIDPool[mysqlmodel.VTap](mng.org, ctrlrcommon.RESOURCE_TYPE_VTAP_EN, cfg.ResourceMaxID0), } diff --git a/server/controller/recorder/db/process.go b/server/controller/recorder/db/process.go index 6fd4a2ec3fd..798f6ac055d 100644 --- a/server/controller/recorder/db/process.go +++ b/server/controller/recorder/db/process.go @@ -30,7 +30,7 @@ func NewProcess() *Process { newOperatorBase[*mysqlmodel.Process]( ctrlrcommon.RESOURCE_TYPE_PROCESS_EN, true, - true, + false, ), } return operator diff --git a/server/controller/recorder/updater/process.go b/server/controller/recorder/updater/process.go index 862d677a68c..25d271c8a90 100644 --- a/server/controller/recorder/updater/process.go +++ b/server/controller/recorder/updater/process.go @@ -213,6 +213,7 @@ func (p *Process) beforeAddPage(dbData []*metadbmodel.Process) ([]*metadbmodel.P identifierToNewGID[identifier] = item.GID } } + log.Infof("%s identifier generation completed", p.resourceType, p.metadata.LogPrefixes) var createdGIDs []uint32 if len(identifierToNewGID) > 0 { // TODO combine with operator module