MCPcopy Create free account
hub / github.com/apple/foundationdb / getWriteConflicts

Method getWriteConflicts

fdbclient/ReadYourWrites.actor.cpp:1998–2018  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1996}
1997
1998void ReadYourWritesTransaction::getWriteConflicts(KeyRangeMap<bool>* result) {
1999 WriteMap::iterator it(&writes);
2000 it.skip(allKeys.begin);
2001
2002 bool inConflictRange = false;
2003 ExtStringRef conflictBegin;
2004
2005 for (; it.beginKey() < getMaxWriteKey(); ++it) {
2006 if (it.is_conflict_range() && !inConflictRange) {
2007 conflictBegin = it.beginKey();
2008 inConflictRange = true;
2009 } else if (!it.is_conflict_range() && inConflictRange) {
2010 result->insert(KeyRangeRef(conflictBegin.toArenaOrRef(arena), it.beginKey().toArenaOrRef(arena)), true);
2011 inConflictRange = false;
2012 }
2013 }
2014
2015 if (inConflictRange) {
2016 result->insert(KeyRangeRef(conflictBegin.toArenaOrRef(arena), getMaxWriteKey()), true);
2017 }
2018}
2019
2020void ReadYourWritesTransaction::setTransactionID(UID id) {
2021 tr.setTransactionID(id);

Callers 1

Calls 6

is_conflict_rangeMethod · 0.80
toArenaOrRefMethod · 0.80
KeyRangeRefClass · 0.50
skipMethod · 0.45
beginKeyMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected