Различия между OT и CRDT

Может кто-нибудь объяснить мне просто основные различия между операционным преобразованием и CRDT?

Насколько я понимаю, оба являются алгоритмами, которые позволяют данным сходиться без конфликта на разных узлах распределенной системы.

В каком случае вы будете использовать какой алгоритм? Насколько я понимаю, OT в основном используется для текста, а CRDT является более общим и может обрабатывать более сложные структуры, верно?

Является ли CRDT более мощным, чем OT?

Я задаю этот вопрос, потому что я пытаюсь понять, как реализовать совместный редактор для документов HTML, и не уверен, в каком направлении смотреть в первую очередь. Я видел проект ShareJS и их попытки поддержать совместную работу с расширенным текстом в браузере наcontenteditables элементы. Нигде в ShareJS я не вижу никаких попыток использовать CRDT для этого.

Мы также знаем, что Google Docs использует OT, и он работает довольно хорошо для редактирования документов в режиме реального времени. Является ли Google выбором использования OT, потому что CRDT был не очень известен в то время? Или это был бы хороший выбор и сегодня?

Мне также интересно услышать о других случаях использования, таких как использование этих алгоритмов в базах данных. Риак, кажется, использует CRDT. Можно ли использовать OT для синхронизации узлов базы данных и быть альтернативой Paxos / Zab / Raft?

Ответы на вопрос(1)

Ваш ответ на вопрос