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

Method addUnmodifiedAndUnreadableRange

fdbclient/WriteMap.cpp:205–242  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

203}
204
205void WriteMap::addUnmodifiedAndUnreadableRange(KeyRangeRef keys) {
206 auto& it = scratch_iterator;
207 it.reset(writes, ver);
208 it.skip(keys.begin);
209
210 bool insert_begin = !it.is_unmodified_range() || it.is_conflict_range() || !it.is_unreadable();
211
212 if (it.endKey() == keys.end) {
213 ++it;
214 } else if (it.endKey() < keys.end) {
215 it.skip(keys.end);
216 }
217
218 bool insert_end = (it.is_cleared_range() || it.is_conflict_range() || !it.is_unreadable()) &&
219 (!it.keyAtBegin() || it.beginKey() != keys.end);
220 bool end_coalesce_unmodified =
221 it.is_unmodified_range() && it.beginKey() == keys.end && !it.is_conflict_range() && it.is_unreadable();
222 bool end_conflict = it.is_conflict_range();
223 bool end_cleared = it.is_cleared_range();
224 bool end_unreadable = it.is_unreadable();
225
226 it.tree.clear();
227
228 PTreeImpl::remove(writes,
229 ver,
230 ExtStringRef(keys.begin, !insert_begin ? 1 : 0),
231 ExtStringRef(keys.end, end_coalesce_unmodified ? 1 : 0));
232
233 if (insert_begin)
234 PTreeImpl::insert(writes, ver, WriteMapEntry(keys.begin, OperationStack(), false, false, false, true, true));
235
236 if (insert_end)
237 PTreeImpl::insert(
238 writes,
239 ver,
240 WriteMapEntry(
241 keys.end, OperationStack(), end_cleared, end_conflict, end_conflict, end_unreadable, end_unreadable));
242}
243
244void WriteMap::addConflictRange(KeyRangeRef keys) {
245 writeMapEmpty = false;

Callers 2

atomicOpMethod · 0.80
RYWIterator.cppFile · 0.80

Calls 15

ExtStringRefClass · 0.85
insertFunction · 0.85
WriteMapEntryClass · 0.85
OperationStackClass · 0.85
is_unmodified_rangeMethod · 0.80
is_conflict_rangeMethod · 0.80
is_cleared_rangeMethod · 0.80
keyAtBeginMethod · 0.80
clearMethod · 0.65
removeFunction · 0.50
resetMethod · 0.45
skipMethod · 0.45

Tested by

no test coverage detected