title

text

Николай Шаплов
Николай Шаплов Postgres Professional Fuzzing Engeener
15:35 08 апреля
40 мин

Fuzzing-исследование PostgreSQL. Как мы искали и что мы нашли

Фаззинг-исследование, это когда мы подаем в программу (или ее часть) случайные входные данные (на самом деле случайность весьма условна) и смотрим что из этого получится. И так много раз на многих процессорах.

Фаззинг исследование большого монолитного программного комплекса всегда не простая задача требующая неординарных решений. В этом докладе я расскажу что и как мы искали при помощи фаззинга и к каким результатам оно привело.

Исследование функций парсинга типов данных (input-функции): для разогрева;
Исследование функций реализующих операции между типами (op-функции): тут лучше учитывать структуру;
Фаззинг сетевой подсистемы: давайте притворимся, что мы POSIX-вызовы, так дешевле;
Восстановление дискового контекста: нужен день сурка.

Слайды

Слайды доступны участникам мероприятия, выполнившим вход в личный кабинет.

Видео

Видео доступно участникам мероприятия, выполнившим вход в личный кабинет

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

  • Никита Печёнкин
    Никита Печёнкин Postgres Professional Разработчик программного обеспечения
    40 мин

    Консистентность в распределенных системах на базе PostgreSQL

    Поговорим о консистентности в распределенных системах с точки зрения СУБД, распределенной системы и распределенной СУБД. Рассмотрим иерархию уровней согласованности, в т.ч. с точки зрения допустимых аномалий. Рассмотрим и сравним гарантии согласованности данных, предоставляемые различными решениями на базе PostgreSQL включая Shardman от Postgres Pro. Рассмотрим архитектуру Shardman с точки зрения возможных аномалий и наши способы от этих аномалий избавиться. Расскажем о том, как мы в Shardman верифицируем гарантии консистентности с помощью jepsen-тестирования.

  • Андрей Черняков
    Андрей Черняков UIS, CoMagic Разработчик баз данных, техлид
    40 мин

    pg_migration - система работы с кодом, как не дать программистам все сломать

    Мы долгое время катили релизы на базы данных руками. Но когда их количество стало больше 50, выкладывать релизы руками стало больно, даже при наличии скриптов. Стало понятно, что нужен какой-то инструмент. Так как готовые инструменты нам не подошли, мы решили написать свою систему на основе пайплайнов ci/cd в gitlab.

    В результате получилась удобная система работы с кодом: - автоматические проверки практически не дают сделать что-то не правильно (plpgsql_check, авто-тесты и т.д.) - исключается возможность расхождения кода в живой БД и в репозитории - включает в себя несколько утилит (написанных на python), которые можно использовать как в пайплайнах, так и непосредственно из консоли - поддерживаются два режима раскатки релизов: по кнопке из gitlab и полностью автоматический (по ключевому слову auto_deploy в сообщении к коммиту)

  • Владлен Пополитов
    Владлен Пополитов Postgres Professional разработчик программного обеспечения
    40 мин

    Зачем мне векторная база данных, если уже есть PostgreSQL?

    В 2023 году было анонсировано рекордное количество новых векторных баз данных. Mы расскажем о феномене векторных баз данных, раскроем суть этого явления и продемонстрируем, как векторные СУБД решают проблему производительности операций с векторами больших размерностей, и что препятствует реляционным базам данных конкурировать с ними в настоящее время. Несмотря на общий интерес к векторным базам данных, есть мнение о том, что существующие реляционные СУБД скоро смогут эффективно поддерживать операции с многомерными векторами, сохраняя традиционно богатый функциональный набор, что особенно важно для корпоративных пользователей. Например, для PostgreSQL уже созданы несколько расширений для работы с многомерными векторами, таких как pgvector, diskann, а также несколько коммерческих вендоров PostgreSQL объявили о поддержке работы с векторами. Мы рассмотрим используемые в этих расширениях алгоритмы, остановимся на недостатках и покажем возможные пути их улучшения.

  • А
    Андрей Лепихов
    Алена Рыбакина
    Алена Рыбакина Postgres Professional Разработчик
    40 мин

    Перепланирование безнадежных запросов в реальном времени

    В настоящее время приложения с автоматически генерируемыми запросами получают все большее распространение, однако это приводит к тому, что оптимизаторы современных СУБД из-за некоторых ограничений не могут найти оптимальный план их выполнения. Поэтому это вынуждает выполнять их в течение длительного времени. В основном эта ошибка возникает из-за неправильной оценки мощности, что еще хуже, ошибка может повторяться оптимизатором снова и снова. В нашем повествовании мы расскажем о весьма нетрадиционной попытке решения этой проблемы методом перепланирования запросов, который путем анализа дерева выполнения запроса с сохранением фактической мощности, использует знания для генерации более корректного плана запроса.