Сергей Петренко
Компания: Tarantool
Сейчас нельзя себе представить базу данных без репликации. Репликация повышает сохранность данных в случае сбоев и позволяет распределить нагрузку на чтение (а иногда и на запись) между несколькими узлами.
Все эти преимущества, конечно, имеют свою цену: в распределенной системе возможны аномалии данных, которые бы никогда не произошли при размещении базы на одном узле. Например, чтение с реплики может возвращать старую версию данных уже после того, как на лидере была записана новая, а независимое изменение данных несколькими узлами в дополнение к этому приводит к конфликтам.
Для некоторых приложений такое поведение распределенных систем не представляет трудностей, но другие требуют более строгих гарантий.
Уровень консистентности linearizable призван спрятать все эти тонкости от пользователя, чтобы можно было пользоваться преимуществами хранения данных на нескольких узлах и не беспокоиться об аномалиях, возникающих в распределенной системе.
Сергей расскажет, как может быть реализован уровень linearizable на примере СУБД Tarantool, и какие накладные расходы влечет его использование.
Компания: Tarantool