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

[Lens] Paginate index pattern list, especially if there are > 1000 index patterns stored #55910

Open
wylieconlon opened this issue Jan 24, 2020 · 9 comments
Assignees
Labels
enhancement New value added to drive a business result Feature:Unified search Unified search related tasks impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Team:DataDiscovery Discover App Team (Document Explorer, Saved Search, Surrounding documents, Graph) Team:Visualizations Visualization editors, elastic-charts and infrastructure triage_needed
Projects

Comments

@wylieconlon
Copy link
Contributor

No description provided.

@wylieconlon wylieconlon created this issue from a note in Lens (Tech Debt) Jan 24, 2020
@wylieconlon wylieconlon added Feature:Lens Team:Visualizations Visualization editors, elastic-charts and infrastructure labels Jan 24, 2020
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-app (Team:KibanaApp)

@flash1293 flash1293 added the technical debt Improvement of the software architecture and operational architecture label Aug 6, 2020
@ghudgins ghudgins added this to Long-term goals in Lens via automation Aug 17, 2021
@stratoula stratoula added Feature:Unified search Unified search related tasks enhancement New value added to drive a business result and removed technical debt Improvement of the software architecture and operational architecture Feature:Lens labels Jan 30, 2024
@kibanamachine kibanamachine removed this from Long-term goals in Lens Jan 30, 2024
@stratoula stratoula added the Team:DataDiscovery Discover App Team (Document Explorer, Saved Search, Surrounding documents, Graph) label Jan 30, 2024
@elasticmachine
Copy link
Contributor

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

@kibanamachine kibanamachine added this to Inbox in Discover Jan 30, 2024
@stratoula
Copy link
Contributor

This is a unified search issue but I am not sure about how the dataview service works right now. Is the above feasible @elastic/kibana-data-discovery ?

@kertal
Copy link
Member

kertal commented Jan 30, 2024

correct me if I'm wrong @mattkime , I think incremental loading is not built in. However, did we render the whole list 2020? because if so, in the meantime, we don't, right?

@mattkime
Copy link
Contributor

mattkime commented Feb 1, 2024

Does the UI handle a large number of data views well?

As far as the service side of things, the logic around this isn't terribly clever but perhaps its fine. Might be worth a performance test to make sure it scales. We load a small set of attributes for the first 10k data views - https://github.com/elastic/kibana/blob/main/src/plugins/data_views/common/data_views/data_views.ts#L366

@stratoula
Copy link
Contributor

stratoula commented Feb 2, 2024

The UI fetches them with the getIdsWithTitle method and then uses an EUI selectable to render them. So nothing sophisticated here. About the EUI selectable performance I am not sure tbh.

  useEffect(() => {
    const fetchDataViews = async () => {
      const savedDataViewRefs: DataViewListItemEnhanced[] = savedDataViews
        ? savedDataViews
        : await data.dataViews.getIdsWithTitle();
      // not propagate the adHoc dataviews on the list for text based languages
      const adHocDataViewRefs: DataViewListItemEnhanced[] =
        (!isTextBasedLangSelected && adHocDataViews?.map(mapAdHocDataView)) || [];

      setDataViewsList(savedDataViewRefs.concat(adHocDataViewRefs));
    };
    fetchDataViews();
  }, [data, currentDataViewId, adHocDataViews, savedDataViews, isTextBasedLangSelected]);

A performance test would be a good idea yes. What are you using for testing the performance of dataviews? I mean do you have a tool which produces plenty of dataviews or something like that to help with the testing?

I think it would be a good idea to add pagination both in the api and the client.

@kertal
Copy link
Member

kertal commented Feb 2, 2024

2 cents from my end. The EuiSelectable is using virtualization for those lists. So there shouldn't be a performance issue, unless the preparation of the list is expensive, but this doesn't seem to be the case. Of course loading all entries at once are taking memory, however, our virtualized field list is dealing with 50k fields, without a rendering issue ... hasn't always been the case.

this issue was created in 2020, I think back then it worked differently, maybe just a unvirtualized drop down:

@stratoula
Copy link
Contributor

is using virtualization for those lists

You are right! So this should not be an issue.

this issue was created in 2020, I think back then it worked differently, maybe just a unvirtualized drop down:

@kertal honestly I don't know 😂 I think that it was using the EUISelectable always but I am not sure if it was virtualized back then. 🤔

@mattkime mattkime added the loe:medium Medium Level of Effort label Mar 13, 2024
@mattkime
Copy link
Contributor

Seems we could at least at a performance test when working with a high number of data views (over 1000)

@mattkime mattkime added the impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. label Mar 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New value added to drive a business result Feature:Unified search Unified search related tasks impact:low Addressing this issue will have a low level of impact on the quality/strength of our product. loe:medium Medium Level of Effort Team:DataDiscovery Discover App Team (Document Explorer, Saved Search, Surrounding documents, Graph) Team:Visualizations Visualization editors, elastic-charts and infrastructure triage_needed
Projects
No open projects
Development

No branches or pull requests

6 participants