Может ли кто-нибудь объяснить мне просто основные отличия между Operational Transform и CRDT?Различия между OT и CRDT
Насколько я понимаю, оба алгоритма позволяют конвертировать данные без конфликтов на разных узлах распределенной системы.
В каком порядке вы используете какой алгоритм? Насколько я понимаю, OT в основном используется для текста, а CRDT является более общим и может обрабатывать более сложные структуры?
Является ли CRDT более мощным, чем OT?
Я задаю этот вопрос, потому что я пытаюсь понять, как реализовать совместный редактор для HTML-документов, и не уверен, в каком направлении смотреть первым. Я видел проект ShareJS и их попытки поддерживать сотрудничество с богатым текстом в браузере на элементах contenteditables
. Нигде в ShareJS я не вижу попытки использовать CRDT для этого.
Мы также знаем, что Google Docs использует OT, и он отлично работает для выпуска документов в режиме реального времени. Является ли выбор Google в использовании OT, потому что CRDT был не очень известен в то время? Или это был бы хороший выбор сегодня?
Мне также интересно узнать о других случаях использования, например, используя эти алгоритмы в базах данных. Кажется, что Riak использует CRDT. Может ли OT использоваться для синхронизации узлов базы данных и быть альтернативой Paxos/Zab/Raft?
Вы должны прочитать документ TreeDoc, который предназначен для ваших целей. Https://hal.inria.fr/inria-00445975/document – simbo1905