[SERVER-17651] Lazily generate CanonicalQuery plan cache key Created: 18/Mar/15 Updated: 03/Jun/15 Resolved: 03/Jun/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | J Rassi | Assignee: | Unassigned |
| Resolution: | Done | Votes: | 0 |
| Labels: | neweng | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Participants: |
| Description |
|
CanonicalQuery generates the plan cache key for the underlying query in the CanonicalQuery::init(). This is an expensive operation that is performed unnecessarily for CanonicalQuery objects that never have their plan cache key examined (see example in exec/sort.cpp). Instead, plan cache key generation should happen lazily on the first call to CanonicalQuery::getPlanCacheKey(). The first call to this method should save the generated cache key in the _cacheKey member variable for later retrieval. |
| Comments |
| Comment by J Rassi [ 03/Jun/15 ] |
|
Closing as "Gone Away", as the member variable CanonicalQuery::_cacheKey was removed in |
| Comment by Ramon Fernandez Marina [ 25/Apr/15 ] |
|
Ongoing work on |
| Comment by Ramon Fernandez Marina [ 22/Apr/15 ] |
|
Thanks for taking the time to submit a pull request ParadoxMeltdown. There's some ongoing work in this area, so we need to evaluate whether your pull request goes in the same direction. Please watch this ticket for updates. Regards, |