jbreak JBreak 2017 (04.04.2017 — 04.04.2017)

CRDT. Разрешай конфликты лучше, чем Cassandra

img

Работа в условиях сетевой сегментации, асинхронная репликация, optimistic UI, offline work приводят к конфликтам. Когда сonflict resolver на timestamp’ах не работает, в игру вступают CRDT.

Несколько дата-центров с асинхронной репликацией и отсутствием координации; доступность и корректная работа в условиях сетевой сегментации; молниеносный отклик на клиенте и оптимистичный UI; офлайн-режим работы в браузере или на смартфоне. Всё это звучит круто, не правда ли? Немногие приложения сегодня могут похвастаться таким набором возможностей. Причина в том, что всё это может привести к конкурентным изменениям, а конкурентные изменения приводят к конфликтам… И вот вы уже пишете свой conflict resolver на timestamp’ах. А будет ли ваш conflict resolver работать правильно? Скорее всего, нет. Научное сообщество придумало решение проблемы — CRDT (Conflict-free replicated datatypes). В своем докладе Андрей покажет почему простейшие conflict resolver’s не работают на конкретном примере, а потом расскажет про CRDT. Слушатели узнают о различных видах CRDT, их преимуществах и недостатках. Доклад также коснётся границ применимости CRDT. В конце доклада Андрей рассмотрит несколько баз данных с поддержкой CRDT, для того, чтобы вы знали, какую БД выбрать для вашего следующего проекта. Или, может быть, задумались о написании своей собственной…