| 233 | |
| 234 | |
| 235 | Future<Nothing> CoordinatorProcess::catchupMissingPositions( |
| 236 | const IntervalSet<uint64_t>& positions) |
| 237 | { |
| 238 | LOG(INFO) << "Coordinator attempting to fill missing positions"; |
| 239 | |
| 240 | // Notice that here we use "proposal + 1" as the proposal number for |
| 241 | // fill operations in order to avoid unnecessary retries for those |
| 242 | // log positions that were just implicitly promised to this |
| 243 | // coordinator. This is safe because log::catchup would increment |
| 244 | // the proposal number automatically after failing to fill |
| 245 | // implicitly promised positions and this just shortcuts that |
| 246 | // process. See more details in MESOS-1165. We don't update the |
| 247 | // class member 'proposal' here as it's for implicit promises. |
| 248 | return log::catchup(quorum, replica, network, proposal + 1, positions); |
| 249 | } |
| 250 | |
| 251 | |
| 252 | Future<Option<uint64_t>> CoordinatorProcess::updateIndexAfterElected() |