[SERVER-26637] Add explicit initializing constructors to the sharding type_* classes Created: 14/Oct/16 Updated: 06/Dec/22 Resolved: 08/Feb/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Kaloian Manassiev | Assignee: | [DO NOT USE] Backlog - Sharding Team |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Sharding
|
| Participants: |
| Description |
|
The sharding metadata management classes under mongo/s/catalog/type_* all use setters and validators, which makes them prone to errors due to being partially constructed and require the callers to invariant on their validity. It would be much cleaner if we added an explicit construction functions so we can never have partially constructed objects apart from the cases where this is necessary for backwards compatibility. |