[SERVER-26964] Make FieldPath more efficient Created: 09/Nov/16 Updated: 19/Nov/16 Resolved: 15/Nov/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Aggregation Framework |
| Affects Version/s: | None |
| Fix Version/s: | 3.4.0-rc4 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | James Wahlin | Assignee: | James Wahlin |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Backwards Compatibility: | Fully Compatible | ||||
| Sprint: | Query 2016-11-21 | ||||
| Participants: | |||||
| Description |
|
Profiling of $graphLookup under SERVER-23992 has raised calls to FieldPath::fullPath() as the top consumer of CPU resources. This is due to string concatenation operations which combine field path elements, performed on every call. |
| Comments |
| Comment by Githook User [ 15/Nov/16 ] |
|
Author: {u'username': u'jameswahlin', u'name': u'James Wahlin', u'email': u'james.wahlin@10gen.com'}Message: |
| Comment by James Wahlin [ 15/Nov/16 ] |
|
After finding that targeted improvement of FieldPath::fullPath() for $graphLookup hurts performance in other areas, we decided to proceed with a broader overhaul of the FieldPath class for performance. This ticket will handle this work. |
| Comment by James Wahlin [ 09/Nov/16 ] |
|
Please note that the fix under this ticket is not meant to be an overhaul of FieldPath and addresses one bottleneck. A follow-up ticket will be entered to do a broader rework of FieldPath post 3.4 release. |