MCPcopy Create free account
hub / github.com/apache/impala / MoveWriteRangesHelper

Method MoveWriteRangesHelper

be/src/runtime/tmp-file-mgr.cc:2281–2311  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2279}
2280
2281Status TmpFileBufferPool::MoveWriteRangesHelper(DiskFile* disk_file,
2282 vector<TmpFileMgr::WriteDoneCallback>* write_callbacks, bool is_cancelled) {
2283 Status status = Status::OK();
2284 auto write_ranges_it = write_ranges_to_add_.find(disk_file);
2285 if (write_ranges_it != write_ranges_to_add_.end()) {
2286 auto write_range_it = write_ranges_it->second.begin();
2287 while (write_range_it != write_ranges_it->second.end()) {
2288 auto range = *write_range_it;
2289 DCHECK(range != nullptr);
2290 if (status.ok() && !is_cancelled) {
2291 status = range->io_ctx()->AddWriteRange(range);
2292 } else {
2293 write_callbacks->push_back(range->callback());
2294 if (is_cancelled && range->offset() == 0) {
2295 // If is_cancelled is set, try to remove the range from the write_ranges list.
2296 // If the range hasn't been popped, it must still be in the write_ranges list.
2297 if (cur_write_range_ != range) {
2298 auto key_range_it = write_ranges_iterator_.find(range);
2299 DCHECK(key_range_it != write_ranges_iterator_.end());
2300 DCHECK_EQ(*(key_range_it->second.first), range);
2301 write_ranges_.erase(key_range_it->second.first);
2302 write_ranges_iterator_.erase(key_range_it);
2303 }
2304 }
2305 }
2306 write_range_it = write_ranges_it->second.erase(write_range_it);
2307 }
2308 write_ranges_to_add_.erase(write_ranges_it);
2309 }
2310 return status;
2311}
2312
2313Status TmpFileBufferPool::EnqueueWriteRange(io::WriteRange* range, TmpFile* tmp_file) {
2314 Status status = Status::OK();

Callers

nothing calls this directly

Calls 11

OKFunction · 0.85
io_ctxMethod · 0.80
push_backMethod · 0.80
eraseMethod · 0.80
findMethod · 0.45
endMethod · 0.45
beginMethod · 0.45
okMethod · 0.45
AddWriteRangeMethod · 0.45
callbackMethod · 0.45
offsetMethod · 0.45

Tested by

no test coverage detected