Skip to content

Optimized GetHostScriptExecutionResults MySQL query for for large numbers of script results. (#32595)#33305

Merged
getvictor merged 2 commits into
rc-patch-fleet-v4.73.2from
victor-rc-patch-fleet-v4.73.2-2
Sep 22, 2025
Merged

Optimized GetHostScriptExecutionResults MySQL query for for large numbers of script results. (#32595)#33305
getvictor merged 2 commits into
rc-patch-fleet-v4.73.2from
victor-rc-patch-fleet-v4.73.2-2

Conversation

@getvictor
Copy link
Copy Markdown
Member

Related issue: Resolves #32295

Cherry pick + schema update

…bers of script results. (#32595)

Fixes #32295

The issue was identified/fixed using this performance test:
https://gist.github.com/getvictor/b289b7b14981fb7bf77e57c80af117d1

With the fix:
  - 100 records: 2.6ms (similar)
  - 1,000 records: ~7ms (32x faster)
  - 5,000 records: ~10ms (530x faster)
  - 10,000 records: 13ms (1,430x faster)
  - 20,000 records: ~25ms (2,960x faster)
  - 40,000 records: 50ms (6,000x faster)

# Checklist for submitter

- [x] Changes file added for user-visible changes in `changes/`,
`orbit/changes/` or `ee/fleetd-chrome/changes`.
See [Changes
files](https://github.com/fleetdm/fleet/blob/main/docs/Contributing/guides/committing-changes.md#changes-files)
for more information.

## Testing

- [x] QA'd all new/changed functionality manually

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Script details now surface the most relevant “latest” status per
script, prioritizing upcoming executions when present.
- Performance Improvements
- Significantly faster loading of host script results and script
details, especially at large scale.
  - Improved responsiveness when filtering/sorting script results.
- Documentation
- Added changelog entry describing the optimization to script results
handling.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

(cherry picked from commit 73b629e)
@getvictor getvictor changed the title Victor rc patch fleet v4.73.2 2 Optimized GetHostScriptExecutionResults MySQL query for for large numbers of script results. (#32595) Sep 22, 2025
@getvictor getvictor marked this pull request as ready for review September 22, 2025 20:02
@getvictor getvictor requested a review from a team as a code owner September 22, 2025 20:02
@getvictor getvictor merged commit 3aeda99 into rc-patch-fleet-v4.73.2 Sep 22, 2025
25 of 31 checks passed
@getvictor getvictor deleted the victor-rc-patch-fleet-v4.73.2-2 branch September 22, 2025 20:13
@codecov
Copy link
Copy Markdown

codecov Bot commented Sep 22, 2025

Codecov Report

❌ Patch coverage is 90.81633% with 9 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (rc-patch-fleet-v4.73.2@ea1d5db). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...s/20250904115553_OptimizeHostScriptResultsIndex.go 67.85% 7 Missing and 2 partials ⚠️
Additional details and impacted files
@@                    Coverage Diff                    @@
##             rc-patch-fleet-v4.73.2   #33305   +/-   ##
=========================================================
  Coverage                          ?   63.22%           
=========================================================
  Files                             ?     1292           
  Lines                             ?   174390           
  Branches                          ?        0           
=========================================================
  Hits                              ?   110257           
  Misses                            ?    54588           
  Partials                          ?     9545           
Flag Coverage Δ
backend 63.22% <90.81%> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants