| 372 | } |
| 373 | } |
| 374 | void ReschedulePartRequest(int partId) { |
| 375 | CHROMIUM_TRACE_FUNCTION(); |
| 376 | TRemoteMapInfo* part = &MapParts[partId]; |
| 377 | |
| 378 | PAR_DEBUG_LOG << "Try to reschedule part " << partId << Endl; |
| 379 | TJobRequest* src = part->JobRequest.Get(); |
| 380 | QueryProc->IncLastCount(part->DstHost); |
| 381 | |
| 382 | // construct brand new plan |
| 383 | int ignoreCompId = part->DstHost; |
| 384 | int localCompId = QueryProc->GetCompId(); |
| 385 | if (!RescheduleJobRequest(src, JobRequest->ExecPlan, localCompId, ignoreCompId)) |
| 386 | return; |
| 387 | |
| 388 | int execCompId = SelectRandomHost(src->ExecPlan); |
| 389 | Y_ASSERT(execCompId != ignoreCompId && "ignoreCompId is supposed to be excluded from execution?"); |
| 390 | |
| 391 | TVector<char> buf; |
| 392 | SerializeToMem(&buf, *src); |
| 393 | TGUID req = QueryProc->SendQuery(execCompId, "mr_low", &buf, this, partId); |
| 394 | RegisterRemoteQuery(req); |
| 395 | PAR_DEBUG_LOG << "Part " << partId << " reasked" << Endl; |
| 396 | } |
| 397 | void CopyRemoteTaskResults(int partId, TVector<TVector<char>>* result) { |
| 398 | if (PartCompleted[partId]) |
| 399 | return; |
nothing calls this directly
no test coverage detected