[SERVER-35881] Gate prepare on featureCompatibilityVersion 4.2 Created: 28/Jun/18 Updated: 29/Oct/23 Resolved: 09/Aug/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.2 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Gregory McKeon (Inactive) | Assignee: | Judah Schvimer |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | prepare_basic | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||
| Sprint: | Repl 2018-08-13 | ||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Comments |
| Comment by Githook User [ 09/Aug/18 ] |
|
Author: {'name': 'Judah Schvimer', 'email': 'judah@mongodb.com', 'username': 'judahschvimer'}Message: |
| Comment by Esha Maharishi (Inactive) [ 02/Jul/18 ] |
|
Ah, because of the oplog. Ok. |
| Comment by Judah Schvimer [ 02/Jul/18 ] |
|
4.0 binaries will not understand prepare oplog entries, so we need to essentially flush them from the readable oplog before downgrading. Gating on setFCV is the most canonical way to do that. |
| Comment by Esha Maharishi (Inactive) [ 02/Jul/18 ] |
|
Do we actually need to gate distributed transactions on setFCV? If the transaction only involves 4.2 shards, it seems fine to let it commit (the commit protocol components will be available on all the involved shards). If it involves any 4.0 shards, they will not have the commit protocol components (namely, will not have the 'prepareTransaction' command), so such transactions will abort anyway. Is this just to be "nice" to the user - fail their transactions early if the involved shards are not in FCV 4.2, rather than failing at commit? Is the complexity of gating sharded transactions on FCV worth this "niceness"? |