| 417 | } |
| 418 | |
| 419 | Future<Nothing> catchup(uint64_t begin, uint64_t end) |
| 420 | { |
| 421 | CHECK_LE(begin, end); |
| 422 | |
| 423 | LOG(INFO) << "Starting catch-up from position " << begin << " to " << end; |
| 424 | |
| 425 | IntervalSet<uint64_t> positions( |
| 426 | Bound<uint64_t>::closed(begin), |
| 427 | Bound<uint64_t>::closed(end)); |
| 428 | |
| 429 | // TODO(ipronin): Consider using 'proposed' field from the local |
| 430 | // replica. |
| 431 | return log::catchup(quorum, replica, network, proposal, positions, timeout); |
| 432 | } |
| 433 | |
| 434 | void finished(const Future<Nothing>& future) |
| 435 | { |