Как двое печатают в одной строке и не теряют ни одной буквы

Два курсора, одна строка и никакого сервера, который держит ручку. Один ползунок разбирает слияние по индексам и собирает его заново на адресах, которые живут между буквами.

Этап Печатают одновременно
  1. 0
  2. 1
  3. 2
  4. 3
  5. 4

Нажмите на участок схемы, чтобы открыть этап.

Что дала дробь

Индекс описывает место в списке, который другие меняют у вас под руками. Дробный идентификатор с номером узла описывает место, которое может создать только его автор, поэтому любая реплика соберёт одно и то же множество правок в одну и ту же строку: без сети, в любом порядке и без сервера, решающего, кто прав.

Что внутри

  1. 1 Оба вставляют в один и тот же промежуток · Индекс 1 перестаёт означать то же самое, как только кто-то отредактировал строку раньше вас.
  2. 2 У буквы появляется адрес, а не индекс · Аня и Боб попадают в одну и ту же середину, именно ради этого случая в идентификаторе есть номер узла.
  3. 3 Пакеты приходят в разном порядке · Здесь нечего «сохранять»: порядков два, и оба настоящие.
  4. 4 Входящие сортируют, а не применяют по очереди · Две правки с равной позицией разводит номер узла: правило произвольное, но одинаковое на всех машинах.
  5. 5 Оба экрана приходят к одним и тем же пяти буквам · Сходимость это согласие не о смысле, а о порядке.

Интерактивные статьи

Этап Печатают одновременно
  1. 0
  2. 1
  3. 2
  4. 3
  5. 4
1 / 5