SlideShare a Scribd company logo
PGCon-2016:
Последние
новости
Oleg Bartunov, Alexander Korotkov
Postgres Professional, Moscow University
RIT++, June 1, 2017
PostgreSQL Developers Meeting, May 17, 2016, Ottawa, Canada
● Oleg Bartunov, PostgreSQL Professional
● Josh Berkus, Red Hat
● Joe Conway, Crunchy Data
● Jeff Davis, AWS
● Andrew Dunstan
● Peter Eisentraut, 2nd Quadrant
● Andres Freund, Citus Data
● Stephen Frost, Crunchy Data
● Etsuro Fujita, NTT
● Kevin Grittner, EnterpriseDB
● Robert Haas, EnterpriseDB
● Magnus Hagander, Redpill Linpro
● Heikki Linnakangas, Pivotal
● Amit Kapila, EnterpriseDB
● Alexander Korotkov, PostgreSQL Professional
● Tom Lane, Crunchy Data
● Noah Misch
● Dave Page, EnterpriseDB
● Michael Paquier, VMWare
● Simon Riggs, 2nd Quadrant
● Masahiko Sawada, NTT
● Teodor Sigaev, PostgreSQL Professional
● Oleg Bartunov, PostgreSQL Professional
● Josh Berkus, Red Hat
● Joe Conway, Crunchy Data
● Jeff Davis, AWS
● Andrew Dunstan
● Peter Eisentraut, 2nd Quadrant
● Andres Freund, Citus Data
● Stephen Frost, Crunchy Data
● Etsuro Fujita, NTT
● Kevin Grittner, EnterpriseDB
● Robert Haas, EnterpriseDB
● Magnus Hagander, Redpill Linpro
● Heikki Linnakangas, Pivotal
● Amit Kapila, EnterpriseDB
● Alexander Korotkov, PostgreSQL Professional
● Tom Lane, Crunchy Data
● Noah Misch
● Dave Page, EnterpriseDB
● Michael Paquier, VMWare
● Simon Riggs, 2nd Quadrant
● Masahiko Sawada, NTT
● Teodor Sigaev, PostgreSQL Professional
Developers meeting
●Как номинировать на Major contributors
Команда волонтеров займется этим
(Josh Stephen, Joe, Dave)
●Emeritus list для долгонеактивных
●Core team медленно меняется
●Нет ясного механизма
●RMT — хорошая практика, так держать
●За качество отвечают коммитеры !
●Next Release Schedule
* CF1: September 1 to 30th
* CF2: November 1 to 30th
* CF3: January 1 to 31st.
* CF4: March 1 to 31st.
* Feature Freeze: March
* 31st May 16th: Beta
●Нужен общий пул железа для тестирования
●Спор вокруг шардинга
●FDW sharding ? EDB отреклась - это все
Брюс, это его проект.
●Distributed transactions в ядро ?
●Postgres-XL и Postgres Professional будут вести
отдельные сессии на Developers Unconference
●Pglogical форкнут к 1 августу для включения в ядро
●CFM — Commitfest Management Team (2-3 человека) на
каждый CF за три недели до старта (CORE team задача)
https://wiki.postgresql.org/wiki/PgCon_2016_Developer_Meeting
Version Numbering
* 8 голосов за X.Y.Z
* 13 голосов за X.Y
X меняется каждый год
Y — минорный релиз
* 9.7 → 10.0
PostgreSQL Roadmap
● На самом деле планов развития у постгреса нет
https://www.postgresql.org/developer/roadmap/
"PostgreSQL is a non-commercial, all volunteer, free software
project, and as such there is no formal list of feature
requirements required for development. We really do follow the
mantra of letting developers scratch their own itches."
● Однако, постгрес давно используется большим бизнесом и
вокруг него сложились компании, которые занимаются
поддержкой, разработкой как самого постгреса, так и
приложений. Всем нужны планы !
● В России сложились специфические условия для развития
постгреса, нас даже заметил Оракл :) Пришло много
бизнеса, много новых людей.
● Поэтому Postgres Professional поставил вопрос о планах
PostgreSQL Roadmap
https://goo.gl/eCZOdX
Developers meeting (Roadmaps)
Postgres Professional Roadmap
1 Multimaster cluster with sharding
2 JIT-compilation of queries
3 Pluggable storages
4 Effective partitioning
5 Adaptive query planning
5.1 Query plans management
5.2 Machine learning
5.3 Execution-time planning
6 Backup
6.1 Block-level incremental backup
6.2 Backup validation
6.3 Partial backup and partial restore
7 Connection pooling
8 Page-level data compression
9 Wait events monitoring
10 Better temporary tables
10.1 Temporary tables outside of system catalog
10.2 Temporary tables on standbys
11 Native querying for jsonb with indexing support
EnterpriseDB database server roadmap
1 Parallelism
Hash node
Bitmap Heap Scan
Index Scan
Vacuum
2 Partitioning
Declarative partitioning
3 Foreign Data Wrappers
Aggregate pushdown to postgres_fdw
Async execution to executor
Pluggable API for heap in core
4 Replication
Causal reads
5 Vertical Scalability
Speedup CLOG access
Cache MVCC snapshots-reduce contention
ProcArrayLock
6 Performance
Asynchronous, Vectorized execution
Hash indexes
7 SQL Features
https://wiki.postgresql.org/wiki/Postgres_Professional_roadmap
https://wiki.postgresql.org/wiki/EnterpriseDB_database_server_roadmap
Developers Unconference
https://wiki.postgresql.org/wiki/PgCon_2016_Developer_Unconference
5 sessions out of 12 by Postgres Professional
Developers Unconference
https://wiki.postgresql.org/wiki/PgCon_2016_Developer_Unconference
5 sessions out of 12 by Postgres Professional
Конференция - 1
Parallel Query Architecture
Gather
nodeGather.c
Gather
nodeGather.c
Parallel-Aware
Executor Nodes
nodeSeqScan.c
nodeForeignScan.c
nodeCustom.c
Parallel-Aware
Executor Nodes
nodeSeqScan.c
nodeForeignScan.c
nodeCustom.c
Parallel Executor
Support
execParallel.c
Parallel Executor
Support
execParallel.c
Tuple Queue Reader
and DestReceiver
tqueue.c
Tuple Queue Reader
and DestReceiver
tqueue.c
Dynamic
Background Workers
bgworker.c
Dynamic
Background Workers
bgworker.c
Dynamic Shared
Memory
dsm.c, dsm_impl.c
Dynamic Shared
Memory
dsm.c, dsm_impl.c
Shared Memory
Message Queue
shm_mq.c
Shared Memory
Message Queue
shm_mq.c
Parallel Context
parallel.c
Parallel Context
parallel.c
Shared Memory
Table of Contents
shm_toc.c
Shared Memory
Table of Contents
shm_toc.c
Error/Notice
Forwarding
pqmq.c
Error/Notice
Forwarding
pqmq.c
State Synchronization
dfmgr.c, guc.c, combocid.c,
snapmgr.c, xact.c
State Synchronization
dfmgr.c, guc.c, combocid.c,
snapmgr.c, xact.c
Group Locking
lock.c
Group Locking
lock.c
Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
• With parallel query enabled, 17 plans used parallelism. The
other 5 query plans did not change.
• Of the 17 queries that used parallelism, 15 got faster, 1 was
unchanged, and 1 got slower. (Increasing work_mem fixed
the regression.)
• 3 queries ran at least 4x faster; 11 queries ran at least 2x
faster.
• Full results at rhaas.blogspot.com
TPC-H Testing: Results
Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
• Ideal join strategy is a merge join, which we don't know how
to do in parallel: Q2, Q13, Q15
• Need parallel hash table build: Q3, Q5, Q7, Q8, Q21
• Need parallel bitmap index scan: Q4, Q5, Q6, Q7, Q14, Q15,
Q20
• Need parallel subquery handling: Q2, Q15, Q16, Q22
• Need gather merge: Q17
• Not sure: Q3, Q9, Q10, Q11, Q18
• Already looks ideal: Q1, Q12, Q19
Analysis of Query Plans – What's missing?
Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
In-memory column storage by Fujitsu
Источник: http://www.pgcon.org/2016/schedule/events/919.en.html
Snapshot too old
● Чтобы не накапливался большой bloat, нужно обрывать
транзакции, которые видят старые данные.
● Параметр old_snapshot_threshold в интервале 1 мин. –
60 дн.
● Обрываем транзакцию только тогда, когда она
действительно пытается обратиться к изменившимся
данным.
● Осторожно! Значительный overhead на многоядерных
системах.
● В будущем, можно применить этот механизм для
standby.
Ускорение простых запросов
Оптимизации:
● Push Down Scan key
● Save Expression Initialization for targetlist and qual
● Save Scan slot
● Save Executor State
● Save Expression Context
Это даёт:
● 25% ускорение INSERT
● 20% ускорение SELECT
● 20% ускорение UPDATE
Источник: http://www.pgcon.org/2016/schedule/events/936.en.html
Конференция - 2
Конференция - 2
Multicore scalability
«Improved reads and writes»
● Group commit – 30 на большой power-8 машине:
30% ускорение для 64 клиентов и 133%
ускорение для 256 клиентов на read-write
pgbench тесте.
● Увеличение clog buffers с 32 до 128: 90%
ускорение на unlogged таблицах для 256
клиентов на read-write pgbench тесте.
● Параметры checkpointer_flush_after,
bgwriter_flush_after и backend_flush_after
предотрващают накопление слишком большой
очереди на запись в кэше ОС.
Проблемы buffer manager'а
● Медленная хэш-таблица. Нужно применять
lock-free hash-table или prefix tree.
● Алгоритм вытеснения не масштабируется.
Нужно менять на другой.
● Checkpoint'ы нужно специально «размазывать»,
чтобы выдержала дисковая подспистама.
User Unconference
https://wiki.postgresql.org/wiki/Pgcon2016userunconference
User Unconference
https://wiki.postgresql.org/wiki/Pgcon2016userunconference
Code of Conduct
https://wiki.postgresql.org/wiki/Coc_qa_pgcon2016
`
Figures and Pics in Documentation
GIN diagram — ASCII
Charity Auction
350$
220$
Слон в облаке
45$
Сломанный значок
350$
60$
Зубная
Щетка
Oracle
NEW FEATURES of FTS
Oleg Bartunov, Teodor Sigaev
Postgres Professional
Inverted Index in PostgreSQL
E
N
T
R
Y
T
R
E
E
Posting list
Posting tree
No positions in index !
Improving GIN
9.6 opens «Pandora box»
Create access methods as extension ! Let's call it RUM
http://www.sai.msu.su/~megera/postgres/talks/pgcon-2016-fts.pdf
● Храним в addinfo
• Координаты слов
● Ускоряем поиск с
ранжирование
● Ускоряем phrase
search
• Timestamp
● Ускоряем поиск с
упорядочиванием по
времени
• Ветки query tree
● Ускоряем "обратный"
поиск Full Query Search
Postgres Professional на PGCon
2016
Thanks !

More Related Content

PDF
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
PDF
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
PDF
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
PPTX
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
PDF
Современная операционная система: что надо знать разработчику / Александр Кри...
PDF
Алексей Фомкин, Практическое применение Web Workers
PDF
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
PPTX
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
Сага о кластере. Все что вы хотели знать про горизонтальное масштабирование в...
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Кластеры баз данных делаем сложные вещи просто / Андрей Тихонов (Avito)
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
Современная операционная система: что надо знать разработчику / Александр Кри...
Алексей Фомкин, Практическое применение Web Workers
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)

What's hot (20)

PDF
pgconf.ru 2015 avito postgresql
PDF
Реализация восстановления после аварий / Сергей Бурладян (Avito)
PPTX
обзор архитектуры и подсистем деплоя и мониторинга
PDF
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
PDF
RootConf 2015
PPTX
Mysql vs postgresql
PPTX
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
PPTX
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
PDF
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
PDF
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
PDF
Максим Дунин, Nginx, Inc.
PDF
Нагруженный поиск на Sphinx
PDF
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
PDF
Архитектура поиска в Avito / Андрей Смирнов (Avito)
PDF
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
PDF
Практика применения Pinba в Badoo / Денис Карасик (Badoo)
PDF
Облако в Badoo год спустя
PDF
Чему мы научились разрабатывая микросервисы?
PPTX
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
PPTX
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
pgconf.ru 2015 avito postgresql
Реализация восстановления после аварий / Сергей Бурладян (Avito)
обзор архитектуры и подсистем деплоя и мониторинга
PostgreSQL: практические примеры оптимизации SQL-запросов / Иван Фролков (Po...
RootConf 2015
Mysql vs postgresql
DNS в условиях хостинг-провайдера / Константин Новаковский (Selectel)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Быстрое прототипирование бэкенда игры с геолокацией на OpenResty, Redis и Doc...
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...
Максим Дунин, Nginx, Inc.
Нагруженный поиск на Sphinx
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
Архитектура поиска в Avito / Андрей Смирнов (Avito)
Что нового и полезного в PostgreSQL 9.5 / Илья Космодемьянский (PostgreSQL-Co...
Практика применения Pinba в Badoo / Денис Карасик (Badoo)
Облако в Badoo год спустя
Чему мы научились разрабатывая микросервисы?
Chronicle Map — key-value хранилище для трейдинга на Java / Левентов Роман (C...
Как обслужить 60 миллионов абонентов, Артем Руфанов (ПЕТЕР-СЕРВИС)
Ad

Similar to Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postgres Professional, ГАИШ МГУ) (20)

PDF
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
PDF
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
PDF
Hacking PostgreSQL. Обзор архитектуры.
PDF
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
PDF
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PDF
PostgreSQL on sas/ssd/nvme/nvdimm
PDF
История небольшого успеха с PostgreSQL – Владимир Бородин
PDF
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
PDF
Олег Бартунов и Иван Панченко
PPTX
Диагностика postgresql для системного администратора
ODP
PDF
Optimization of a big PostgreSQL database
PDF
История небольшого успеха с PostgreSQL
ODP
SECON'2016. Сигаев Федор, Pg в кластере. Скандалы, интриги, расследования
PDF
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
PDF
Ivan Kotlyar. PostgreSQL in web applications
PDF
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
PPTX
pgconf.ru 2017
PDF
Советы для начинающих разработчиков PostgreSQL
#RuPostges в Yandex, эпизод 3. Что же нового в PostgreSQL 9.6
PostgreSQL: вчера, сегодня, завтра, Олег Бартунов, Postgres Professional, Мо...
Hacking PostgreSQL. Обзор архитектуры.
Краткий обзор новинок PostgreSQL 9.4 – Николай Самохвалов
PostgreSQL Moscow Meetup - September 2014 - Nikolay Samokhvalov
PostgreSQL on sas/ssd/nvme/nvdimm
История небольшого успеха с PostgreSQL – Владимир Бородин
2014.09.24 история небольшого успеха с PostgreSQL (Yandex)
Олег Бартунов и Иван Панченко
Диагностика postgresql для системного администратора
Optimization of a big PostgreSQL database
История небольшого успеха с PostgreSQL
SECON'2016. Сигаев Федор, Pg в кластере. Скандалы, интриги, расследования
Павел Лузанов, Postgres Professional. «PostgreSQL для пользователей Oracle»
Ivan Kotlyar. PostgreSQL in web applications
Оптимизация high-contention write в PostgreSQL / Александр Коротков, Олег Бар...
pgconf.ru 2017
Советы для начинающих разработчиков PostgreSQL
Ad

More from Ontico (20)

PDF
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
PDF
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
PPTX
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
PDF
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
PDF
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PDF
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PDF
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
PDF
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
PPTX
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
PPTX
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
PDF
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
PPTX
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
PPTX
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
PDF
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
PPT
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
PPTX
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
PPTX
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
PPTX
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
PPTX
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
PDF
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...

Последние новости постгреса с PGCon / О.Бартунов, А.Коротков, Ф.Сигаев (Postgres Professional, ГАИШ МГУ)

  • 1. PGCon-2016: Последние новости Oleg Bartunov, Alexander Korotkov Postgres Professional, Moscow University RIT++, June 1, 2017
  • 2. PostgreSQL Developers Meeting, May 17, 2016, Ottawa, Canada ● Oleg Bartunov, PostgreSQL Professional ● Josh Berkus, Red Hat ● Joe Conway, Crunchy Data ● Jeff Davis, AWS ● Andrew Dunstan ● Peter Eisentraut, 2nd Quadrant ● Andres Freund, Citus Data ● Stephen Frost, Crunchy Data ● Etsuro Fujita, NTT ● Kevin Grittner, EnterpriseDB ● Robert Haas, EnterpriseDB ● Magnus Hagander, Redpill Linpro ● Heikki Linnakangas, Pivotal ● Amit Kapila, EnterpriseDB ● Alexander Korotkov, PostgreSQL Professional ● Tom Lane, Crunchy Data ● Noah Misch ● Dave Page, EnterpriseDB ● Michael Paquier, VMWare ● Simon Riggs, 2nd Quadrant ● Masahiko Sawada, NTT ● Teodor Sigaev, PostgreSQL Professional
  • 3. ● Oleg Bartunov, PostgreSQL Professional ● Josh Berkus, Red Hat ● Joe Conway, Crunchy Data ● Jeff Davis, AWS ● Andrew Dunstan ● Peter Eisentraut, 2nd Quadrant ● Andres Freund, Citus Data ● Stephen Frost, Crunchy Data ● Etsuro Fujita, NTT ● Kevin Grittner, EnterpriseDB ● Robert Haas, EnterpriseDB ● Magnus Hagander, Redpill Linpro ● Heikki Linnakangas, Pivotal ● Amit Kapila, EnterpriseDB ● Alexander Korotkov, PostgreSQL Professional ● Tom Lane, Crunchy Data ● Noah Misch ● Dave Page, EnterpriseDB ● Michael Paquier, VMWare ● Simon Riggs, 2nd Quadrant ● Masahiko Sawada, NTT ● Teodor Sigaev, PostgreSQL Professional
  • 4. Developers meeting ●Как номинировать на Major contributors Команда волонтеров займется этим (Josh Stephen, Joe, Dave) ●Emeritus list для долгонеактивных ●Core team медленно меняется ●Нет ясного механизма ●RMT — хорошая практика, так держать ●За качество отвечают коммитеры ! ●Next Release Schedule * CF1: September 1 to 30th * CF2: November 1 to 30th * CF3: January 1 to 31st. * CF4: March 1 to 31st. * Feature Freeze: March * 31st May 16th: Beta ●Нужен общий пул железа для тестирования ●Спор вокруг шардинга ●FDW sharding ? EDB отреклась - это все Брюс, это его проект. ●Distributed transactions в ядро ? ●Postgres-XL и Postgres Professional будут вести отдельные сессии на Developers Unconference ●Pglogical форкнут к 1 августу для включения в ядро ●CFM — Commitfest Management Team (2-3 человека) на каждый CF за три недели до старта (CORE team задача) https://wiki.postgresql.org/wiki/PgCon_2016_Developer_Meeting Version Numbering * 8 голосов за X.Y.Z * 13 голосов за X.Y X меняется каждый год Y — минорный релиз * 9.7 → 10.0
  • 5. PostgreSQL Roadmap ● На самом деле планов развития у постгреса нет https://www.postgresql.org/developer/roadmap/ "PostgreSQL is a non-commercial, all volunteer, free software project, and as such there is no formal list of feature requirements required for development. We really do follow the mantra of letting developers scratch their own itches." ● Однако, постгрес давно используется большим бизнесом и вокруг него сложились компании, которые занимаются поддержкой, разработкой как самого постгреса, так и приложений. Всем нужны планы ! ● В России сложились специфические условия для развития постгреса, нас даже заметил Оракл :) Пришло много бизнеса, много новых людей. ● Поэтому Postgres Professional поставил вопрос о планах
  • 7. Developers meeting (Roadmaps) Postgres Professional Roadmap 1 Multimaster cluster with sharding 2 JIT-compilation of queries 3 Pluggable storages 4 Effective partitioning 5 Adaptive query planning 5.1 Query plans management 5.2 Machine learning 5.3 Execution-time planning 6 Backup 6.1 Block-level incremental backup 6.2 Backup validation 6.3 Partial backup and partial restore 7 Connection pooling 8 Page-level data compression 9 Wait events monitoring 10 Better temporary tables 10.1 Temporary tables outside of system catalog 10.2 Temporary tables on standbys 11 Native querying for jsonb with indexing support EnterpriseDB database server roadmap 1 Parallelism Hash node Bitmap Heap Scan Index Scan Vacuum 2 Partitioning Declarative partitioning 3 Foreign Data Wrappers Aggregate pushdown to postgres_fdw Async execution to executor Pluggable API for heap in core 4 Replication Causal reads 5 Vertical Scalability Speedup CLOG access Cache MVCC snapshots-reduce contention ProcArrayLock 6 Performance Asynchronous, Vectorized execution Hash indexes 7 SQL Features https://wiki.postgresql.org/wiki/Postgres_Professional_roadmap https://wiki.postgresql.org/wiki/EnterpriseDB_database_server_roadmap
  • 11. Parallel Query Architecture Gather nodeGather.c Gather nodeGather.c Parallel-Aware Executor Nodes nodeSeqScan.c nodeForeignScan.c nodeCustom.c Parallel-Aware Executor Nodes nodeSeqScan.c nodeForeignScan.c nodeCustom.c Parallel Executor Support execParallel.c Parallel Executor Support execParallel.c Tuple Queue Reader and DestReceiver tqueue.c Tuple Queue Reader and DestReceiver tqueue.c Dynamic Background Workers bgworker.c Dynamic Background Workers bgworker.c Dynamic Shared Memory dsm.c, dsm_impl.c Dynamic Shared Memory dsm.c, dsm_impl.c Shared Memory Message Queue shm_mq.c Shared Memory Message Queue shm_mq.c Parallel Context parallel.c Parallel Context parallel.c Shared Memory Table of Contents shm_toc.c Shared Memory Table of Contents shm_toc.c Error/Notice Forwarding pqmq.c Error/Notice Forwarding pqmq.c State Synchronization dfmgr.c, guc.c, combocid.c, snapmgr.c, xact.c State Synchronization dfmgr.c, guc.c, combocid.c, snapmgr.c, xact.c Group Locking lock.c Group Locking lock.c Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
  • 12. • With parallel query enabled, 17 plans used parallelism. The other 5 query plans did not change. • Of the 17 queries that used parallelism, 15 got faster, 1 was unchanged, and 1 got slower. (Increasing work_mem fixed the regression.) • 3 queries ran at least 4x faster; 11 queries ran at least 2x faster. • Full results at rhaas.blogspot.com TPC-H Testing: Results Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
  • 13. • Ideal join strategy is a merge join, which we don't know how to do in parallel: Q2, Q13, Q15 • Need parallel hash table build: Q3, Q5, Q7, Q8, Q21 • Need parallel bitmap index scan: Q4, Q5, Q6, Q7, Q14, Q15, Q20 • Need parallel subquery handling: Q2, Q15, Q16, Q22 • Need gather merge: Q17 • Not sure: Q3, Q9, Q10, Q11, Q18 • Already looks ideal: Q1, Q12, Q19 Analysis of Query Plans – What's missing? Источник: http://www.pgcon.org/2016/schedule/events/913.en.html
  • 14. In-memory column storage by Fujitsu Источник: http://www.pgcon.org/2016/schedule/events/919.en.html
  • 15. Snapshot too old ● Чтобы не накапливался большой bloat, нужно обрывать транзакции, которые видят старые данные. ● Параметр old_snapshot_threshold в интервале 1 мин. – 60 дн. ● Обрываем транзакцию только тогда, когда она действительно пытается обратиться к изменившимся данным. ● Осторожно! Значительный overhead на многоядерных системах. ● В будущем, можно применить этот механизм для standby.
  • 16. Ускорение простых запросов Оптимизации: ● Push Down Scan key ● Save Expression Initialization for targetlist and qual ● Save Scan slot ● Save Executor State ● Save Expression Context Это даёт: ● 25% ускорение INSERT ● 20% ускорение SELECT ● 20% ускорение UPDATE Источник: http://www.pgcon.org/2016/schedule/events/936.en.html
  • 20. «Improved reads and writes» ● Group commit – 30 на большой power-8 машине: 30% ускорение для 64 клиентов и 133% ускорение для 256 клиентов на read-write pgbench тесте. ● Увеличение clog buffers с 32 до 128: 90% ускорение на unlogged таблицах для 256 клиентов на read-write pgbench тесте. ● Параметры checkpointer_flush_after, bgwriter_flush_after и backend_flush_after предотрващают накопление слишком большой очереди на запись в кэше ОС.
  • 21. Проблемы buffer manager'а ● Медленная хэш-таблица. Нужно применять lock-free hash-table или prefix tree. ● Алгоритм вытеснения не масштабируется. Нужно менять на другой. ● Checkpoint'ы нужно специально «размазывать», чтобы выдержала дисковая подспистама.
  • 25. Figures and Pics in Documentation GIN diagram — ASCII
  • 26. Charity Auction 350$ 220$ Слон в облаке 45$ Сломанный значок 350$ 60$ Зубная Щетка Oracle
  • 27. NEW FEATURES of FTS Oleg Bartunov, Teodor Sigaev Postgres Professional
  • 28. Inverted Index in PostgreSQL E N T R Y T R E E Posting list Posting tree No positions in index !
  • 30. 9.6 opens «Pandora box» Create access methods as extension ! Let's call it RUM http://www.sai.msu.su/~megera/postgres/talks/pgcon-2016-fts.pdf ● Храним в addinfo • Координаты слов ● Ускоряем поиск с ранжирование ● Ускоряем phrase search • Timestamp ● Ускоряем поиск с упорядочиванием по времени • Ветки query tree ● Ускоряем "обратный" поиск Full Query Search