Список докладов конференции PgConf.Russia 2017

Ускоряясь до миллиона записей в секунду: масштабирование PostgreSQL с помощью Citus MX

Marco Slot
Citus Data, Главный инженер-программист

Марко защитил магистерскую степень, работая над темой "Распределенные вычислительные системы" в Амстердамском Свободном Университете, и степень доктора за работу в области создания самоуправляемых автомобилей в Дублинском Тринити-Колледже. Во время учебы он нескольких лет работал в качестве инженера-программиста на Amazon CloudFront и Route 53, разрабатывая управление маршрутизацией запросов и ряд других ключевых особенностей. Сейчас работает инженером-программистом в компании Citus Data.

Инструмент Citus позволяет распределять таблицы PostgreSQL между несколькими серверами. Расширяя возможности PostgreSQL в плане делегирования и распараллеливания задач между группой рабочих узлов, Citus позволяет горизонтально масштабировать CPU-ресурсы и память для выполнения запросов.

Год назад мы ступили на долгий путь реализации в Citus возможности горизонтального масштабирования в новом измерении - для повышения скорости записи. Так как все запросы на запись обрабатывались через один узел PostgreSQL, скорость записи в Citus ограничивалась CPU-ресурсами одного узла. Citus MX - это новая версия Citus, которая предоставляет доступ к распределенным таблицам с любого узла, обеспечивая повышение скорости записи до уровня NoSQL решений. Мы рассмотрим основные технические проблемы реализации, с которыми нам пришлось столкнуться, такие как DDL репликация, блокировка на уровне кластера, восстановление после отказа и добавление узлов. Мы также покажем, как динамическое изменение настроек pgbouncer позволяет достичь линейной масштабируемости, и какой производительности нам удалось добиться на данный момент.

В доклада мы продемонстрируем использование Citus MX для распределения нагрузок в сфере интернета вещей (IoT).

ВИДЕО

Слайды