Менеджер распределённых транзакций для кластера PostgreSQL
В корпоративных информационных системах от СУБД требуется поддержка кластеров, для обеспечения требуемого уровня масштабирования и надёжности. К сожалению, многочисленные попытки реализовать кластеры для Постгреса, такие как Postgres-XL/XC, так и не были доведены до коммерческого уровня и не были приняты сообществом. Другие существующие решения, например, pg_shard, plproxy не поддерживают глобальных ACID транзакций. Наша команда разработала менеджер распределённых транзакций (DTM) как расширение Постгреса, позволяющее достичь глобальной целостности для нескольких экземпляров Постгреса, объединённых в один кластер. DTM - это конструктор, позволяющий реализовать различные решения на его основе. В качестве демонстрации возможностей DTM мы интегрировали его в pg_shard и postgres_fdw. Мы надеемся, что наш подход с расширяемым менеджером транзакций будет включён в версию 9.6 Постгреса и позволит разрабатывать различные кластерные решения на его основе.
Слайды
Видео
Другие доклады
-
Jean-Paul Argudo Dalibo CEO
Миграция на PostgreSQL : причины... и последствия
Будут рассмотрены традиционные аргументы на тему "почему следует выбрать PostgreSQL среди других баз данных"... Помимо этого, и что достаточно ново для сообщества, будут рассмотрены последствия такого выбора. Переход на PostgreSQL влечет за собой переход не только к таким вещам, как например Linux, но и переход к мышлению в стиле свободного ПО. Быстрый темп развития PostgreSQL диктует новые методы проверки, к которым компании должны адаптироваться.
-
Николай Рыжиков Health Samurai CTO
PL/v8 в медицине
Мы разрабатываем медицинскую базу данных - fhirbase, основанную на PostgreSQL и современном стандарте обмена медицинской информацией FHIR. Первая версия была написана с использованием SQL и PL/PgSQL, однако она достигла предела своей сложности и была полностью переписанна на PLv8/javascript. В докладе я расскажу про архитектуру fhirbase и то, почему мы выбрали PLv8. Про комфортную среду разработки, которая позволяет разрабатывать код и тесты в Node.JS и потом деплоить этот код в PostgreSQL. Поделюсь проблемами, с которыми мы столкнулись. Порассуждаем о переиспользовании библиотек и эко-системы javascript для разработки бизнес-логики внутри PostgreSQL. Расскажу про идеи PostgREST и no-backend приложений на PostgreSQL.
-
Лев Ласкин Электрон Ведущий специалист по внедрению решений на базе СПО
Опыт использования PostgreSQL в качестве СУБД для платформы 1С:Предприятие от 8.1 до 8.3
В конце 2006 компанией 1С была реализована работа платформы 1С:Предприятие с СУБД PostgreSQL, которая может функционировать под управлением операционных систем Windows или Linux. В докладе будет предпринята попытка обобщить опыт совместного использования платформы 1С:Предприятие с СУБД PostgreSQL начиная с 2008 года. Будут рассмотрены несколько историй успеха, технические особенности работы, приведены примеры решения конкретных задач, даны рекомендации по выбору за и против. Доклад может быть интересен сотрудникам компаний рассматривающих вариант использования PostgreSQL для платформы 1С:Предприятие, DBA, специалистам интересующимся возможностями расширяемости PostgreSQL.
-
ДДмитрий Мельник ИСП РАН разработчик
Ускорение исполнения запросов в PostgreSQL с использованием JIT-компилятора LLVM
В настоящее время в PostgreSQL для исполнения SQL-запросов используется интерпретатор. Это приводит к накладным расходам, связанным с неявными вызовами функций-обработчиков и проверок, которых можно было бы избежать при создании исполняемого кода "на лету" (JIT-компиляции) под конкретный SQL-запрос: в этом случае во время выполнения уже известна структура используемых таблиц и типы данных. Особенно это актуально для сложных запросов, где производительность процессора является основным ограничением. В настоящий момент существует два известных проекта, реализующих JIT-компиляцию в PostgreSQL: коммерческое решение Vitesse DB и open-source проект PGStorm. В первом проекте за счет использования LLVM JIT авторам удается получить ускорение до 8 раз на тестах из набора TPC-H. Второй проект реализует JIT-компиляцию запроса с использованием CUDA для исполнения его на GPU, что позволяет ускорить выполнение некоторых типов запросов на порядок.
Наша работа посвящена добавлению поддержки JIT-компиляции SQL-запросов в PostgreSQL с использованием компиляторной инфраструктуры LLVM. В докладе будет подробно рассмотрено, как JIT-компиляция может быть использована для ускорения различных этапов исполнения SQL-запросов, а также особенности трансляции SQL-запросов в LLVM-биткод для получения эффективного исполняемого кода. Также будут представлены предварительные результаты тестирования JIT-компилятора на наборе тестов TPC-H.