[SERVER-29285] ScopedCollectionMetadata compare equal Created: 18/May/17 Updated: 30/Oct/23 Resolved: 26/Sep/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 3.5.9 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Nathan Myers | Assignee: | Nathan Myers |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Participants: |
| Description |
|
Killing specific queries that depend on a range that a secondary has been notified is being deleted requires (1) identifying CollectionMetadata instances that have a chunk overlapping it, and (2) invalidating queries that have a ScopedCollectionMetadata that refers to one such instance. For (2), it suffices to provide op== / op!= on ScopedCollectionMetadata. Assumption is that most running queries on a collection will seem to depend on any given chunk being removed, and the majority of those will be expected to die, so a scan of all such running queries for each such event is more economical than keeping a list of queries that depend on each CollectionMetadata. |
| Comments |
| Comment by Nathan Myers [ 26/Sep/17 ] |
|
Implemented in 20e9320f7716515d68c27324dc20080d585fd70f |
| Comment by Kaloian Manassiev [ 14/Sep/17 ] |
|
nathan.myers, can you check whether this is still necessary or already done? |