Skip to content

Conversation

@Pytal
Copy link
Member

@Pytal Pytal commented Mar 8, 2025

Summary

With a large number of groups, e.g. >=10,000, the compute load on the server and client becomes excessive. On the server all groups are pre-computed in-memory resulting in increased response latency and excessive payload size. As a result the page loads indefinitely and becomes unresponsive.

To Do

  • Paginate groups
  • Search for groups
  • Remove unnecessary and expensive pre-computation of entire groups list on the server every page load
    • For 10,000 groups, server compute time is reduced by 5s
  • Allow searching for groups when editing accounts or creating a new account
  • Defer loading details of a user’s groups
  • Adapt all logic dependent on having entire groups list in-memory for paginated groups list

Checklist

@Pytal Pytal added this to the Nextcloud 32 milestone Mar 8, 2025
@Pytal Pytal self-assigned this Mar 8, 2025
@Pytal Pytal force-pushed the perf/paginate-filter-groups branch 2 times, most recently from 93936f1 to bc2d292 Compare March 18, 2025 22:19
@Pytal Pytal marked this pull request as ready for review March 18, 2025 22:26
@Pytal Pytal requested review from a team as code owners March 18, 2025 22:26
@Pytal Pytal requested review from Altahrim, nfebe, susnux, szaimen and yemkareems and removed request for a team March 18, 2025 22:26
@Pytal Pytal added 3. to review Waiting for reviews and removed 2. developing Work in progress labels Mar 18, 2025
@Pytal Pytal changed the title perf(settings): Paginate and filter groups fix(settings): Fix infinitely loading account management page with pagination of groups Mar 18, 2025
@szaimen szaimen removed their request for review March 19, 2025 01:38
@Pytal Pytal requested review from artonge and come-nc March 19, 2025 16:12
@Pytal Pytal moved this to 🏗️ In progress in 📁 Files team Mar 19, 2025
@come-nc

This comment was marked as resolved.

Signed-off-by: Christopher Ng <chrng8@gmail.com>
@Pytal Pytal force-pushed the perf/paginate-filter-groups branch from 4a01a06 to 1d0ae0c Compare March 28, 2025 21:17
@Pytal
Copy link
Member Author

Pytal commented Mar 28, 2025

/compile

Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
@Pytal Pytal enabled auto-merge March 28, 2025 21:26
@Pytal Pytal merged commit 4a9bd9b into master Mar 28, 2025
200 of 209 checks passed
@Pytal Pytal deleted the perf/paginate-filter-groups branch March 28, 2025 21:54
@Pytal
Copy link
Member Author

Pytal commented Mar 28, 2025

/backport to stable31

@Pytal
Copy link
Member Author

Pytal commented Mar 28, 2025

/backport to stable30

@come-nc
Copy link
Contributor

come-nc commented Apr 1, 2025

/backport to stable30

@backportbot

This comment was marked as resolved.

@github-actions

This comment was marked as off-topic.

@solracsf
Copy link
Member

This PR is causing issues in groups display names: #52130

@provokateurin
Copy link
Member

@solracsf please do it the other way around and mention the PR in the issue and avoid bumping merged PRs.

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

Projects

Status: ☑️ Done

Development

Successfully merging this pull request may close these issues.

[Bug]: Administrative Account Page hangs when having many (ldap-)groups

9 participants