Новое про Базы Данных

Привет, друзья! Сегодня послушал один из лучших it-подкастов для программистов в России (ясно, что девзен входит в тройку вместе с радиотом и разбором) — http://devzen.ru/episode-0146/ и подчерпнул для себя немного нового про Базы Данных.

Может, кто знает, но, как минимум, 3 чувака из девзена (все кроме Светы) отлично шарят в БД. Александр Коротков — разработчик PostgreSQL в Postgres Professional. Велара — разрабочтик распределенных систем в какой-то немецкой фирме. Его слабость — NoSQl Бд, и в частности Ряк — RIAK и возражденный словно феникс RethinkDB. А Ваня — простой умный парень, пишуший на Сях, который тащится от хардкор тем (в отличие от Светы, которая в душе менеджер, обошает менедмент, ташит в подкаст санный менеджмент, слушать противно).

Интересное про Базы данных:

  1. Лет 5 назад все говорили про NoSql: schema less, scalability, cap theorem, cp/ap, failure tolerance — вот это всё. Прошло несколько лет. Гугл, амазон и КО проложили свои интернет-кАбеля через океан, вероятность сетевой недоступности стала стримиться к нулю. Люди поверили в то, что P из CAP им больше не нужно. Да и ACID снова захотелось — ведь с ним так удобно. Из всего этого появился новый buzzword — NewSQL. Это самый новый тип БД, вобравший в себя всё лучшее: ACID транзакции, масштабируемость, надёжность. Главный пример NewSQL — нашумевший этой зимой Google Spanner.
  2. Мобильная разработка движется очень быстро. В 2016-м году большинство компаний были mobile first. В 2017-м году, конечно же, теперь тренд на artificial intelligence first — все Гранды стали дрочкать на машинное обучение, нейронки и вот это всё. Но сейчас не про AI. В мобильной разработке часто нужно сделать многопользовательское оффлайн редактирование документа (e.g, google docs, messengers). Как следствие, 2 пользователя редактируют одну сущность, выходять онлайн, у них merge conflict. Тут можно либо брать любую из двух версий файла, либо делать две копии документа, либо интелектуально мёрджить конфликты. Набор алгоритмов для оптимистичного редактирования и последующего merge описан для Conflict-free replicated data type.
  3. Новое про консистентность. Когда вы хотите простоты и отсутствия боли, вы лочитесь для конкурентного доступа. Но очевидно это медленно. Существует много разных подходов, как избежать локов и обеспечить консистентность. Один из них — Multiversion concurrency control (MCC or MVCC).

Категории: Программирование