Skip to content

Commit 79e9791

Browse files
ZhengYa-0110SongZhen0704
authored andcommitted
fix: process API timeout
1 parent 0d882c6 commit 79e9791

4 files changed

Lines changed: 50 additions & 9 deletions

File tree

server/controller/db/metadb/migrator/schema/const.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@ const (
2020
RAW_SQL_ROOT_DIR = "/etc/metadb/schema/rawsql"
2121

2222
DB_VERSION_TABLE = "db_version"
23-
DB_VERSION_EXPECTED = "6.6.1.72"
23+
DB_VERSION_EXPECTED = "6.6.1.73"
2424
)

server/controller/db/metadb/migrator/schema/rawsql/mysql/ddl_create_table.sql

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -485,7 +485,8 @@ CREATE TABLE IF NOT EXISTS vm (
485485
INDEX epc_id_index(epc_id),
486486
INDEX az_index(az),
487487
INDEX region_index(region),
488-
INDEX id_index(`id`)
488+
INDEX id_index(`id`),
489+
INDEX created_at_index(created_at)
489490
)ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
490491
TRUNCATE TABLE vm;
491492

@@ -800,7 +801,8 @@ CREATE TABLE IF NOT EXISTS lb (
800801
lcuuid CHAR(64) DEFAULT '',
801802
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
802803
updated_at DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
803-
deleted_at DATETIME DEFAULT NULL
804+
deleted_at DATETIME DEFAULT NULL,
805+
INDEX created_at_index(created_at)
804806
) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
805807
TRUNCATE TABLE lb;
806808

@@ -1124,7 +1126,8 @@ CREATE TABLE IF NOT EXISTS pod_group (
11241126
deleted_at DATETIME DEFAULT NULL,
11251127
INDEX pod_namespace_id_index(pod_namespace_id),
11261128
INDEX pod_cluster_id_index(pod_cluster_id),
1127-
INDEX lcuuid_index(lcuuid)
1129+
INDEX lcuuid_index(lcuuid),
1130+
INDEX created_at_index(created_at)
11281131
) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
11291132
TRUNCATE TABLE pod_group;
11301133

@@ -1162,7 +1165,8 @@ CREATE TABLE IF NOT EXISTS pod_rs (
11621165
updated_at DATETIME NOT NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
11631166
deleted_at DATETIME DEFAULT NULL,
11641167
INDEX pod_group_id_index(pod_group_id),
1165-
INDEX pod_namespace_id_index(pod_namespace_id)
1168+
INDEX pod_namespace_id_index(pod_namespace_id),
1169+
INDEX created_at_index(created_at)
11661170
) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
11671171
TRUNCATE TABLE pod_rs;
11681172

@@ -1201,7 +1205,8 @@ CREATE TABLE IF NOT EXISTS pod (
12011205
INDEX az_index(az),
12021206
INDEX region_index(region),
12031207
INDEX domain_index(domain),
1204-
INDEX lcuuid_index(lcuuid)
1208+
INDEX lcuuid_index(lcuuid),
1209+
INDEX created_at_index(created_at)
12051210
) ENGINE=innodb AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
12061211
TRUNCATE TABLE pod;
12071212

@@ -1268,7 +1273,8 @@ CREATE TABLE IF NOT EXISTS process (
12681273
deleted_at DATETIME DEFAULT NULL,
12691274
INDEX domain_sub_domain_gid_updated_at_index(domain, sub_domain, gid, updated_at),
12701275
INDEX deleted_at_index(deleted_at),
1271-
INDEX lcuuid_index(lcuuid)
1276+
INDEX lcuuid_index(lcuuid),
1277+
INDEX created_at_index(created_at)
12721278
) ENGINE=innodb DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
12731279
TRUNCATE TABLE process;
12741280

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
DROP PROCEDURE IF EXISTS AddIndexIfNotExists;
2+
3+
CREATE PROCEDURE AddIndexIfNotExists(
4+
IN tableName VARCHAR(255),
5+
IN indexName VARCHAR(255),
6+
IN indexCol VARCHAR(255)
7+
)
8+
BEGIN
9+
DECLARE index_count INT;
10+
11+
SELECT COUNT(*)
12+
INTO index_count
13+
FROM information_schema.statistics
14+
WHERE table_schema = DATABASE()
15+
AND table_name = tableName
16+
AND column_name = indexCol;
17+
18+
IF index_count = 0 THEN
19+
SET @sql = CONCAT('ALTER TABLE ', tableName, ' ADD INDEX ', indexName, ' (', indexCol, ') USING BTREE');
20+
PREPARE stmt FROM @sql;
21+
EXECUTE stmt;
22+
DEALLOCATE PREPARE stmt;
23+
END IF;
24+
END;
25+
26+
CALL AddIndexIfNotExists('vm', 'created_at_index', 'created_at');
27+
CALL AddIndexIfNotExists('lb', 'created_at_index', 'created_at');
28+
CALL AddIndexIfNotExists('pod_group', 'created_at_index', 'created_at');
29+
CALL AddIndexIfNotExists('pod_rs', 'created_at_index', 'created_at');
30+
CALL AddIndexIfNotExists('pod', 'created_at_index', 'created_at');
31+
CALL AddIndexIfNotExists('process', 'created_at_index', 'created_at');
32+
33+
DROP PROCEDURE IF EXISTS AddIndexIfNotExists;
34+
35+
UPDATE db_version SET version="6.6.1.73";

server/controller/db/metadb/query/query.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func FindInBatches[T any](query *gorm.DB) ([]*T, error) {
2828
pageCount := int(metadb.GetConfig().BatchSize0)
2929
pageData := make([]*T, 0)
3030
for pageIndex == 0 || len(pageData) == pageCount {
31-
err := query.Find(&pageData).Limit(pageCount).Offset(pageIndex * pageCount).Error
31+
err := query.Limit(pageCount).Offset(pageIndex * pageCount).Find(&pageData).Error
3232
if err != nil {
3333
return []*T{}, err
3434
}
@@ -45,7 +45,7 @@ func FindInBatchesObj[T any](query *gorm.DB) ([]T, error) { // TODO unify return
4545
pageCount := int(metadb.GetConfig().BatchSize0)
4646
pageData := make([]T, 0)
4747
for pageIndex == 0 || len(pageData) == pageCount {
48-
err := query.Find(&pageData).Limit(pageCount).Offset(pageIndex * pageCount).Error
48+
err := query.Limit(pageCount).Offset(pageIndex * pageCount).Find(&pageData).Error
4949
if err != nil {
5050
return []T{}, err
5151
}

0 commit comments

Comments
 (0)