private void requestRestore(MemberId primary) {
context.protocol().restore(primary, RestoreRequest.request(context.descriptor(), context.currentTerm()))
.whenCompleteAsync((response, error) -> {
if (error == null && response.status() == PrimaryBackupResponse.Status.OK) {
context.resetIndex(response.index(), response.timestamp());
Buffer buffer = HeapBuffer.wrap(response.data());
int sessions = buffer.readInt();
for (int i = 0; i < sessions; i++) {
context.getOrCreateSession(buffer.readLong(), MemberId.from(buffer.readString()));
}
context.service().restore(new DefaultBackupInput(buffer, context.service().serializer()));
operations.clear();
}
}, context.threadContext());
}
}