title

text

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

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

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

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

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

Слайды

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

Видео

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

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

  • Артем Свяжин
    Артем Свяжин LLC SIMA-LAND Руководитель отдела системного инжиниринга
    20 мин

    Слоник который смог в ZFS

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

  • Илья Сазонов
    Илья Сазонов Всегда Да Руководитель разработки
    Фёдор Сазонов
    Фёдор Сазонов Сбер Руководитель направления
    40 мин

    pg укротитель

    У разработчиков постоянно возникают проблемы при работе с базами данных. Они вызваны тем, что разработчики считают СУБД чёрным ящиком, который "просто работает" и даже не подозревают, что важно и нужно понимать не только стандарт SQL, но и подробности устройства конкретной СУБД.

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

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

  • Дарья Лепихова
    Дарья Лепихова Postgres Professional разработчик
    Алексей Дарвин
    Алексей Дарвин
    40 мин

    Новые возможности pg_ProBackup 3.0

    В новой версии изменен подход к взаимодействию с базой данных, за счет использования собственного репликационного протокола, при этом утилита продолжает работать с любой версией бд, как PG_PRO так и Postgres. Изменен формат бекап файла, а так же в утилите будет доступен полноценный SDK, использование которого облегчает интеграцию pg_probackup c партнерами. SDK поддерживает разработку приложений на C, C++, GoLang Дополнительно реализована возможность бекапа на ленту и включены все доработки и оптимизации работы с wal, cfs, Ptrack, S3 имеющиеся в версии 2

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

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

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

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