DRIVERS-3274 Send afterClusterTime on writes in causally-consistent sessions.#1930
Conversation
…kWrite to the description of write commands.
|
@sanych-sun Could you link the C# implementation draft / CI for tests? |
|
Assigned |
…ns test assertions.
|
Here's the Go Driver proof-of-concept implementation: mongodb/mongo-go-driver#2380 |
rozza
left a comment
There was a problem hiding this comment.
Looking good - just a couple of questions.
Also should there be a dropDatabase test in causal-consistency-write-commands.yml?
sanych-sun
left a comment
There was a problem hiding this comment.
LGTM + CSharp PR + custom patch with all variants.
|
@rozza There is no "dropDatabase" command supported by the unified test spec. That does means there's a coverage gap for that command in the Causal Consistency spec tests. I'll check if it's worth adding to the unified test spec. |
rozza
left a comment
There was a problem hiding this comment.
LGTM!
I pushed a date nit fix, rather than dragging out time on a re-review.
The dropDatabase case is unusual with the unified specs - eg it could be added without bumping spec versions, but that could cause issues downstream. So I'm inclined to leave it up to you. The test plan already guides to cover all write scenarios.
|
@rozza I've added a unified spec test for "dropDatabase" and confirmed it works in the Go Driver proof-of-concept, after adding code to handle the "dropDatabase" test operation. I suspect most drivers will have to implement support for "dropDatabase". |
|
@sanych-sun Could you pull in the new test into the C# implementation to make sure it works as expected? |
|
@dariakp @matthewdale I've re-synced spec tests, all green after adding support for |
DRIVERS-3274
Update the Causal Consistency spec to require that
afterClusterTimeis sent on write commands in causally-consistent sessions. Write commands that should sendafterClusterTimeare:insertupdatefindAndModifydeletebulkWritecreatecreateIndexesdropdropDatabasedropIndexesPreviously,
afterClusterTimewas only sent on read commands and the first command in a transaction.Changes:
readConcernreadConcern.Please complete the following before merging:
clusters).