Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • A administrate
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 96
    • Issues 96
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 32
    • Merge requests 32
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • thoughtbot, inc.
  • administrate
  • Issues
  • #2220
Closed
Open
Issue created Jun 27, 2022 by Shouichi Kamiya@shouichiContributor

Pagination can get slower over time

What would you like to be able to do? Can you provide some examples?

Admin dashboards have to list all resources (e.g., all users). As the number of resources grows, kaminari gets slower. This is because it uses offset/limit for pagination. Instead, we can use cursor-based pagination.

How could we go about implementing that?

We can take one of the following approaches.

  • Switch to a pagination gem that provides cursor-based pagination (e.g., pagy it does not support paging).
  • Make the pagination feature pluggable and let users choose whatever library they want.

Can you think of other approaches to the problem?

No.

Edited: I thought about this a bit more. Making the pagination pluggable seems the way to go. Because 1: pagination gems come and go. 2: requirements vary.

Assignee
Assign to
Time tracking