-
Notifications
You must be signed in to change notification settings - Fork 11.1k
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
chore: remove nameInsensitive sorting on /v1/users.listByStatus
#33401
Conversation
Looks like this PR is ready to merge! 🎉 |
|
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #33401 +/- ##
========================================
Coverage 58.35% 58.35%
========================================
Files 2692 2692
Lines 65265 65265
Branches 14730 14730
========================================
Hits 38084 38084
Misses 24403 24403
Partials 2778 2778
Flags with carried forward coverage won't be shown. Click here to find out more. |
/v1/users.listByStatus
…ctor/avatar * 'develop' of github.com:RocketChat/Rocket.Chat: (58 commits) refactor: unified users page header content into a single component (#33498) chore: store contact emails and phones on the same format as user's and visitor's (#33484) fix: broken jump-to-thread-message functionality using link (#33332) feat: Apps-Engine method for reading and counting unread room messages for a user (#32194) feat: adds a new featured room action on the header for non-default category (#33562) chore(deps): bump actions/setup-node from 4.0.3 to 4.0.4 (#33327) fix: consider query strings in Twilio request validation (#33364) ci: add restore cache for `deploy-preview` (#33579) feat: add history endpoint (#33349) ci: cache artifacts to reduce api calls (#33567) feat: new E2EE composer hint (#33283) chore: Add `force` option to `rmSync` call (#33570) chore: remove nameInsensitive sorting on /v1/users.listByStatus (#33401) chore: Use `rmSync` instead of `rmdirSync` (#33551) feat: add contact channels (#33308) chore: split ImportDataConverter into multiple classes and add unit testing (#33394) test: added MockedDeviceContext to voip unit tests (#33553) refactor: adjusted voip endpoints error messages (#33515) fix: Cannot send messages after E2EE keys are refreshed (#33527) fix: Custom sounds not working when storage is set to filesystem (#33424) ...
This PR addresses an issue found during OPI-36, which focuses on identifying potential index improvements. We discovered that the
nameInsensitive
sort property used in thefindPaginatedUsersByStatus
function (responsible for listing users on the admin page) does not exist. As a result, MongoDB was forced to scan the entire dataset during sorting.After resolving this, MongoDB's performance improved significantly, reducing query time from 23 seconds to 3 seconds for 500k users on the dev-benchmark database. Below are the explain results for reference.
MongoDB query explain - images
Before
After
Detailed explain JSON outputs can be found here.