title

text

Talks

  • Pavel Luzanov
    Pavel Luzanov PostgresPro

  • Денис Волков
    Денис Волков

  • Yandong Yao
    Yandong Yao Beijing Siwei Zongheng Data Technology Co., Ltd. CEO

    YMatrix is a distributed, multi-model database built on PostgreSQL. Domino is its native in-database stream processing engine, enabling true unified batch and stream processing. This talk explores the design concepts, technology selection, and implementation of in-database stream processing in YMatrix, aiming to address the complexity, resource overhead, and consistency challenges of traditional external streaming architectures. Background and Motivation In conventional data architectures, data is extracted from OLTP systems and processed either through T+1 batch pipelines or external stream processing engines (such as Flink) before being loaded into data marts. This approach suffers from limited real-time capabilities, high system complexity, data redundancy, and potential consistency risks. In-database stream processing offers a more efficient alternative by simplifying system architecture, reducing resource consumption, strengthening data lineage, and improving flexibility. Core Design GoalsThe system is designed to support incremental processing (distinct from materialized views), near real-time latency (sub-second or configurable), multi-stage stream concatenation, minimal impact on OLTP workloads (better than trigger-based solutions), eventual consistency, and high-throughput processing. Meanwhile, it provides full SQL-level semantics, avoiding the need for user-defined code. Technical Implementation - SQL Syntax DesignThe SQL grammar is extended with CREATE STREAM ... AS SELECT ... STREAMING to define stream objects that subscribe to incremental changes from upstream tables. The semantics resemble materialized views but support continuous incremental updates. - Incremental Data CaptureLogical Decoding is used to create replication slots for capturing WAL changes. Combined with initial historical snapshots to initialize stream tables, background workers continuously execute incremental query plans to synchronize streaming tables. - Progress ManagementStream progress (restart_lsn / confirm_lsn) is maintained in shared memory and atomically updated on transaction commit. Integration with XLog and checkpoint mechanisms ensures reliable crash recovery. - Plugin FrameworkThe framework supports three primary SQL patterns: single-stream join with dimension tables (domino_one), single-stream aggregation (domino_agg), and dual-stream Inner Join (domino_join). Each plugin matches SQL query patterns and generates corresponding incremental execution plans. - Update HandlingLogical Decoding outputs DELETE/INSERT markers, and primary-key conflict handling (INSERT ... ON CONFLICT) enables incremental propagation of upstream updates and deletes. For aggregation, inverse transition functions (aggmtransfn / aggminvtransfn) are introduced to support retraction. Dual-stream join scenarios further support arbitrary update/delete operations on both input streams. BenefitsCompared with external streaming engines, this approach significantly simplifies system architecture, reduces resource costs (cutting down serialization and network transmission overhead), strengthens data consistency guarantees, and lowers the user adoption barrier through pure SQL semantics.

  • Марк Ривкин
    Марк Ривкин PostgresPro

  • Роман Фролов
    Роман Фролов ФОРС

  • Денис Гидин
    Денис Гидин PostgresPro
    training 120 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Алексей Мигуцкий
    Алексей Мигуцкий Конвертум
    training 60 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Александр Буров
    Александр Буров ООО «Компания ИНВЕРСИЯ»
    Илья Андреев
    Илья Андреев Компания ИНВЕРСИЯ

  • Игорь Тот
    Игорь Тот

  • Maxim Orlov
    Maxim Orlov PostgresPro

  • Андрей Забелин
    Андрей Забелин PostgresPro

  • Boris Pischik
    Boris Pischik PostgresPro

  • Anton Doroshkevich
    Anton Doroshkevich InfoSoft

  • Борис Бондарев
    Борис Бондарев

  • Руслан Баймеев
    Руслан Баймеев Частное лицо

  • Sof'ya Kopikova
    Sof'ya Kopikova PostgresPro

  • Aleksandr Cherkashin
    Aleksandr Cherkashin

  • Михаил Сумской
    Михаил Сумской PostgresPro

  • Игорь Романов
    Игорь Романов PostgresPro
    Владислав Ахмедов
    Владислав Ахмедов PostgresPro

  • Эльмира Рахматулина
    Эльмира Рахматулина PostgresPro

  • Yury Zhukovets
    Yury Zhukovets

  • Mikhail Rutman
    Mikhail Rutman PostgresPro

  • Никита Волков
    Никита Волков

  • Роман Курилов
    Роман Курилов
    Владислав Леонтьев
    Владислав Леонтьев YADRO
    training 60 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Евгений Гарбуз
    Евгений Гарбуз PostgresPro
    training 60 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Александр Анохин
    Александр Анохин PostgresPro

  • Михаил Гилев
    Михаил Гилев

  • Дмитрий Ремизов
    Дмитрий Ремизов ГНИВЦ

  • Dmitry Vasilyev
    Dmitry Vasilyev Ozon
    Gregory Smolkin
    Gregory Smolkin Ozon

  • Максим Ситников
    Максим Ситников PostgresPro

  • Vasiliy Puchkov
    Vasiliy Puchkov PostgresPro

  • Григорий Новиков
    Григорий Новиков Новосибирский Государственный Университет

  • Наталья Графеева
    Наталья Графеева
    Александра Сухотина
    Александра Сухотина Университет ИТМО

  • Nikolai Golov
    Nikolai Golov PostgresPro Директор по продукту новой аналитической платформы

  • Алексей Семихатов
    Алексей Семихатов

  • Жора Бабаян
    Жора Бабаян

  • Alexey Lesovsky
    Alexey Lesovsky PostgresPro
    training 240 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Денис Гидин
    Денис Гидин PostgresPro
    training 180 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Никита Ложкин
    Никита Ложкин 1C LLC

  • Илья Сазонов
    Илья Сазонов
    Фёдор Сазонов
    Фёдор Сазонов

  • Роман Хапов
    Роман Хапов

  • Sergey Novikov
    Sergey Novikov ЕДИНЫЙ ЦУПИС

  • Юрий Темкин
    Юрий Темкин

  • Олег Гурьев
    Олег Гурьев PostgresPro

  • Andrey Borodin
    Andrey Borodin

  • Alexey Fadeev
    Alexey Fadeev sibedge

  • Никита Тихонович
    Никита Тихонович Конвертум

  • Владимир Хаймин
    Владимир Хаймин Банк ВТБ (ПАО)

  • Дарья Барсукова
    Дарья Барсукова PostgresPro

  • Александра Бондарь
    Александра Бондарь PostgresPro

  • Алексей Прошин
    Алексей Прошин

  • Дмитрий Юричев
    Дмитрий Юричев

  • Максим Грамин
    Максим Грамин PostgresPro

  • Андрей Забелин
    Андрей Забелин PostgresPro
    training 120 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Anatoly Anfinogenov
    Anatoly Anfinogenov АО "ВНИИЖТ"

  • Андрей Билле
    Андрей Билле PostgresPro

  • Дмитрий Поликовский
    Дмитрий Поликовский
    Дмитрий Понкратенко
    Дмитрий Понкратенко
    training 90 min

    Sign-up is available only for confirmed offline participants PGConf.Russia 2026

  • Иван Чувашов
    Иван Чувашов DBA

  • Игорь Мельников
    Игорь Мельников

  • Владимир Бурба
    Владимир Бурба PostgresPro

  • Andrey Zubkov
    Andrey Zubkov PostgresPro

  • Виталий Пелешенко
    Виталий Пелешенко