[SERVER-17984] TTL Monitor doesn't modify query to match partial Index filter Created: 10/Apr/15 Updated: 19/Sep/15 Resolved: 08/May/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Index Maintenance |
| Affects Version/s: | 3.1.1 |
| Fix Version/s: | 3.1.3 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Michael Grundy | Assignee: | J Rassi |
| Resolution: | Done | Votes: | 0 |
| Labels: | 32qa, FT | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
|||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | |||||||||||||||||||||||
| Operating System: | ALL | |||||||||||||||||||||||
| Steps To Reproduce: |
|
|||||||||||||||||||||||
| Sprint: | Quint Iteration 3 | |||||||||||||||||||||||
| Participants: | ||||||||||||||||||||||||
| Description |
|
When you create a partial TTL index the TTL Monitor uses the index key to perform the deletes. This results in documents that have the key value, but don't meet the filter criteria (therefore not indexed in the partial index), being deleted. |
| Comments |
| Comment by Githook User [ 08/May/15 ] |
|
Author: {u'username': u'jrassi', u'name': u'Jason Rassi', u'email': u'rassi@10gen.com'}Message: |
| Comment by Githook User [ 28/Apr/15 ] |
|
Author: {u'username': u'mgrundy', u'name': u'Mike Grundy', u'email': u'michael.grundy@10gen.com'}Message: |
| Comment by J Rassi [ 10/Apr/15 ] |
|
Per discussion with Scott and Mathias:
|
| Comment by J Rassi [ 10/Apr/15 ] |
|
Scott: in general, hinting an index shouldn't change the result set for a query. If it could, the query planner should be disallowing the hinted index for that query. |
| Comment by Scott Hernandez (Inactive) [ 10/Apr/15 ] |
|
The problem here, IMHO, is really that our TTL deletes are just a query again any index right now, not the index the TTL index it is defined on. Theoretically we could be seeing poor performance/behavior before due to this, where multiple indexes exist that meet the query produced during the TTL run. |
| Comment by J Rassi [ 10/Apr/15 ] |
|
To me, this seems like a good argument for making TTL+partial illegal. |
| Comment by Scott Hernandez (Inactive) [ 10/Apr/15 ] |
|
Another way to describe this, which is maybe more succinct or correct, is: |