[SERVER-16322] Make sure that RecoveryUnit::commit() can safely throw WriteConflictException Created: 25/Nov/14  Updated: 19/Sep/15  Resolved: 31/Jul/15

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: 3.1.7

Type: Bug Priority: Major - P3
Reporter: Igor Canadi Assignee: Geert Bosch
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
is related to SERVER-15192 Make all logOp listeners rollback-safe Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Quint Iteration 7
Participants:

 Description   

Our first implementation of CC in RocksDB was to resolute conflicts in the commit() call. However, there are two things that didn't work:
1) Some commit() calls don't catch WriteConflictException. One example is db/commands/mr.cpp
2) Mongo expects commit() to succeed because of https://jira.mongodb.org/browse/SERVER-15192

We're currently transitioning our CC implementation to check conflicts on write rather than commit. However, in the future we might want to transition back to commit-time-resolution.



 Comments   
Comment by Githook User [ 31/Jul/15 ]

Author:

{u'username': u'GeertBosch', u'name': u'Geert Bosch', u'email': u'geert@mongodb.com'}

Message: SERVER-16322: Make sure that RecoveryUnit::commitUnitOfWork can throw WCE

Map reduce did not handle WriteConflictExceptions at commit time well.
Branch: master
https://github.com/mongodb/mongo/commit/ba6cfc1c7790760e4f5a21da31cce74133023430

Generated at Thu Feb 08 03:40:40 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.