Skip to content

feat(frontend): add sort by execution time with nulls last#5890

Open
roshiiiz wants to merge 8 commits into
apache:mainfrom
roshiiiz:feat/workflow-sort-execution-time
Open

feat(frontend): add sort by execution time with nulls last#5890
roshiiiz wants to merge 8 commits into
apache:mainfrom
roshiiiz:feat/workflow-sort-execution-time

Conversation

@roshiiiz

Copy link
Copy Markdown

What changes were proposed in this PR?

This PR adds the ability to sort workflows by "Execution Time" on the main Dashboard, and ensures that workflows which have never been executed (where execution time is null) are pushed to the bottom of the list rather than awkwardly floating at the top.

Changes made:

  • Added "Execution time" as an option in the frontend sort dropdown menu (sort-method.ts, sort-button.component).
  • Updated UnifiedResourceSchema.scala in the backend to include resourceExecutionTimeField.
  • Updated DashboardResource.scala and WorkflowSearchQueryBuilder.scala to handle the new sort condition, specifically appending .nullsLast() so that un-executed workflows drop to the bottom of the list.

Any related issues, documentation, discussions?

Issue#3406

How was this PR tested?

Tested manually in a local development environment:

  1. Booted the local dashboard and backend via sbt.
  2. Created a new, unexecuted "Untitled Workflow".
  3. Navigated to the Dashboard and sorted by "Execution Time".
  4. Verified that the unexecuted workflow correctly fell to the bottom of the list instead of appearing at the top.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Antigravity (DeepMind)

@github-actions

Copy link
Copy Markdown
Contributor

👋 Thanks for your first contribution to Texera, @roshiiiz!

If you're looking for a good place to start, browse issues labeled starter-task; they're scoped to be approachable for newcomers.

You can drive common housekeeping yourself by commenting one of these commands on its own line:

  • Issues. Comment /take to assign an open issue to yourself, or /untake to release it. You can find unclaimed work with the search filter is:issue is:open no:assignee.
  • Sub-issues. To link issues into a parent/child hierarchy, comment /sub-issue #5166 #5222 on the parent to attach those children (or /unsub-issue #5166 #5222 to detach them). From a child issue, comment /parent-issue #5166 to set its parent, or /unparent-issue to clear it (the current parent is detected automatically). References may be written as #5166 or as a bare 5166; cross-repository references are not supported.
  • Pull requests (author only). Comment /request-review @user to request a review from someone, or /unrequest-review @user to withdraw that request.

Each command must match exactly: /take this will not work, only /take does. For the full contribution flow, see CONTRIBUTING.md.

@github-actions github-actions Bot added feature engine frontend Changes related to the frontend GUI labels Jun 22, 2026
@github-actions

github-actions Bot commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • Contributors with relevant context: @aglinxinyuan, @xuang7, @carloea2
    You can notify them by mentioning @aglinxinyuan, @xuang7, @carloea2 in a comment.

@roshiiiz roshiiiz changed the title feat(dashboard): add sort by execution time with nulls last feat(frontend): add sort by execution time with nulls last Jun 22, 2026
@roshiiiz

Copy link
Copy Markdown
Author

/request-review @xuang7

@github-actions github-actions Bot requested a review from xuang7 June 22, 2026 15:47
@codecov-commenter

codecov-commenter commented Jun 23, 2026

Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

@github-actions

github-actions Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

⚠️ Benchmark changes need a look

🟢 2 better · 🔴 3 worse · ⚪ 10 noise (<±5%) · 0 without baseline

Compared against main 1c580e5 benchmarked on this same runner, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.

Dashboard · Run

config throughput MB/s latency max Δ latest / 7d
🔴 bs=10 sw=10 sl=64 417 0.255 24,350/34,335/34,335 us 🔴 +27.9% / 🔴 +122.1%
🟢 bs=100 sw=10 sl=64 955 0.583 102,465/120,028/120,028 us 🟢 -14.2% / 🔴 +9.1%
bs=1000 sw=10 sl=64 1,114 0.68 897,313/925,525/925,525 us ⚪ within ±5% / 🟢 -14.8%
Baseline details

Latest main 1c580e5 from same runner

config metric PR latest main 7d avg Δ latest Δ 7d
bs=10 sw=10 sl=64 throughput 417 tuples/sec 450 tuples/sec 756.6 tuples/sec -7.3% -44.9%
bs=10 sw=10 sl=64 MB/s 0.255 MB/s 0.274 MB/s 0.462 MB/s -6.9% -44.8%
bs=10 sw=10 sl=64 p50 24,350 us 19,036 us 13,009 us +27.9% +87.2%
bs=10 sw=10 sl=64 p95 34,335 us 35,912 us 15,463 us -4.4% +122.1%
bs=10 sw=10 sl=64 p99 34,335 us 35,912 us 18,561 us -4.4% +85.0%
bs=100 sw=10 sl=64 throughput 955 tuples/sec 931 tuples/sec 963.83 tuples/sec +2.6% -0.9%
bs=100 sw=10 sl=64 MB/s 0.583 MB/s 0.568 MB/s 0.588 MB/s +2.6% -0.9%
bs=100 sw=10 sl=64 p50 102,465 us 104,618 us 103,320 us -2.1% -0.8%
bs=100 sw=10 sl=64 p95 120,028 us 139,972 us 110,058 us -14.2% +9.1%
bs=100 sw=10 sl=64 p99 120,028 us 139,972 us 118,543 us -14.2% +1.3%
bs=1000 sw=10 sl=64 throughput 1,114 tuples/sec 1,093 tuples/sec 989.07 tuples/sec +1.9% +12.6%
bs=1000 sw=10 sl=64 MB/s 0.68 MB/s 0.667 MB/s 0.604 MB/s +1.9% +12.6%
bs=1000 sw=10 sl=64 p50 897,313 us 910,993 us 1,015,599 us -1.5% -11.6%
bs=1000 sw=10 sl=64 p95 925,525 us 974,155 us 1,055,944 us -5.0% -12.4%
bs=1000 sw=10 sl=64 p99 925,525 us 974,155 us 1,086,834 us -5.0% -14.8%
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,479.11,200,128000,417,0.255,24350.26,34335.30,34335.30
1,100,10,64,20,2094.24,2000,1280000,955,0.583,102464.60,120028.29,120028.29
2,1000,10,64,20,17947.00,20000,12800000,1114,0.680,897313.29,925525.30,925525.30

@xuang7 xuang7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the PR! Overall, this looks good to me and tested locally. One small thing: frontend/junit.xml seems to have been accidentally committed. Could you remove it? Also, we can consider adjusting the order of the sort options. This option might fit better with the other "By ..." options instead of being placed after all the other options.

Image

@roshiiiz

Copy link
Copy Markdown
Author

@xuang7
Thanks for the review! I've updated the PR with those changes:

  1. Removed frontend/junit.xml from tracking.
  2. Reordered the sort options so "By Execution Time" sits right under "By Create Time".
    Let me know if there's anything else!

@xuang7 xuang7 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

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

Labels

engine feature frontend Changes related to the frontend GUI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants