Наш ответ Uber'уБазы данных
Имеет статус PostgreSQL major contributor, разработал следующие фичи СУБД PostgreSQL: команда CREATE ACCESS METHOD, generic WAL-интерфейс, lockfree Pin/UnpinBuffer, индексный поиск по регулярным выражениям в pg_trgm, сжатие и "быстрый поиск" по GIN-индексам, буферизованный алгоритм построения и улучшенное разбиение страниц для GiST-индексов, статистика и оценки селективности для массивов и диапазонных типов, улучшения в нечётком поиске строк, KNN-GiST с перепроверкой по heap. Защитил кандидатскую диссертацию, основанную на своём вкладе в развитие PostgreSQL.
Опубликовав в своём блоге знаменитую заметку о переезде с PostgreSQL на MySQL, Uber наделал много шума в постгресовом сообществе. Для многих из разработчиков PostgreSQL это стало толчком к осознанию несовершенства постгресового табличного движка (который пока всё ещё один). В результате было разработано множество патчей, нацеленных на преодоление проблем, указанных Uber'ом, которые в чём-то пересекаются, а в чём-то даже противоречат друг другу. Среди этих патчей можно отметить indirect indexes (индексы, которые ссылаются на значение primary key), WARM (write-amplification reduction method – уменьшение избыточности записи), RDS (recently dead storage – хранилище для недавно устаревших версий). Также ведётся обсуждение подключаемых табличных движков и undo log'а.
В данном докладе будет разобран пост Uber'а глазами разработчика PostgreSQL. Я расскажу, с какими пунктами "обвинения" я согласен, с какими не согласен, а с какими – согласен частично. Также я разберу разработки сообщества в данном направлении и то, насколько они, на мой взгляд, позволяют преодолеть указанные недостатки.