From 245d650029b7cfe7845d0f30e97fdb0baad1483f Mon Sep 17 00:00:00 2001 From: Florent Poinsard Date: Tue, 2 Apr 2024 14:54:48 -0600 Subject: [PATCH] Fix performance issue on the status page Signed-off-by: Florent Poinsard --- go/exec/exec.go | 24 ++---------------------- go/server/api.go | 2 +- 2 files changed, 3 insertions(+), 23 deletions(-) diff --git a/go/exec/exec.go b/go/exec/exec.go index 90d336ca9..973524fa0 100644 --- a/go/exec/exec.go +++ b/go/exec/exec.go @@ -49,6 +49,7 @@ const ( type Exec struct { UUID uuid.UUID + RawUUID string AnsibleConfig ansible.Config Source string GitRef string @@ -456,32 +457,11 @@ func GetRecentExecutions(client storage.SQLClient) ([]*Exec, error) { } defer result.Close() for result.Next() { - var eUUID string exec := &Exec{} - err = result.Scan(&eUUID, &exec.Status, &exec.GitRef, &exec.StartedAt, &exec.FinishedAt, &exec.Source, &exec.TypeOf, &exec.PullNB, &exec.GolangVersion) + err = result.Scan(&exec.RawUUID, &exec.Status, &exec.GitRef, &exec.StartedAt, &exec.FinishedAt, &exec.Source, &exec.TypeOf, &exec.PullNB, &exec.GolangVersion) if err != nil { return nil, err } - exec.UUID, err = uuid.Parse(eUUID) - if err != nil { - return nil, err - } - if exec.TypeOf != "micro" { - macroResult, err := client.Select("SELECT m.vtgate_planner_version FROM macrobenchmark m, execution e WHERE e.uuid = m.exec_uuid AND e.uuid = ? LIMIT 1", eUUID) - if err != nil { - return nil, err - } - defer macroResult.Close() - - var plannerVersion string - if macroResult.Next() { - err = macroResult.Scan(&plannerVersion) - if err != nil { - return nil, err - } - } - exec.VtgatePlannerVersion = plannerVersion - } res = append(res, exec) } return res, nil diff --git a/go/server/api.go b/go/server/api.go index 22402978d..9c309c5e1 100644 --- a/go/server/api.go +++ b/go/server/api.go @@ -60,7 +60,7 @@ func (s *Server) getRecentExecutions(c *gin.Context) { recentExecs := make([]RecentExecutions, 0, len(execs)) for _, e := range execs { recentExecs = append(recentExecs, RecentExecutions{ - UUID: e.UUID.String(), + UUID: e.RawUUID, Source: e.Source, GitRef: e.GitRef, Status: e.Status,