[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:
Depends
is depended on by SERVER-35882 Wait for all prepared transactions to... Closed
Duplicate
is duplicated by SERVER-37286 guard 'prepareTransaction' by fcv 'fu... Closed
Related
related to SERVER-37286 guard 'prepareTransaction' by fcv 'fu... Closed
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: SERVER-35881 Gate prepareTransaction on featureCompatibilityVersion 4.2
Branch: master
https://github.com/mongodb/mongo/commit/b69f0e10fc921d179fb91b8854a2bb5a3f95ec27

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"?

Generated at Thu Feb 08 04:41:19 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.