Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Discover] [Unified Data Table] Conditionally use overscanRowCount when Document column isn't visible #192332

Merged

Conversation

davismcphee
Copy link
Contributor

@davismcphee davismcphee commented Sep 9, 2024

Summary

Part of #191249 included using the overscanRowCount property of EUI data grid to render some additional data grid rows off screen, which greatly reduces pop in when scrolling through the grid. While the performance cost of this low in most cases, it has an impact in certain situations such as when documents have many fields and the Document column is visible (e.g. Discover's many_fields performance journey). This is because the Document column can render many DOM elements in each of its cells, which EUI data grid struggles to handle.

This PR updates Unified Data Table to only use overscanRowCount when the Document column isn't visible, so we'll still benefit from the scrolling improvements when columns are selected, but won't take the performance hit for the Document column.

Perf journey run: https://buildkite.com/elastic/kibana-single-user-performance/builds/14355.

Screenshot 2024-09-09 at 14 07 46

Checklist

For maintainers

@davismcphee davismcphee added release_note:skip Skip the PR/issue when compiling release notes backport:skip This commit does not require backporting Team:DataDiscovery Discover App Team (Document Explorer, Saved Search, Surrounding documents, Graph) labels Sep 9, 2024
@davismcphee davismcphee self-assigned this Sep 9, 2024
@davismcphee
Copy link
Contributor Author

/ci

@davismcphee davismcphee force-pushed the discover-conditional-row-overscan branch from 6a2e18a to 3bb08e0 Compare September 9, 2024 03:18
@davismcphee
Copy link
Contributor Author

/ci

@davismcphee davismcphee marked this pull request as ready for review September 9, 2024 03:22
@davismcphee davismcphee requested review from a team as code owners September 9, 2024 03:23
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-data-discovery (Team:DataDiscovery)

@kibana-ci
Copy link
Collaborator

💛 Build succeeded, but was flaky

Failed CI Steps

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
cloudSecurityPosture 494.2KB 494.2KB +10.0B
discover 797.2KB 797.2KB +10.0B
esqlDataGrid 152.6KB 152.6KB +10.0B
securitySolution 19.7MB 19.7MB +50.0B
slo 852.1KB 852.1KB +10.0B
total +90.0B

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @davismcphee

@davismcphee davismcphee merged commit dc808a4 into elastic:main Sep 9, 2024
22 checks passed
@davismcphee davismcphee deleted the discover-conditional-row-overscan branch September 9, 2024 14:45
gergoabraham pushed a commit to gergoabraham/kibana that referenced this pull request Sep 13, 2024
…when Document column isn't visible (elastic#192332)

## Summary

Part of elastic#191249 included using the `overscanRowCount` property of EUI
data grid to render some additional data grid rows off screen, which
greatly reduces pop in when scrolling through the grid. While the
performance cost of this low in most cases, it has an impact in certain
situations such as when documents have many fields and the Document
column is visible (e.g. Discover's `many_fields` performance journey).
This is because the Document column can render _many_ DOM elements in
each of its cells, which EUI data grid struggles to handle.

This PR updates Unified Data Table to only use `overscanRowCount` when
the Document column isn't visible, so we'll still benefit from the
scrolling improvements when columns are selected, but won't take the
performance hit for the Document column.

Perf journey run:
https://buildkite.com/elastic/kibana-single-user-performance/builds/14355.

<img width="842" alt="Screenshot 2024-09-09 at 14 07 46"
src="https://github.com/user-attachments/assets/b074fd7a-ef8a-4917-ac5e-0675b0e60b7d">


### Checklist

- [ ] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/packages/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [ ] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [ ] Any UI touched in this PR is usable by keyboard only (learn more
about [keyboard accessibility](https://webaim.org/techniques/keyboard/))
- [ ] Any UI touched in this PR does not create any new axe failures
(run axe in browser:
[FF](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/),
[Chrome](https://chrome.google.com/webstore/detail/axe-web-accessibility-tes/lhdoppojpmngadmnindnejefpokejbdd?hl=en-US))
- [ ] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [ ] This renders correctly on smaller devices using a responsive
layout. (You can test this [in your
browser](https://www.browserstack.com/guide/responsive-testing-on-local-server))
- [ ] This was checked for [cross-browser
compatibility](https://www.elastic.co/support/matrix#matrix_browsers)

### For maintainers

- [ ] This was checked for breaking API changes and was [labeled
appropriately](https://www.elastic.co/guide/en/kibana/master/contributing.html#kibana-release-notes-process)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting release_note:skip Skip the PR/issue when compiling release notes Team:DataDiscovery Discover App Team (Document Explorer, Saved Search, Surrounding documents, Graph) v8.16.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants