[SERVER-9909] Balancer round aborted with idle sharded collection Created: 12/Jun/13 Updated: 11/Jul/16 Resolved: 13/Jun/13 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 2.5.0 |
| Fix Version/s: | 2.4.5, 2.5.1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Greg Studer | Assignee: | Greg Studer |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Operating System: | ALL | ||||
| Participants: | |||||
| Description |
|
In order to guarantee fair balancing, the balancer tries to move one-chunk-per-collection-per-round. However, if when the balancer tries to load information on a newly-sharded collection it doesn't know about, an exception is thrown that aborts the round (Balancer::_moveChunks() calls getChunkManager(), which throws). Solution is to use getChunkManagerIfExists(), which does not throw, and pass in reload=true to make the Balancer load the ChunkManager even if the collection is idle. |
| Comments |
| Comment by auto [ 19/Jun/13 ] |
|
Author: {u'username': u'gregstuder', u'name': u'Greg Studer', u'email': u'greg@10gen.com'}Message: Conflicts: src/mongo/s/grid.cpp |
| Comment by auto [ 13/Jun/13 ] |
|
Author: {u'username': u'gregstuder', u'name': u'Greg Studer', u'email': u'greg@10gen.com'}Message: |