SlideShare a Scribd company logo
Copyright©2017 NTT Corp. All Rights Reserved.
PostgreSQL 10: What to Look For?
Amit Langote, NTT OSS Center
1Copyright©2017 NTT Corp. All Rights Reserved.
PostgreSQL 10
• Why 10.0?
• Why not 9.7.0 or 10.0.0?
• Avoid discussing each year about whether to up the major version
number
• Instead of two-part major version number, adopt single number and
increase it every year
• So, 10.0 in 2017 and then 11.0 in 2018 and so on
• What features is this presentation about?
• Features that are likely to be in PostgreSQL 10.0
• Most are still under active development and testing [0]
• Details are still fuzzy
• Are there demos?
• No, sorry.
2Copyright©2017 NTT Corp. All Rights Reserved.
• Replication
• Partitioning
• FDW
• Parallel execution
• Write amplification mitigation
• Executor overhaul
• New statistics for query optimization
• And few others
• PITR configuration overhaul
• Replication and backup configuration and defaults
Features
3Copyright©2017 NTT Corp. All Rights Reserved.
Replication
• Logical replication
• With the existing physical replication, it’s not possible to replicate changes of
specific tables
• Logical replication makes it possible to do that
• Changes are applied to the replica in the same order as they happened on the
original server, that is, in a transactionally consistent manner
• Possible to replicate to a different database (that is, not just to another
PostgreSQL server of the same major version)
4Copyright©2017 NTT Corp. All Rights Reserved.
• Quorum-based synchronous replication
• Quorum: A quorum is the minimum number of votes that a distributed
transaction has to obtain in order to be allowed to perform an operation in a
distributed system. [Wikipedia]
• For example, synchronous commit with durability of multiple replicas
• Two ways to specify the quorum (K) for synchronous replicas:
[ FIRST ] K (replica1, replica2, …, replicaN)
ANY K (replica1, replica2, …, replicaN)
Replication
5Copyright©2017 NTT Corp. All Rights Reserved.
• Partitioning
• The art of dividing a large table into chunks of conveniently sized pieces called
partitions, where each piece holds a subset of the data
• In older PostgreSQL versions, this process involved number of steps and the
system (especially the optimizer) has limited intelligence about the partitioning
structure of a table, thus offering limited performance and scalability
• The new syntax (commands) in 10
• Supports specifying Range or List of values for every partition
• Commands for partition ROLL-IN (ATTACH PARTITION) and ROLL-OUT (DETACH
PARTITION)
• Multiple levels of partitioning allowed: divide partitions into their own pieces
using the same method (that is, using same commands)
Partitioning
6Copyright©2017 NTT Corp. All Rights Reserved.
Partitioning
• Optimizations for partitioned tables
• Faster partition-pruning (pruning: do not scan the partitions that do not match
the query)
• Partition-wise join
• Partition-wise aggregation
7Copyright©2017 NTT Corp. All Rights Reserved.
• Foreign Data Wrapper
• Foreign Data: data (relational or whatever) not stored on the database to which
application is connected
• A Foreign Data Wrapper (FDW) driver allows PostgreSQL to fetch foreign data
• Of course, foreign data includes other PostgreSQL databases as well
Foreign Data Wrappers (FDW)
8Copyright©2017 NTT Corp. All Rights Reserved.
• What is so special about FDWs?
• PostgreSQL (optimizer) allows a FDW driver to push certain computations to the
foreign database to reduce network data traffic or to allow some computations to
be performed faster
• Examples of such computations - selection, projection, join, aggregation, sort (if
the foreign database is a relational RDBMS, such as when using postgres_fdw)
• Earliest postgres_fdw could not push many of those things, but the latest version
(9.6) can almost all of them
• In 10, we can push even more
• Aggregation
• More types of join (there are many types of joins in SQL with various semantics)
• UPDATEs that required to join to another table at the foreign site
Foreign Data Wrappers (FDW)
9Copyright©2017 NTT Corp. All Rights Reserved.
• Atomic transactions
• Must ensure atomicity (A of ACID) in transactions that access multiple sites
• Use two-phase commit for atomicity
• Asynchronous fetch
• When fetching from multiple foreign sites, requests to different sites can be sent
asynchronously
Foreign Data Wrappers (FDW)
10Copyright©2017 NTT Corp. All Rights Reserved.
• PostgreSQL 9.6 introduced limited parallel query support
• Robert Haas’ TPC-H parallelism report at PGCon’16 [2] shows how
much can be done with 9.6
Parallel Execution
Parallel query support TPC-H query
No merge join Q2, Q13, Q15
No parallel hashing Q3, Q5, Q7, Q8, Q21
No parallel bitmap index scan Q4, Q5, Q6, Q7, Q14, Q15, Q20
No parallel subquery handling Q2, Q15, Q16, Q22
No parallel merge Q17
Don’t know what’s going on Q3, Q9, Q10, Q11, Q18
Looks good Q1, Q12, Q19
11Copyright©2017 NTT Corp. All Rights Reserved.
• PostgreSQL 10.0 promises to cover enough ground
• Parallel Index Scan – ✔
• Parallel Bitmap Index Scan – ✔
• Parallel Merge Join - ✔
• Parallel Hash Join – ✔
• Parallel subquery handing – ✔
• Bonus: Parallel Append (for parallel scan of partitions)
Parallel Execution
12Copyright©2017 NTT Corp. All Rights Reserved.
Write Amplification Mitigation
• Uber left PostgreSQL in 2013 [3], because the architecture of
Postgres caused higher write volume in their application
• PostgreSQL folks take such complaints seriously, so some developers
quickly came up with solutions to mitigate the problem(s)
• WARM: Write Amplification Reduction Method
• HOT: Heap-Only Tuples (avoids redundant index entries)
• A HOT update is one in which no indexed column changes; too strict a
requirement
• WARM relaxes that requirement
• WARM: Less HOT! (will avoid still more redundant index entries)
13Copyright©2017 NTT Corp. All Rights Reserved.
Write Amplification Mitigation
Non-HOT update HOT update
(Tuple versions 2 and 3 are Heap-Only Tuples)
14Copyright©2017 NTT Corp. All Rights Reserved.
• Indirect Indexes
• Indexes that point into the primary key index, not heap
• Updates are faster: no new entries in unchanged indexes
• More HOT utilization
• Trade-off: read slower because two indexes to reach one heap tuple
Write Amplification Mitigation
15Copyright©2017 NTT Corp. All Rights Reserved.
• WARM vs. Indirect Indexes
• WARM is automatic and indirect indexes are not
Write Amplification Mitigation
16Copyright©2017 NTT Corp. All Rights Reserved.
• PostgreSQL’s performance for OLAP workloads is not as great as it
could be, mainly because the executor is inefficient
• Using the traditional iterator model causes a lot of inefficiencies on
the modern micro-architectures
• Moreover, It fails to utilize advances like asynchronous, batched,
vectorized/SIMD processing
Executor overhaul
17Copyright©2017 NTT Corp. All Rights Reserved.
Executor overhaul
• More efficient processing of disk tuples
• Currently, lots of cache misses and unpredictable branches
• More efficient processing of query operators and expressions
• Recursion is expensive
• Indirect function calls are expensive
• Due to above, lots of CPU cache and pipeline inefficiencies
• JIT-compilation
• Generating native code for query plan on-the-fly
• Optimizer stuff is hard though, that is, answering the question: which queries
really need JIT?
• Using LLVM: Build PostgreSQL using the --with-llvm configure switch
18Copyright©2017 NTT Corp. All Rights Reserved.
New statistics for query optimization
• Better statistics for optimizing queries with correlated variables
• Optimizer uses a fixed set of heuristics when making plans based on the statistics
• Also, the ANALYZE command will collect only a fixed set of statistics
• Users are annoyed when the optimizer does not consider correlation between
variables/columns, sometimes resulting in poor plan choices
• CREATE STATISTICS: specify statistics to collect
• One or combination of the following types:
• Dependencies (Functional dependencies)
• MCVs (Most Common Values)
• Histogram
• Modify the optimizer to consider the new statistics to make better plans
19Copyright©2017 NTT Corp. All Rights Reserved.
Others
• PITR configuration overhaul
• Merge recovery.conf into postgresql.conf
• Replication and backup configuration and defaults
• Change defaults so taking backups and creating replicas is easier
20Copyright©2017 NTT Corp. All Rights Reserved.
References
[0] PostgreSQL commit-fest app: https://commitfest.postgresql.org/
[1] Future In-Core Replication for PostgreSQL (2012)
https://wiki.postgresql.org/images/7/75/BDR_Presentation_PGCon2012.pdf
[2] Parallel Query Has Arrived!
https://www.pgcon.org/2016/schedule/events/913.en.html
[3] Why Uber Engineering Switched From Postgres TO MySQL
https://eng.uber.com/mysql-migration/
http://rhaas.blogspot.jp/2016/08/ubers-move-away-from-postgresql.html
http://use-the-index-luke.com/blog/2016-07-29/on-ubers-choice-of-databases
https://postgr.es/m/flat/579795DF.10502%40commandprompt.com
Ad

More Related Content

What's hot (20)

NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
shintaro mizuno
 
OpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - MasakariOpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - Masakari
masahito12
 
CLOUD-NATIVE NETWORKS FOR THE ADVANCEMENT OF AI/IoT
CLOUD-NATIVE NETWORKS FOR THE ADVANCEMENT OF AI/IoTCLOUD-NATIVE NETWORKS FOR THE ADVANCEMENT OF AI/IoT
CLOUD-NATIVE NETWORKS FOR THE ADVANCEMENT OF AI/IoT
NTT Software Innovation Center
 
やっとでた! OpenStack Manila
やっとでた! OpenStack Manilaやっとでた! OpenStack Manila
やっとでた! OpenStack Manila
Takeshi Kuramochi
 
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
VirtualTech Japan Inc.
 
Korejanai Story
Korejanai StoryKorejanai Story
Korejanai Story
Kentaro Takeda
 
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
Cloud Native Day Tel Aviv
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects Summary
Tomofumi Hayashi
 
VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Business update 2016/1/26VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Inc.
 
OpenStack Benelux - Cloud, OpenStack and a Market In Motion - Sept 2015final
OpenStack Benelux -  Cloud, OpenStack and a Market In Motion - Sept 2015final OpenStack Benelux -  Cloud, OpenStack and a Market In Motion - Sept 2015final
OpenStack Benelux - Cloud, OpenStack and a Market In Motion - Sept 2015final
John Zannos
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
Rex Tsai
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jp
Miya Kohno
 
