Re[5]: Закончил разрабатывать алгоритм
От: cppguard  
Дата: 17.12.20 11:40
Оценка: +1
Здравствуйте, Тёмчик, Вы писали:

Тё>Что, если получать изменения по ячейке, мержить по Levenshtein distance, "пушить" раздельно. Каждый пользователь со своей копией "репы". В случае, если автоматически смержить не получается- предоставить UI для ручного мержа ячейки. Несмерженную копию документа для каждого юзера тоже можно хранить на сервере как "cloud backup".


Заставить пользователей, не знакомых с версионированием, выполнить слияние? Как-то жёстко.

Мой вариант следующий. Табличные вычисления нужно перенести на клиент, клиенты обмениваются текстовым содержимым ячеек через сервер (в продвинутой версии можно сделать P2P). Изменения ячеек это сообщения с метками времени, поэтому всегда можно определить последнюю версию и избежать рассинхронизации. Сервер так же содержит референсную копию на случай, когда таблица строится с нуля. Из тройки CAP жертвуем Consistency, зато получаем условно-бесплатную масштабируемость. Все остальные методы с расчётом на сервере и отправкой кусками будут очень чувствительны к любым задержкам сети.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.