title

text

Андрей Литуненко
Андрей Литуненко 2ГИС Программист
: декабря
45 мин

Как мы распрощались с MongoDB и перешли на PostgreSQL

В своем докладе я поделюсь опытом переноса, конвертацией NoSQL-данных в реляционный вид и расскажу, как нам удалось ускорить приложение в 2 раза.

Изначально для хранения данных мы использовали PosgtgreSQL и MongoDB. На практике мы выяснили, что такое разделение крайне неудобно. Мы тратили уйму времени и внимания.

Расскажу, как с помощью mosql мы перенесли данные из MongoDB в PostgreSQL. Теперь все данные могут быть получены одним запросом, а схема таблиц обеспечивает консистентность данных.

Слайды

Видео

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

  • Иван Фролков
    Иван Фролков Postgres Professional инженер-консультант
    45 мин

    Управление потоками заданий в PostgresPro Enterprise

    Нередко требуется выполнить асинхронно не одну транзакцию, а несколько в строго определенной последовательности. Для реализации подобного рода задач существует несколько решений, и одной из них - модуль pgpro_scheduler.

  • Александр Коротков
    Александр Коротков Postgres Professional Руководитель разработки
    45 мин

    Подключаемые хранилища

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

    На текущий момент работа над подключаемыми хранилищами перешла в практическую плоскость: ведётся тред, в котором несколько человек разрабатывают набор патчей, и ещё больше делают ревью.

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

    • обзор получившегося интерфейса для подключаемых хранилищ;
    • изменения в ядре PostgreSQL, которые потребовались для реализации данного интерфейса;
    • текущие и потенциальные применения данного интерфейса, включая heap с undo-логом и in-memory OLTP движок;
    • текущее состояние патчей и перспектива их принятия в ядро;
    • дальнейшее развитие интерфейса с целю расширения возможностей подключаемых хранилищ (columnar, index-organized, LSM и т.д.).

  • Анатолий Солдатов
    Анатолий Солдатов Компания - ЗАО ЛАНИТ Старший разработчик баз данных
    22 мин

    Как деплоить в 5 раз быстрее или рассказ о нашей реализации параллельного выполнения миграций в Liquibase

    Liquibase - очень удобный инструмент последовательных миграций баз данных, используемый как на наших проектах, так и в большом числе других проектов и фреймворков. Он позволяет держать код базы вместе с кодом приложения в VSC, отслеживать попытки повторных миграций и много-много чего еще. Но рано или поздно проект вырастает, данные занимают терабайты, а liquibase все еще накатывает миграции последовательно.

    Мы не смогли позволить себе деплоиться по 100 часов и придумали тулзу (фреймворк) для liquibase, которая расширяет его возможности и позволяет выполнять паралллельно целый ряд скриптов или разбивать одну большую миграцию на маленькие партиции и параллельно мигрировать их.

  • Михаил Балаян
    Михаил Балаян Acronis Chief Database Architect
    45 мин

    MVCC в картинках и когда длинные транзакции - это проблема

    Многие из нас знают о том, что именно MVCC обеспечивает многопользовательский доступ к данным во многих реляционных базах данных, которые гарантируют согласованность и изолированность транзакций. Но именно глубокое понимание реализации этого механизма в PostgreSQL позволяет нам лучше понимать процессы, происходящие в базе, проектировать логику работы приложений и структуры таблицы, чтобы быть наиболее эффективными в мире высоких нагрузок. На примере одного из процессов в нашем продукте мы разберемся в том, как реализована MVCC в PostgreSQL и раскопаем одну из особенностей, когда казалось бы, несвязанные активности могут влиять друг на друга.