OpenStack Overview: Deployments and the Big Tent, Toronto 2016
OpenStack Overview: Deployments and the Big Tent, Toronto 2016OpenStack Overview: Deployments and the Big Tent, Toronto 2016
OpenStack Overview: Deployments and the Big Tent, Toronto 2016
Jonathan Le Lous
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
Rex Tsai
 
Software-defined migration how to migrate bunch of v-ms and volumes within a...
Software-defined migration  how to migrate bunch of v-ms and volumes within a...Software-defined migration  how to migrate bunch of v-ms and volumes within a...
Software-defined migration how to migrate bunch of v-ms and volumes within a...
OPNFV
 
OCDET Activity and Glusterfs
OCDET Activity and GlusterfsOCDET Activity and Glusterfs
OCDET Activity and Glusterfs
Masanori Itoh
 
OpenStack 4th Birthday
OpenStack 4th BirthdayOpenStack 4th Birthday
OpenStack 4th Birthday
OpenStack Foundation
 
Summit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
Summit 16: The Open Source NFV Eco-system and OPNFV's Role ThereinSummit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
Summit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
OPNFV
 
Openstack in action2 canonical - openstack cloud on ubuntu it is happening ...
Openstack in action2   canonical - openstack cloud on ubuntu it is happening ...Openstack in action2   canonical - openstack cloud on ubuntu it is happening ...
Openstack in action2 canonical - openstack cloud on ubuntu it is happening ...
eNovance
 
Automating hard things may 2015
Automating hard things   may 2015Automating hard things   may 2015
Automating hard things may 2015
Mark Baker
 
NTTs Journey with Openstack-final
NTTs Journey with Openstack-finalNTTs Journey with Openstack-final
NTTs Journey with Openstack-final
shintaro mizuno
 
OpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - MasakariOpenStackユーザ会資料 - Masakari
OpenStackユーザ会資料 - Masakari
masahito12
 
やっとでた! OpenStack Manila
やっとでた! OpenStack Manilaやっとでた! OpenStack Manila
やっとでた! OpenStack Manila
Takeshi Kuramochi
 
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
OpenStack運用管理最前線 - OpenStack最新情報セミナー 2014年12月
VirtualTech Japan Inc.
 
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
The Ubuntu OpenStack interoperability lab - Proven integration testing Nicola...
Cloud Native Day Tel Aviv
 
OPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects SummaryOPNFV Meetup Tokyo #1 / Projects Summary
OPNFV Meetup Tokyo #1 / Projects Summary
Tomofumi Hayashi
 
VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Business update 2016/1/26VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Business update 2016/1/26
VirtualTech Japan Inc.
 
OpenStack Benelux - Cloud, OpenStack and a Market In Motion - Sept 2015final
OpenStack Benelux -  Cloud, OpenStack and a Market In Motion - Sept 2015final OpenStack Benelux -  Cloud, OpenStack and a Market In Motion - Sept 2015final
OpenStack Benelux - Cloud, OpenStack and a Market In Motion - Sept 2015final
John Zannos
 
如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备如何在 Ubuntu 上更快、更便捷地部署物联网设备
如何在 Ubuntu 上更快、更便捷地部署物联网设备
Rex Tsai
 
Data models-and-automation-jp
Data models-and-automation-jpData models-and-automation-jp
Data models-and-automation-jp
Miya Kohno
 
OpenStack Overview: Deployments and the Big Tent, Toronto 2016
OpenStack Overview: Deployments and the Big Tent, Toronto 2016OpenStack Overview: Deployments and the Big Tent, Toronto 2016
OpenStack Overview: Deployments and the Big Tent, Toronto 2016
Jonathan Le Lous
 
Ubuntu Core 技术详解
Ubuntu Core 技术详解Ubuntu Core 技术详解
Ubuntu Core 技术详解
Rex Tsai
 
Software-defined migration how to migrate bunch of v-ms and volumes within a...
Software-defined migration  how to migrate bunch of v-ms and volumes within a...Software-defined migration  how to migrate bunch of v-ms and volumes within a...
Software-defined migration how to migrate bunch of v-ms and volumes within a...
OPNFV
 
OCDET Activity and Glusterfs
OCDET Activity and GlusterfsOCDET Activity and Glusterfs
OCDET Activity and Glusterfs
Masanori Itoh
 
Summit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
Summit 16: The Open Source NFV Eco-system and OPNFV's Role ThereinSummit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
Summit 16: The Open Source NFV Eco-system and OPNFV's Role Therein
OPNFV
 
Openstack in action2 canonical - openstack cloud on ubuntu it is happening ...
Openstack in action2   canonical - openstack cloud on ubuntu it is happening ...Openstack in action2   canonical - openstack cloud on ubuntu it is happening ...
Openstack in action2 canonical - openstack cloud on ubuntu it is happening ...
eNovance
 
Automating hard things may 2015
Automating hard things   may 2015Automating hard things   may 2015
Automating hard things may 2015
Mark Baker
 

Viewers also liked (20)

Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
Akihiro Suda
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
Kosuke Kida
 
Database Security for PCI DSS
Database Security for PCI DSSDatabase Security for PCI DSS
Database Security for PCI DSS
Ohyama Masanori
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310
Haruka Takatsuka
 
Summit前にやることTODO
Summit前にやることTODOSummit前にやることTODO
Summit前にやることTODO
Hirofumi Ichihara
 
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgresOss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
 
Oratopostgres-hiroshima
Oratopostgres-hiroshimaOratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
 
IPDPS & HPDC 報告
IPDPS & HPDC 報告IPDPS & HPDC 報告
IPDPS & HPDC 報告
Junya Arai
 
AWSでのジョブ運用の最適解「Hinemos」のご紹介!
AWSでのジョブ運用の最適解「Hinemos」のご紹介!AWSでのジョブ運用の最適解「Hinemos」のご紹介!
AWSでのジョブ運用の最適解「Hinemos」のご紹介!
hinemos_atomitech
 
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
 
PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?PostgreSQL DBA Neler Yapar?
PostgreSQL DBA Neler Yapar?
Gulcin Yildirim Jelinek
 
Founding a LLC in Turkey
Founding a LLC in TurkeyFounding a LLC in Turkey
Founding a LLC in Turkey
Gulcin Yildirim Jelinek
 
TTÜ Geeky Weekly
TTÜ Geeky WeeklyTTÜ Geeky Weekly
TTÜ Geeky Weekly
Gulcin Yildirim Jelinek
 
PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!PostgreSQL Hem Güçlü Hem Güzel!
PostgreSQL Hem Güçlü Hem Güzel!
Gulcin Yildirim Jelinek
 
PostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmekPostgreSQL'i öğrenmek ve yönetmek
PostgreSQL'i öğrenmek ve yönetmek
Gulcin Yildirim Jelinek
 
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
Hinemos
 
What's New In PostgreSQL 9.4
What's New In PostgreSQL 9.4What's New In PostgreSQL 9.4
What's New In PostgreSQL 9.4
Pavan Deolasee
 
PostgreSQL UPDATEs 2016年5月 - OSC群馬
PostgreSQL UPDATEs 2016年5月 - OSC群馬PostgreSQL UPDATEs 2016年5月 - OSC群馬
PostgreSQL UPDATEs 2016年5月 - OSC群馬
Haruka Takatsuka
 
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Gulcin Yildirim Jelinek
 
PGconf India 2017 - Closing Note
PGconf India 2017 - Closing NotePGconf India 2017 - Closing Note
PGconf India 2017 - Closing Note
Pavan Deolasee
 
Dockerコミュニティ近況
Dockerコミュニティ近況Dockerコミュニティ近況
Dockerコミュニティ近況
Akihiro Suda
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
Kosuke Kida
 
Database Security for PCI DSS
Database Security for PCI DSSDatabase Security for PCI DSS
Database Security for PCI DSS
Ohyama Masanori
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310
Haruka Takatsuka
 
Summit前にやることTODO
Summit前にやることTODOSummit前にやることTODO
Summit前にやることTODO
Hirofumi Ichihara
 
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgresOss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
 
Oratopostgres-hiroshima
Oratopostgres-hiroshimaOratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
 
IPDPS & HPDC 報告
IPDPS & HPDC 報告IPDPS & HPDC 報告
IPDPS & HPDC 報告
Junya Arai
 
AWSでのジョブ運用の最適解「Hinemos」のご紹介!
AWSでのジョブ運用の最適解「Hinemos」のご紹介!AWSでのジョブ運用の最適解「Hinemos」のご紹介!
AWSでのジョブ運用の最適解「Hinemos」のご紹介!
hinemos_atomitech
 
集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話集合演算を真っ向から否定するアレの話
集合演算を真っ向から否定するアレの話
Kouhei Aoyagi
 
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
【HinemosWorld2015】A2-1_実は最も契約が古いで賞!TISのHinemosあんな話、こんな話
Hinemos
 
What's New In PostgreSQL 9.4
What's New In PostgreSQL 9.4What's New In PostgreSQL 9.4
What's New In PostgreSQL 9.4
Pavan Deolasee
 
PostgreSQL UPDATEs 2016年5月 - OSC群馬
PostgreSQL UPDATEs 2016年5月 - OSC群馬PostgreSQL UPDATEs 2016年5月 - OSC群馬
PostgreSQL UPDATEs 2016年5月 - OSC群馬
Haruka Takatsuka
 
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Managing PostgreSQL with Ansible - FOSDEM PGDay 2016
Gulcin Yildirim Jelinek
 
PGconf India 2017 - Closing Note
PGconf India 2017 - Closing NotePGconf India 2017 - Closing Note
PGconf India 2017 - Closing Note
Pavan Deolasee
 
Ad

Similar to PostgreSQL 10: What to Look For (20)

Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus
Ashnikbiz
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
Ashnikbiz
 
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnikbiz
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
Masahiko Sawada
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
PGConf APAC
 
PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform
Chris Travers
 
VM-aware Adaptive Storage Cache Prefetching
VM-aware Adaptive Storage Cache PrefetchingVM-aware Adaptive Storage Cache Prefetching
VM-aware Adaptive Storage Cache Prefetching
Shinagawa Laboratory, The University of Tokyo
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
LambdaZen LLC
 
The state of SQL-on-Hadoop in the Cloud
The state of SQL-on-Hadoop in the CloudThe state of SQL-on-Hadoop in the Cloud
The state of SQL-on-Hadoop in the Cloud
DataWorks Summit/Hadoop Summit
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
Hiram Fleitas León
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC Systems
HPCC Systems
 
Pre and post tips to installing sql server correctly
Pre and post tips to installing sql server correctlyPre and post tips to installing sql server correctly
Pre and post tips to installing sql server correctly
Antonios Chatzipavlis
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
BIOVIA
 
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's RealityDoing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
EDB
 
How to Design for Database High Availability
How to Design for Database High AvailabilityHow to Design for Database High Availability
How to Design for Database High Availability
EDB
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
EDB
 
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
Teresa Giacomini
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
John D Almon
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
javier ramirez
 
Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus Powering GIS Application with PostgreSQL and Postgres Plus
Powering GIS Application with PostgreSQL and Postgres Plus
Ashnikbiz
 
Technical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPASTechnical Introduction to PostgreSQL and PPAS
Technical Introduction to PostgreSQL and PPAS
Ashnikbiz
 
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnik EnterpriseDB PostgreSQL - A real alternative to Oracle
Ashnikbiz
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
Masahiko Sawada
 
Migration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQLMigration From Oracle to PostgreSQL
Migration From Oracle to PostgreSQL
PGConf APAC
 
PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform PostgreSQL as a Big Data Platform
PostgreSQL as a Big Data Platform
Chris Travers
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
Bitsy graph database
Bitsy graph databaseBitsy graph database
Bitsy graph database
LambdaZen LLC
 
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
[DBA]_HiramFleitas_SQL_PASS_Summit_2017_Summary
Hiram Fleitas León
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC Systems
HPCC Systems
 
Pre and post tips to installing sql server correctly
Pre and post tips to installing sql server correctlyPre and post tips to installing sql server correctly
Pre and post tips to installing sql server correctly
Antonios Chatzipavlis
 
(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance(ATS6-PLAT06) Maximizing AEP Performance
(ATS6-PLAT06) Maximizing AEP Performance
BIOVIA
 
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's RealityDoing More with Postgres - Yesterday's Vision Becomes Today's Reality
Doing More with Postgres - Yesterday's Vision Becomes Today's Reality
EDB
 
How to Design for Database High Availability
How to Design for Database High AvailabilityHow to Design for Database High Availability
How to Design for Database High Availability
EDB
 
PostgreSQL as a Strategic Tool
PostgreSQL as a Strategic ToolPostgreSQL as a Strategic Tool
PostgreSQL as a Strategic Tool
EDB
 
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
PostgreSQL Extension APIs are Changing the Face of Relational Databases | PGC...
Teresa Giacomini
 
Hpc lunch and learn
Hpc lunch and learnHpc lunch and learn
Hpc lunch and learn
John D Almon
 
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
Cómo se diseña una base de datos que pueda ingerir más de cuatro millones de ...
javier ramirez
 
Ad

Recently uploaded (20)

Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New VersionPixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
Pixologic ZBrush Crack Plus Activation Key [Latest 2025] New Version
saimabibi60507
 
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
How to Batch Export Lotus Notes NSF Emails to Outlook PST Easily?
steaveroggers
 
Expand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchangeExpand your AI adoption with AgentExchange
Expand your AI adoption with AgentExchange
Fexle Services Pvt. Ltd.
 
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage DashboardsAdobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
Adobe Marketo Engage Champion Deep Dive - SFDC CRM Synch V2 & Usage Dashboards
BradBedford3
 
Kubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptxKubernetes_101_Zero_to_Platform_Engineer.pptx
Kubernetes_101_Zero_to_Platform_Engineer.pptx
CloudScouts
 
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025Why Orangescrum Is a Game Changer for Construction Companies in 2025
Why Orangescrum Is a Game Changer for Construction Companies in 2025
Orangescrum
 
Solidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license codeSolidworks Crack 2025 latest new + license code
Solidworks Crack 2025 latest new + license code
aneelaramzan63
 
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software DevelopmentSecure Test Infrastructure: The Backbone of Trustworthy Software Development
Secure Test Infrastructure: The Backbone of Trustworthy Software Development
Shubham Joshi
 
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Salesforce Data Cloud- Hyperscale data platform, built for Salesforce.
Dele Amefo
 
Societal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainabilitySocietal challenges of AI: biases, multilinguism and sustainability
Societal challenges of AI: biases, multilinguism and sustainability
Jordi Cabot
 
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& ConsiderationsDesigning AI-Powered APIs on Azure: Best Practices& Considerations
Designing AI-Powered APIs on Azure: Best Practices& Considerations
Dinusha Kumarasiri
 
Download YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full ActivatedDownload YouTube By Click 2025 Free Full Activated
Download YouTube By Click 2025 Free Full Activated
saniamalik72555
 
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...Explaining GitHub Actions Failures with Large Language Models Challenges, In...
Explaining GitHub Actions Failures with Large Language Models Challenges, In...
ssuserb14185
 
Automation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath CertificateAutomation Techniques in RPA - UiPath Certificate
Automation Techniques in RPA - UiPath Certificate
VICTOR MAESTRE RAMIREZ
 
Maxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINKMaxon CINEMA 4D 2025 Crack FREE Download LINK
Maxon CINEMA 4D 2025 Crack FREE Download LINK
younisnoman75
 
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Mastering Fluent Bit: Ultimate Guide to Integrating Telemetry Pipelines with ...
Eric D. Schabell
 
How to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud PerformanceHow to Optimize Your AWS Environment for Improved Cloud Performance
How to Optimize Your AWS Environment for Improved Cloud Performance
ThousandEyes
 
Revolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptxRevolutionizing Residential Wi-Fi PPT.pptx
Revolutionizing Residential Wi-Fi PPT.pptx
nidhisingh691197
 
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Requirements in Engineering AI- Enabled Systems: Open Problems and Safe AI Sy...
Lionel Briand
 
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Proactive Vulnerability Detection in Source Code Using Graph Neural Networks:...
Ranjan Baisak
 

PostgreSQL 10: What to Look For

  • 1. Copyright©2017 NTT Corp. All Rights Reserved. PostgreSQL 10: What to Look For? Amit Langote, NTT OSS Center
  • 2. 1Copyright©2017 NTT Corp. All Rights Reserved. PostgreSQL 10 • Why 10.0? • Why not 9.7.0 or 10.0.0? • Avoid discussing each year about whether to up the major version number • Instead of two-part major version number, adopt single number and increase it every year • So, 10.0 in 2017 and then 11.0 in 2018 and so on • What features is this presentation about? • Features that are likely to be in PostgreSQL 10.0 • Most are still under active development and testing [0] • Details are still fuzzy • Are there demos? • No, sorry.
  • 3. 2Copyright©2017 NTT Corp. All Rights Reserved. • Replication • Partitioning • FDW • Parallel execution • Write amplification mitigation • Executor overhaul • New statistics for query optimization • And few others • PITR configuration overhaul • Replication and backup configuration and defaults Features
  • 4. 3Copyright©2017 NTT Corp. All Rights Reserved. Replication • Logical replication • With the existing physical replication, it’s not possible to replicate changes of specific tables • Logical replication makes it possible to do that • Changes are applied to the replica in the same order as they happened on the original server, that is, in a transactionally consistent manner • Possible to replicate to a different database (that is, not just to another PostgreSQL server of the same major version)
  • 5. 4Copyright©2017 NTT Corp. All Rights Reserved. • Quorum-based synchronous replication • Quorum: A quorum is the minimum number of votes that a distributed transaction has to obtain in order to be allowed to perform an operation in a distributed system. [Wikipedia] • For example, synchronous commit with durability of multiple replicas • Two ways to specify the quorum (K) for synchronous replicas: [ FIRST ] K (replica1, replica2, …, replicaN) ANY K (replica1, replica2, …, replicaN) Replication
  • 6. 5Copyright©2017 NTT Corp. All Rights Reserved. • Partitioning • The art of dividing a large table into chunks of conveniently sized pieces called partitions, where each piece holds a subset of the data • In older PostgreSQL versions, this process involved number of steps and the system (especially the optimizer) has limited intelligence about the partitioning structure of a table, thus offering limited performance and scalability • The new syntax (commands) in 10 • Supports specifying Range or List of values for every partition • Commands for partition ROLL-IN (ATTACH PARTITION) and ROLL-OUT (DETACH PARTITION) • Multiple levels of partitioning allowed: divide partitions into their own pieces using the same method (that is, using same commands) Partitioning
  • 7. 6Copyright©2017 NTT Corp. All Rights Reserved. Partitioning • Optimizations for partitioned tables • Faster partition-pruning (pruning: do not scan the partitions that do not match the query) • Partition-wise join • Partition-wise aggregation
  • 8. 7Copyright©2017 NTT Corp. All Rights Reserved. • Foreign Data Wrapper • Foreign Data: data (relational or whatever) not stored on the database to which application is connected • A Foreign Data Wrapper (FDW) driver allows PostgreSQL to fetch foreign data • Of course, foreign data includes other PostgreSQL databases as well Foreign Data Wrappers (FDW)
  • 9. 8Copyright©2017 NTT Corp. All Rights Reserved. • What is so special about FDWs? • PostgreSQL (optimizer) allows a FDW driver to push certain computations to the foreign database to reduce network data traffic or to allow some computations to be performed faster • Examples of such computations - selection, projection, join, aggregation, sort (if the foreign database is a relational RDBMS, such as when using postgres_fdw) • Earliest postgres_fdw could not push many of those things, but the latest version (9.6) can almost all of them • In 10, we can push even more • Aggregation • More types of join (there are many types of joins in SQL with various semantics) • UPDATEs that required to join to another table at the foreign site Foreign Data Wrappers (FDW)
  • 10. 9Copyright©2017 NTT Corp. All Rights Reserved. • Atomic transactions • Must ensure atomicity (A of ACID) in transactions that access multiple sites • Use two-phase commit for atomicity • Asynchronous fetch • When fetching from multiple foreign sites, requests to different sites can be sent asynchronously Foreign Data Wrappers (FDW)
  • 11. 10Copyright©2017 NTT Corp. All Rights Reserved. • PostgreSQL 9.6 introduced limited parallel query support • Robert Haas’ TPC-H parallelism report at PGCon’16 [2] shows how much can be done with 9.6 Parallel Execution Parallel query support TPC-H query No merge join Q2, Q13, Q15 No parallel hashing Q3, Q5, Q7, Q8, Q21 No parallel bitmap index scan Q4, Q5, Q6, Q7, Q14, Q15, Q20 No parallel subquery handling Q2, Q15, Q16, Q22 No parallel merge Q17 Don’t know what’s going on Q3, Q9, Q10, Q11, Q18 Looks good Q1, Q12, Q19
  • 12. 11Copyright©2017 NTT Corp. All Rights Reserved. • PostgreSQL 10.0 promises to cover enough ground • Parallel Index Scan – ✔ • Parallel Bitmap Index Scan – ✔ • Parallel Merge Join - ✔ • Parallel Hash Join – ✔ • Parallel subquery handing – ✔ • Bonus: Parallel Append (for parallel scan of partitions) Parallel Execution
  • 13. 12Copyright©2017 NTT Corp. All Rights Reserved. Write Amplification Mitigation • Uber left PostgreSQL in 2013 [3], because the architecture of Postgres caused higher write volume in their application • PostgreSQL folks take such complaints seriously, so some developers quickly came up with solutions to mitigate the problem(s) • WARM: Write Amplification Reduction Method • HOT: Heap-Only Tuples (avoids redundant index entries) • A HOT update is one in which no indexed column changes; too strict a requirement • WARM relaxes that requirement • WARM: Less HOT! (will avoid still more redundant index entries)
  • 14. 13Copyright©2017 NTT Corp. All Rights Reserved. Write Amplification Mitigation Non-HOT update HOT update (Tuple versions 2 and 3 are Heap-Only Tuples)
  • 15. 14Copyright©2017 NTT Corp. All Rights Reserved. • Indirect Indexes • Indexes that point into the primary key index, not heap • Updates are faster: no new entries in unchanged indexes • More HOT utilization • Trade-off: read slower because two indexes to reach one heap tuple Write Amplification Mitigation
  • 16. 15Copyright©2017 NTT Corp. All Rights Reserved. • WARM vs. Indirect Indexes • WARM is automatic and indirect indexes are not Write Amplification Mitigation
  • 17. 16Copyright©2017 NTT Corp. All Rights Reserved. • PostgreSQL’s performance for OLAP workloads is not as great as it could be, mainly because the executor is inefficient • Using the traditional iterator model causes a lot of inefficiencies on the modern micro-architectures • Moreover, It fails to utilize advances like asynchronous, batched, vectorized/SIMD processing Executor overhaul
  • 18. 17Copyright©2017 NTT Corp. All Rights Reserved. Executor overhaul • More efficient processing of disk tuples • Currently, lots of cache misses and unpredictable branches • More efficient processing of query operators and expressions • Recursion is expensive • Indirect function calls are expensive • Due to above, lots of CPU cache and pipeline inefficiencies • JIT-compilation • Generating native code for query plan on-the-fly • Optimizer stuff is hard though, that is, answering the question: which queries really need JIT? • Using LLVM: Build PostgreSQL using the --with-llvm configure switch
  • 19. 18Copyright©2017 NTT Corp. All Rights Reserved. New statistics for query optimization • Better statistics for optimizing queries with correlated variables • Optimizer uses a fixed set of heuristics when making plans based on the statistics • Also, the ANALYZE command will collect only a fixed set of statistics • Users are annoyed when the optimizer does not consider correlation between variables/columns, sometimes resulting in poor plan choices • CREATE STATISTICS: specify statistics to collect • One or combination of the following types: • Dependencies (Functional dependencies) • MCVs (Most Common Values) • Histogram • Modify the optimizer to consider the new statistics to make better plans
  • 20. 19Copyright©2017 NTT Corp. All Rights Reserved. Others • PITR configuration overhaul • Merge recovery.conf into postgresql.conf • Replication and backup configuration and defaults • Change defaults so taking backups and creating replicas is easier
  • 21. 20Copyright©2017 NTT Corp. All Rights Reserved. References [0] PostgreSQL commit-fest app: https://commitfest.postgresql.org/ [1] Future In-Core Replication for PostgreSQL (2012) https://wiki.postgresql.org/images/7/75/BDR_Presentation_PGCon2012.pdf [2] Parallel Query Has Arrived! https://www.pgcon.org/2016/schedule/events/913.en.html [3] Why Uber Engineering Switched From Postgres TO MySQL https://eng.uber.com/mysql-migration/ http://rhaas.blogspot.jp/2016/08/ubers-move-away-from-postgresql.html http://use-the-index-luke.com/blog/2016-07-29/on-ubers-choice-of-databases https://postgr.es/m/flat/579795DF.10502%40commandprompt.com