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

Slowness at the "user & roles" page #8700

Open
jonasraoni opened this issue Feb 27, 2023 · 12 comments
Open

Slowness at the "user & roles" page #8700

jonasraoni opened this issue Feb 27, 2023 · 12 comments
Assignees
Milestone

Comments

@jonasraoni
Copy link
Contributor

jonasraoni commented Feb 27, 2023

Describe the bug
A journal with around 20K users is taking around 60s to retrieve a response for the User & Roles interface.

The origin is MySQL trashing the disk with temporary tables (our max_heap_table_size is defined with 128MB, which is a reasonably high value) for the query, which can't be perfectly optimized.

What application are you using?
OJS/stable-3_3_0

Additional information
image

PRs

@asmecher
Copy link
Member

@jonasraoni, are you going to work on this yourself? If so, great; if not, this isn't enough to be able to reproduce and correct the issue.

@jonasraoni jonasraoni self-assigned this Feb 27, 2023
@jonasraoni
Copy link
Contributor Author

Okay, I've assigned myself.

I did a generic fix on the DAO.inc.php which brought the time to 8s, and another specific one which decreased it to 2s.

I'll create a PR and check if the Laravel framework does a similar optimization out-of-the-box.

jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 27, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 27, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 27, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 27, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 27, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Feb 28, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Feb 28, 2023
@jonasraoni
Copy link
Contributor Author

jonasraoni commented Feb 28, 2023

@asmecher Here are the PRs, I've left some notes at the PR.
Meanwhile I'll check if the issue happens at the Laravel framework, if yes, at least the generic patch will probably be much simpler to apply.

jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/ojs that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue Mar 23, 2023
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
…ider, to count records in a safe/performant way
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/omp that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/omp that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/omp that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
…ider, to count records in a safe/performant way

(cherry picked from commit 9a325ef)
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/pkp-lib that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ojs that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/omp that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/omp that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
jonasraoni added a commit to jonasraoni/ops that referenced this issue May 23, 2024
@jonasraoni
Copy link
Contributor Author

@asmecher The getCountForPagination() fits my expectations, and it's a natural replacement to my workaround. I've updated the PRs, if you'd like to double check, it's ready. If everything was ok last time, I can proceed with the merge, the only extra addition was replacing offset(0)->limit(0)->getCount() by getCount() (I didn't do it on stable-3_3_0 though).

ps: Only Travis was able to build my PRs for main, I might take a look at the GitHub actions later (it might not be understanding the long branch)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants