Здравствуйте, Denis Ivlev, Вы писали:
DI>Здравствуйте, Sinclair, Вы писали:
S>>Интрига не в этом. Интрига — что, если у нас внутри этой таблички есть регион 1000*1000, в каждой из ячеек которого написано R[-1]C[-1]+1. S>>И вот у нас пользователь пишет в левом верхнем углу этого региона число 42. За какое время мы раздадим это изменение остальным 999 пользователям?
DI>Ответ — когда-нибудь. В любом случае на сервере или в кластере выполняем все расчеты, исходим из того, что у нас не должно быть грязных чтений, поэтому пока идет обработка ячейки блокируются.
Отличная идея, коллега. Как выполняется блокировка — через сервер, или через клиента? S>>Оповещаем пользователей лениво, например каждые 200 мс, то есть аккумулируем изменения и отправляем одним батчем. Появляется 2 кейса: DI>1. Обработка выполнилась быстрее и пользователь получил актуальные данные DI>2. Обработка в процессе и в таком случае у пользователя изменяемые ячейки становятся недоступными для редактирования
А вы уже получили полный список ячеек для блокировки?
На самом деле я не жду от вас конкретного алгоритма — это просто пример того, что spreadsheets не сводятся к тупому редактору независимых скаляров. Такую-то штуку, действительно, можно придумать за двадцать минут, особенно если резолвить конфликты как last edit wins.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.