[SERVER-34073] Allow creating transactions with readconcerns other than 'snapshot', upconvert to 'snapshot' Created: 22/Mar/18  Updated: 29/Oct/23  Resolved: 13/Apr/18

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 3.7.4

Type: Task Priority: Major - P3
Reporter: Spencer Brody (Inactive) Assignee: Tess Avitabile (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-34052 Require 'startTransaction':true on fi... Closed
Documented
is documented by DOCS-11605 Docs for SERVER-34073: Allow creating... Closed
Duplicate
is duplicated by SERVER-34219 readConcern parse failure on start of... Closed
is duplicated by SERVER-33677 Test that readConcern is only allowed... Closed
Backwards Compatibility: Fully Compatible
Sprint: Repl 2018-04-09, Repl 2018-04-23
Participants:

 Description   

Transactions will be allowed with readConcern levels "snapshot", "majority", or "local". Levels "majority" and "local" will upconverted to "snapshot" and keep any other options such as "afterClusterTime". Levels "majority" and "local" with "afterOpTime" will not be allowed, since "afterOpTime" is internal and not exposed to end users, and thus not supported with level:'snapshot'



 Comments   
Comment by Githook User [ 13/Apr/18 ]

Author:

{'email': 'tess.avitabile@mongodb.com', 'name': 'Tess Avitabile', 'username': 'tessavitabile'}

Message: SERVER-34073 Allow creating transactions with readConcerns other than 'snapshot', upconvert to 'snapshot'
Branch: master
https://github.com/mongodb/mongo/commit/235858ceee5d209d5e10579b79cfdc3bad7ff877

Comment by Gregory McKeon (Inactive) [ 12/Apr/18 ]

shane.harvey marking this drivers changes needed so you know when it lands.

Comment by Tess Avitabile (Inactive) [ 27/Mar/18 ]

Yes

Comment by Siyuan Zhou [ 27/Mar/18 ]

If the read concern is omitted, do we default it to "local" and then upconvert it to "snapshot"? CC max.hirschhorn.

Comment by Tess Avitabile (Inactive) [ 27/Mar/18 ]

Marking this as dependent on SERVER-34052, since we are changing the way we detect the first operation in a transaction.

Comment by Andy Schwerin [ 26/Mar/18 ]

I'd let you upconvert "local" and "majority". I'd consider letting you upconvert "available", but let's leave that for the future. I doubt anyone will ask for a transaction at read concern "available".

Comment by Spencer Brody (Inactive) [ 26/Mar/18 ]

I think local and majority should be upconverted. Linearizable should be forbidden within a transaction. Not sure about 'available' - schwerin?

We also will need to support afterClusterTime with readConcern snapshot (but probably don't need to support afterOpTime, which shouldn't be used anywhere except within sharding on the config servers)

Comment by Tess Avitabile (Inactive) [ 26/Mar/18 ]

spencer, schwerin, what readConcerns should we allow you to upconvert to snapshot? For example, I assume we don't want to upconvert linearizable to snapshot. And we currently do not allow afterOpTime to be used with snapshot.

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