title

text

Shawn Kim
Shawn Kim Apposha CEO
15:45 04 февраля
45 мин

Make Your PostgreSQL 10x Faster on Cloud in Minutes

Cloud storage has some unique characteristics compared to traditional storage mainly because it is virtualized and controlled by software. One example is that AWS EBS shows higher throughput with larger I/O size up to 256 KiB without hurting latency. Hence, a user can get only about 4 MiB/sec with 1,000 IOPS EBS volume if the I/O request size is 4 KiB, whereas a user can get about 250 MiB/sec if the I/O request size is 256 KiB. This is because EBS consumes one I/O in a given IOPS budget for every I/O request regardless of the I/O size (up to 256 KiB). Unfortunately, PostgreSQL cannot exploit the full potential of cloud storage because PostgreSQL has designed without considering the unique characteristics of cloud storage.

In this talk, I will introduce the AppOS extension that improves the throughput of a write-intensive workload by 10x by transparently making PostgreSQL cloud storage-native. AppOS works like a storage driver that efficiently exploits the characteristics of cloud storage, such as I/O size dependency to storage throughput and latency, atomic write support in cloud block storage, and fast, but non-durable local SSDs. To do this, AppOS comprises a Linux-compatible file I/O stack including virtual file system, page cache, block I/O layer, cloud storage driver. On top of the file I/O stack, syscall module supports registering pre- and post-handler for file I/O-related system calls in order to transparently work without modifying PostgreSQL codes.

I will focus on presenting key use cases and performance results of the AppOS extension after explaining the internals. Specifically, I will show the performance results of OLTP and some batch workloads using standard benchmarking tools like pgbench and sysbench. I will also present performance results and implications on multiple clouds including AWS, GCP, and Azure.

Слайды

Видео

Другие доклады

  • Анатолий Анфиногенов
    Анатолий Анфиногенов АО "ВНИИЖТ" Зам. директора научного центра - начальник отдела разработки ПО
    45 мин

    Как я перестал беспокоиться и перенес 60K строк из 150 процедур PL/SQL в Postgres.

    В докладе рассказывается об опыте переноса серверного приложения, работающего на полигоне железных дорог от Калининграда до Хабаровска, с Oracle 11g Standard Edition на ванильный PostgreSQL 11.5.
    На момент начала миграции база данных насчитывала порядка 200 хранимых процедур на языке Oracle PL/SQL общим объемом порядка 60000 строк (которые создавались с 2006 года, т.е. уже более 12 лет), около 250 таблиц и 50 Гбайт данных.
    Доклад содержит описание сопровождавших этот процесс приключений, приятных и неприятных открытий, а также пролог, эпилог и хэппи-энд.

    Повествование ведется от лица пользователя Oracle, открывающего для себя Postgres.

  • Christopher Travers
    Christopher Travers DeliveryHero SE Principle Engineer
    180 мин

    Extending PostgreSQL in C: A Tutorial

    PostgreSQL is one of the most readily extensible databases in the world. Custom data types, aggregations, functions, and more can be easily and safely written in C.

    This hands-on tutorial covers the basics of writing functions, data types, and aggregates in C. It is recommended (though not strictly required) that bring their own laptops and be prepared to actually try the exercises.

    Topics covered include: 1. The PostgreSQL type system 2. Creating a simple custom type in C 3. Common errors for non-C programmers 4. Creating a simple aggregate in C

    There will be many opportunities for questions and discussion through the tutorial.

  • Рустам Абдрахимов
    Рустам Абдрахимов ООО Форс-Телеком Главный эксперт
    Александр Любушкин
    Александр Любушкин ООО "ФОРС Телеком" Технический директор
    90 мин

    Разработка WEB-приложений для Postgres с помощью нового инструмента Live Universal Interface (LUI)

    В ходе мастер-класса будет продемонстрировано следующее:

    1. Преимущества декларативного программирования. Быстрое создание сложной формы LUI с применением только SQL.
    2. Поддержка длинных транзакций и автоматических блокировок. Пример визарда с записью прямо в базу.
    3. Управление раскраской данных в полях и столбцах формы. Типичные примеры.
    4. Живой поиск в полях ввода на примере ввода адресов.
    5. Как настроить LUI на ввод и отображение специфических данных прикладной системы.
    6. Разработка формы Мастер-Деталь с извлечением данных из двух разных БД.
    7. Как конечный пользователь строит сложные запросы к данным без использования SQL.
    8. Как в любом списке группировать данные и строить интерактивные диаграммы (включая 3D) c возможностью “drill down”.

    Слушатели по желанию смогут своими руками изготовить WEB-интерфейс для Postgres на LUI (см. презентацию на https://pgconf.ru/2019/118109)

  • Алексей Фадеев
    Алексей Фадеев Sibedge Старший разработчик .NET, евангелист Postgres.
    22 мин

    GraphQl-бэкенд на PostgreSQL и plv8

    Недавно мне пришлось поработать над проектом, где для запросов к бэкенду на .NET Core использовали GraphQl, о чём потом пожалели. Дело в том, что GraphQl-запрос представляет собой объект с динамическим набором полей и иерархией любой вложенности. Обрабатывать такие объекты на языке со статической и сильной типизацией, да ещё и через ORM, как это предлагают библиотечные решения – очень неудобно. И тогда мне пришла идея использовать plv8 и разбирать запросы в формате GraphQl прямо на стороне БД. За пару часов я написал работающий прототип, реализующий функционал, который разрабатывали более месяца! Затем было сделано несколько усовершенствований, всё это я собираюсь показать. Тем, кто собирается в своих проектах использовать GraphQl, а не REST, информация из данного доклада может особенно пригодиться и возможно поможет сэкономить уйму времени.