2016-03-07 5 views
0

Предположим, что клиент отправляет insert(0, "A"), но соединение прерывается и ответ не получен. Клиент может повторно подключиться.Как операционные преобразования обрабатывают неисправные соединения?

Если клиент сбрасывает выдающиеся изменения, он будет потерян, если сервер его не получит.

Если клиент повторно передает выдающееся изменение, он будет дублироваться, если сервер его получит.

Выполняет ли операция преобразование адреса, как этот случай должен обрабатываться?

ответ

0

Я бы сказал, что это выходит за рамки конкретной сферы действия трансформации. Это зависит от протокола, используемого для связи с сервером. (Также обратите внимание, что не все приложения преобразования операций полагаются на центральный сервер).

Если используется центральный сервер, обычно сервер отправляет подтверждение, чтобы сообщить, что он получил операцию. Однако, что произойдет, если сигнал ACK будет потерян? Это можно смягчить, например, путем присвоения идентификатора операциям: если сервер уже видел операцию с тем же идентификатором, он просто проигнорирует операцию и повторно отправит ACK.