[SERVER-75864] Performance experiment: Use std::unordered_set for usedFieldSet in IDL-generated parsers Created: 07/Apr/23 Updated: 18/Apr/23 Resolved: 18/Apr/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Engineering Test | Priority: | Major - P3 |
| Reporter: | Vojislav Stojkovic | Assignee: | Alex Li |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
| Sprint: | Service Arch 2023-04-17, Service Arch 2023-05-01 |
| Participants: |
| Description |
|
During the BF-28130 performance investigation, we noticed that the execution of initializeAPIParameters() spends a lot of time maintaining a red-black tree that implements the std::set used by APIParametersFromClient::parseProtected() to check whether the BSON document has any duplicate fields. The parser is generated from IDL, so this happens in every similar parser. The goal of this ticket is to do preliminary performance testing to check whether replacing the std::set with std::unordered_set in these parsers would yield any performance improvements. |