Skip to content

[Optimize/优化]: SQL Out of sort memory in GetRequestExecutions #1473

@LazuliKao

Description

@LazuliKao

Pre-submission Checklist / 提交前检查

  • I have searched the existing issues and this optimization has not been suggested / 我已搜索现有 issues,此优化建议尚未被提出
  • I have read the documentation / 我已阅读文档

Current State / 当前状态

查看请求信息 -> 执行记录

时常触发遇到爆 MySQL 内存

Problem or Bottleneck / 问题或瓶颈

Request:

{
    "query": "\n    query GetRequestExecutions(\n      $requestID: ID!\n      $first: Int\n      $after: Cursor\n      $orderBy: RequestExecutionOrder\n      $where: RequestExecutionWhereInput\n    ) {\n      node(id: $requestID) {\n        ... on Request {\n          executions(first: $first, after: $after, orderBy: $orderBy, where: $where) {\n            edges {\n              node {\n                id\n                createdAt\n                updatedAt\n                requestID\n              channel {\n                  id\n                  name\n                  type\n                  baseURL\n              }\n                modelID\n                projectID\n                dataStorageID\n                requestHeaders\n                requestBody\n                responseBody\n                responseChunks\n                errorMessage\n                responseStatusCode\n                status\n                format\n                stream\n                metricsFirstTokenLatencyMs\n                metricsReasoningDurationMs\n              }\n              cursor\n            }\n            pageInfo {\n              hasNextPage\n              hasPreviousPage\n              startCursor\n              endCursor\n            }\n            totalCount\n          }\n        }\n      }\n    }\n  ",
    "variables": {
        "requestID": "gid://axonhub/Request/70065",
        "first": 10,
        "orderBy": {
            "field": "CREATED_AT",
            "direction": "DESC"
        }
    },
    "operationName": "GetRequestExecutions"
}
query GetRequestExecutions(
    $requestID: ID!
    $first: Int
    $after: Cursor
    $orderBy: RequestExecutionOrder
    $where: RequestExecutionWhereInput
) {
    node(id: $requestID) {
    ... on Request {
        executions(first: $first, after: $after, orderBy: $orderBy, where: $where) {
        edges {
            node {
            id
            createdAt
            updatedAt
            requestID
            channel {
                id
                name
                type
                baseURL
            }
            modelID
            projectID
            dataStorageID
            requestHeaders
            requestBody
            responseBody
            responseChunks
            errorMessage
            responseStatusCode
            status
            format
            stream
            metricsFirstTokenLatencyMs
            metricsReasoningDurationMs
            }
            cursor
        }
        pageInfo {
            hasNextPage
            hasPreviousPage
            startCursor
            endCursor
        }
        totalCount
        }
    }
    }
}

Response:

{
    "errors": [
        {
            "message": "Error 1038 (HY001): Out of sort memory, consider increasing server sort buffer size",
            "path": [
                "node"
            ]
        }
    ],
    "data": {
        "node": null
    }
}

Proposed Optimization / 优化方案

可能要对排序的列加索引?

Expected Benefit / 期望收益

优化表结构

Optimization Type / 优化类型

性能 / Performance

Affected Area / 影响区域

Other / 其他

Additional Context / 其他补充信息

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions