SlideShare a Scribd company logo
Copyright©2016 NTT corp. All Rights Reserved.
What’s New in PostgreSQL 9.6,
by PostgreSQL contributor
NTT OpenSource Software Center
Masahiko Sawada
@PGConf.ASIA 2016 (2 Dec)
2Copyright©2016 NTT corp. All Rights Reserved.
Who am I?
Masahiko Sawada
Twitter : @sawada_masahiko
PostgreSQL Contributor
Freeze Map
Multiple Sync Replication
PostgreSQL Support
Attended a developer
meeting at PGCon 2016
Photo by Oleg Bartunov
3Copyright©2016 NTT corp. All Rights Reserved.
1. What’s new in PostgreSQL 9.6
2. Towards to PostgreSQL 10
3. Conclusion
Agenda
4Copyright©2016 NTT corp. All Rights Reserved.
• Open source Relational Database Management System.
• Great features.
• Window function.
• Transactional DDL.
• etc.
• 20th anniversary!
• Latest version is 9.6.1 (27th Oct).
• Version 9.1 is EOL.
PostgreSQL
5Copyright©2016 NTT corp. All Rights Reserved.
New Features
1. Parallel queries.
2. Avoid VACUUM on all-frozen page (Freeze Map).
3. Monitoring progress of VACUUM.
4. Phrase full text search.
5. Multiple synchronous replication.
6. synchronous_commit = ‘remote_apply’
7. postgrse_fdw support remote jois, sorts, UPDATEs and
DELETEs.
8. Trigger Kernel write-back.
9. Better wait information in pg_stat_activity.
10. pg_blocking_pids().
6Copyright©2016 NTT corp. All Rights Reserved.
What’s new in
PostgreSQL 9.6
bridging knowledge to health by paul bica
7Copyright©2016 NTT corp. All Rights Reserved.
Parallel queries
(Robet Haas, Amit Kapila, David Rowley, many others)
8Copyright©2016 NTT corp. All Rights Reserved.
Perpendicularly aggregation
Aggregate
Result
Seq Scan
Table
=# SELECT count(*) FROM test_table;
9Copyright©2016 NTT corp. All Rights Reserved.
Parallel aggregation
Partial Agg Partial Agg Partial Agg
Gather
Result
Result Result
Parallel Seq Scan Parallel Seq Scan Parallel Seq Scan
Result Result
Table
Result
rows/3
rows/3
rows/3
Final Aggregate
=# SELECT count(*) FROM test_table;
10Copyright©2016 NTT corp. All Rights Reserved.
Plans
=# EXPLAIN (ANALYZE on, VERBOSE on, COSTS off, TIMING off) SELECT count(*) FROM lineitem;
QUERY PLAN
-------------------------------------------------------------------------------------------
Aggregate (actual rows=1 loops=1)
Output: count(*)
-> Seq Scan on public.lineitem (actual rows=29999795 loops=1)
Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, ...
=# EXPLAIN (ANALYZE on, VERBOSE on, COSTS off, TIMING off) SELECT count(*) FROM lineitem;
QUERY PLAN
-----------------------------------------------------------------------------------------
Finalize Aggregate (actual rows=1 loops=1)
Output: count(*)
-> Gather (actual rows=3 loops=1)
Output: (PARTIAL count(*))
Workers Planned: 2
Workers Launched: 2
-> Partial Aggregate (actual rows=1 loops=3)
Output: PARTIAL count(*)
Worker 0: actual rows=1 loops=1
Worker 1: actual rows=1 loops=1
-> Parallel Seq Scan on public.lineitem (actual rows = ...
Worker 0: actual rows=9838356 loops=1
Worker 1: actual rows=10019336 loops=1
■ Parallel
■ Non Parallel
11Copyright©2016 NTT corp. All Rights Reserved.
• Support
• Sequential Scan
• Aggregate (e.g. count, sum, avg)
• Nested Loop Join
• Hash Join
• Not Support
• UPDATE, DELETE
• Index Scan
• Sorting
• Merge Join
• DDL
• etc
As of 9.6 parallel queries
12Copyright©2016 NTT corp. All Rights Reserved.
• HPE ProLiant DL580 GEN9
• Intel Xeon E7-8890 v4 2.20GHz (4P/192 core (96-HT))
• 2TB RAM
• Workload Accelerator(PCIe SSD)
• Read : 715,000 IOPS, 3.0GB/s
• Write : 95,000 IOPS, 2.5GB/s
Evaluation on a great machine
Supported by
Thank you!
13Copyright©2016 NTT corp. All Rights Reserved.
0
50
100
150
200
250
300
350
400
0 20 40 60 80 100 120 140 160 180 200
ExecutionTime(s)
Parallel Degree
Parallel Query on 192 cores machine
• All table data(400GB) is on the shared buffer; no disk access.
• Simple aggregation, count(*).
• Parallel query makes aggregation 19x faster!!
385 sec
21 sec
14Copyright©2016 NTT corp. All Rights Reserved.
3,006
3,966
8,272
40
6,000
28 177
1,029
2,111
0
1,000
2,000
3,000
4,000
5,000
6,000
7,000
8,000
9,000
SF1 SF10 SF50 SF100
TotalExecutionTime(sec)
Hive PostgreSQL 9.1.3 PostgreSQL 9.6.0
• Comparing DBT-3 benchmark result with Hive (SF1 - SF100)
• Single PostgreSQL node, 192 parallel degree.
• 7 of 22 queries timed out(30min) at SF500. shared_buffers = 800GB, work_mem = 3GB.
• 12 node Hadoop cluster (master 2, slave 10).
• Hive flushes data to disk whenever finished each job.
• Now in 2016 we should use Hive on Tez.
• On the other hand, PostgreSQL has the all table data in shared buffer.
For your reference
- CDH4.1.2
- 24 cores (12-HT)
- 32G RAM
- 2TB SATA
- PostgreSQL 9.1.3
- 8 cores (4-HT)
- 16G RAM
- SATA
15Copyright©2016 NTT corp. All Rights Reserved.
Avoid VACUUM on
all-frozen page
(Freeze Map)
(Masahiko Sawada, Robert Haas, Andres Freund)
16Copyright©2016 NTT corp. All Rights Reserved.
• Necessary to prevent transaction ID(XID) wraparound
failures.
• anti-wraparound VACUUM is invoked every 200 million
transaction by default
• Previously it always scanned all table pages.
• Could be performance degradation.
Freezing of database
17Copyright©2016 NTT corp. All Rights Reserved.
• Keep track of which pages are completely frozen.
• Avoid VACUUM on all-frozen pages.
• Very effective for mostly-read tables.
Avoid VACUUM on all-frozen page (Freeze Map)
-- 9.6
=# VACUUM FREEZE large_table;
VACUUM
Time: 703509.523 ms
=# VACUUM FREEZE large_table;
VACUUM
Time: 222.719 ms
-- 9.5
=# VACUUM FREEZE large_table;
VACUUM
Time: 685363.793 ms
=# VACUUM FREEZE large_table;
VACUUM
Time: 711380.587 ms
18Copyright©2016 NTT corp. All Rights Reserved.
Monitoring progress of
VACUUM
(Amit Langote, Robert Haas, Vinayak Pokale, Rahila Syed)
19Copyright©2016 NTT corp. All Rights Reserved.
• Introduce new system view pg_stat_progress_vacuum.
• Report progress of running VACUUM.
• Not supported for VACUUM FULL and CLUSTER.
Progress information of vacuum
=# ¥d pg_stat_progress_vacuum
Column | Type | Modifiers
--------------------+---------+----------
pid | integer |
datid | oid |
datname | name |
relid | oid |
phase | text |
heap_blks_total | bigint |
heap_blks_scanned | bigint |
heap_blks_vacuumed | bigint |
index_vacuum_count | bigint |
max_dead_tuples | bigint |
num_dead_tuples | bigint |
20Copyright©2016 NTT corp. All Rights Reserved.
=# SELECT pid, datname, relname,
now() - query_start as duration,
((heap_blks_scanned / heap_blks_total::numeric(10,2)) * 100) as
percentage,
p.phase,
index_vacuum_count
FROM pg_stat_progress_vacuum as p, pg_class as c
WHERE p.relid = c.oid;
-[ RECORD 1 ]-------+-----------------
pid | 100026
datname | postgres
relname | pgbench_accounts
duration | 01:23:45.000000
percentage | 19.72
phase | scanning heap
index_vacuum_count | 10
-[ RECORD 2 ]-------+-----------------
pid | 100027
datname | postgres
relname | very_large_table
duration | 02:35:12.123456
percentage | 95.12
phase | scanning heap
index_vacuum_count | 300
Monitoring progress of VACUUM
- Table name
- Duration
- Progress (percentage)
- Phase
- Index vacuum count
21Copyright©2016 NTT corp. All Rights Reserved.
Phrase full text search
(Teodor Sigaev, Oleg Bartunov, Dmitry Ivanov)
22Copyright©2016 NTT corp. All Rights Reserved.
• Search for words positioned relative to other words.
• Added new tsquery operators ‘<->’ and ‘<N>’
• ‘index <-> scan’ means that ‘scan’ follows by ‘index’.
• Match to ‘index scan’.
• ‘index <2> scan’ means that ‘index’ and ‘scan’ separated
by at most 1 other word.
• Match to ‘index only scan’.
Search for Phrases
23Copyright©2016 NTT corp. All Rights Reserved.
=# SELECT title, body FROM pgdoc
WHERE content @@ to_tsquery('parallel <-> execute') LIMIT 1;
-[ RECORD 1 ]--------------------------
title | Foreign Data Wrapper Callback Routines
body | A ForeignScan node can, optionally, support
| parallel execution. …
=# SELECT title, body FROM pgdoc
WHERE content @@ to_tsquery('parallel <2> execute') LIMIT 1;
-[ RECORD 1 ]--------------------------
title | When Can Parallel Query Be Used?
body | Even when parallel query is generated for …
| impossible to execute that plan in parallel at execution …
=# SELECT title, body FROM pgdoc
WHERE content @@ to_tsquery('parallel <3> execute') LIMIT 1;
-[ RECORD 1 ]--------------------------
title | How Parallel Query Works
body | Every background worker process which is …
| parallel query will execute the portion of …
Search for ‘parallel <->/<N> execute’
24Copyright©2016 NTT corp. All Rights Reserved.
Multiple synchronous
replication
(Masahiko Sawada, Beena Emerson, Michael Paquier,
Fujii Masao, Kyotaro Horiguchi)
25Copyright©2016 NTT corp. All Rights Reserved.
History of Replication feature
9.0
(2010)
9.4
(2014)
9.5
(2015)
9.6
(2016)
9.2
(2012)
9.3
(2013)
9.1
(2011)
Synchronous
Replication
Cascade
Replication
Fast Failover
- Replication Slot
- Logical Decoding
- WAL Compression
- Fast Failback
(pg_rewind)
M S S
M S
S
Asynchronous
Replication
26Copyright©2016 NTT corp. All Rights Reserved.
Synchronous Replication (~9.5)
sync
async
async
=# SHOW synchronous_standby_names;
synchronous_standby_names
------------------------------
standby1, standby2, standby3
=# SELECT application_name, sync_state, sync_priority
FROM pg_stat_replication;
application_name | sync_state | sync_priority
------------------+------------+---------------
standby1 | sync | 1
standby2 | potential | 2
standby3 | potential | 3
standby1
standby2
standby3
27Copyright©2016 NTT corp. All Rights Reserved.
Multiple Synchronous Replication (9.6~)
=# SHOW synchronous_standby_names;
synchronous_standby_names
---------------------------------
2(standby1, standby2, standby3)
=# SELECT application_name, sync_state, sync_priority
FROM pg_stat_replication;
application_name | sync_state | sync_priority
------------------+------------+---------------
standby1 | sync | 1
standby2 | sync | 2
standby3 | potential | 3
sync
sync
async
standby1
standby2
standby3
28Copyright©2016 NTT corp. All Rights Reserved.
New syntax of synchronous_standby_names
‘2 (standby1, standby2, standby3)’
The number of
sync standbys Standby names
• When all three standbys are available,
• standby1 and standby2 are synchronous standbys.
• standby3 is potential standby (async).
• After standby1 crashed,
• standby3 becomes to synchronous standby.
• standby2 and standby3 are synchronous standbys.
Standby namesStandby names
29Copyright©2016 NTT corp. All Rights Reserved.
synchronous_commit
= ‘remote_apply’
(Thomas Munro)
30Copyright©2016 NTT corp. All Rights Reserved.
On master
server
On standby server
Flush WAL Write WAL Flush WAL Apply WAL
off Not Wait Not Wait Not Wait Not Wait
local Wait Not Wait Not Wait Not Wait
remote_write Wait Wait Not Wait Not Wait
on Wait Wait Wait Not Wait
remote_apply Wait Wait Wait Wait
synchronous_commit = remote_apply
synchronous_commit = [off | local | remote_write | on |
remote_apply]
New!
31Copyright©2016 NTT corp. All Rights Reserved.
• With remote_apply and synchronous replication,
committed data is visible on both the master server and
the slave server.
• The client can always see updated data even on the slave
server.
Read balancing with remote_apply
32Copyright©2016 NTT corp. All Rights Reserved.
Postgres_fdw support
remote joins, sorts,
UPDATEs and DELETEs
(Etsuro Fujita, Shigeru Hanada, Ashutosh Bapat)
33Copyright©2016 NTT corp. All Rights Reserved.
What’s the FDW?
ID, COL
100,Tokyo
200,Akihabara
id col
100 Tokyo
200 Akihabara
id col
100 Tokyo
200 Akihabara
CSV file
SELECT ..
id col
100 Tokyo
200 Akihabara
A lot of FDW are available!!
You can have FDW from
• postgres_fdw
• oracle_fdw
• mysql_fdw
• redis_fdw
:
file_fdw postgres_fdw mysql_fdw
34Copyright©2016 NTT corp. All Rights Reserved.
Operation PostgreSQL 9.4 PostgreSQL 9.5 PostgreSQL 9.6
SELECT -
Support foreign
table inheritance
Support foreign
table inheritance
WHERE clause Push down Push down Push down
Aggregate Local Local Local
Sort Local Local Push down
Join Local Local Push down
UPDATE,
DELETE
Tuple based
using CURSOR
Tuple based
using CURSOR
Directly execution
INSERT
INSERT to remote server
using Prepare/Execute
INSERT to remote server
using Prepare/Execute
INSERT to remote server
using Prepare/Execute
Improvement of FDW API and postgres_fdw
postgres_fdw
SELECT col
FROM foreign_table
ORDER BY col DESC;
SELECT col
FROM foreign_table
ORDER BY col DESC;
35Copyright©2016 NTT corp. All Rights Reserved.
Sort push down
-- 9.6
=# EXPLAIN (VEROBSE on, COSTS off) SELECT * FROM f_table ORDER BY col DESC;
QUERY PLAN
----------------------------------------------------------------------------
Foreign Scan on public.f_table
Output: col
Remote SQL: SELECT col FROM public.f_table ORDER BY col DESC NULLS FIRST
-- 9.5
=# EXPLAIN (VEROBSE on, COSTS off) SELECT * FROM f_table ORDER BY col DESC;
QUERY PLAN
----------------------------------------------------
Sort
Output: col
Sort Key: f_table.col DESC
-> Foreign Scan on public.f_table
Output: col
Remote SQL: SELECT col FROM public.f_table
36Copyright©2016 NTT corp. All Rights Reserved.
Join push down
-- 9.5
=# EXPLAIN (VERBOSE on, COSTS off) SELECT * FROM f_table a JOIN f_table2 b ON a.col = b.col LIMIT 10;
QUERY PLAN
------------------------------------------------------------------------
Limit
Output: a.col, b.col
-> Nested Loop
Output: a.col, b.col
Join Filter: (a.col = b.col)
-> Foreign Scan on public.f_table a
Output: a.col
Remote SQL: SELECT col FROM public.f_table
-> Materialize
Output: b.col
-> Foreign Scan on public.f_table2 b
Output: b.col
Remote SQL: SELECT col FROM public.f_table2
-- 9.6
=# EXPLAIN (VERBOSE on, COSTS off) SELECT * FROM f_table a JOIN f_table2 b ON a.col = b.col LIMIT 10;
QUERY PLAN
--------------------------------------------------------------------------------------------------
Limit
Output: a.col, b.col
-> Foreign Scan
Output: a.col, b.col
Relations: (public.f_table a) INNER JOIN (public.f_table2 b)
Remote SQL: SELECT r1.col, r2.col FROM (public.f_table r1 INNER JOIN public.f_table2 r2 ON
(((r1.col = r2.col))))
37Copyright©2016 NTT corp. All Rights Reserved.
Trigger kernel writeback
(Fabien Coelho, Andres Freund)
38Copyright©2016 NTT corp. All Rights Reserved.
• PostgreSQL writes data to the kernel’s disk cache.
• Write-back could be cause I/O storms
• Can be configured on global level
• vm.dirty_background_ratio etc
Kernel write-back configurations
39Copyright©2016 NTT corp. All Rights Reserved.
• New configure parameters
• checkpoint_flush_after
• 256kB by default
• bgwriter_flush_after
• 512kB by default
• backend_flush_after
• 0 by default
• wal_writer_flush_after
• 1MB by default
• Enable by default on Linux only
Kernel write-back configurations
40Copyright©2016 NTT corp. All Rights Reserved.
Better wait information
in pg_stat_activity
(Amit Kapila, Ildus Kurbangaliev)
41Copyright©2016 NTT corp. All Rights Reserved.
• Tracking of wait event.
• Removed ‘waiting’ column
• Added ‘wait_event_type’ column
• The type of event for which the backend is waiting.
• Added ‘wait_event’ column
• Wait event name.
Details of wait information in pg_stat_activity
=# SELECT pid, query, wait_event_type, wait_event
FROM pg_stat_activity;
pid | query | wait_event_type | wait_event
-------+---------------------+-----------------+--------------------
12345 | SELECT * FROM hoge; | |
90000 | VACUUM FULL hoge; | Lock | relation
10000 | SELECT * FROM bar; | LWLockNamed | XidGenLock
20000 | UPDATE bar SET…; | LWLockTranche | replication_slot_io
30000 | INSERT INTO … | BufferPin | BufferPin
(5 rows)
42Copyright©2016 NTT corp. All Rights Reserved.
pg_blocking_pids()
function
(Tom Lane)
43Copyright©2016 NTT corp. All Rights Reserved.
pg_blocking_pids() function
• Returns an array of the PIDs that are blocking the session
given PID.
=# SELECT pid, query, wait_event_type, wait_event
FROM pg_stat_activity;
pid | query | wait_event_type | wait_event
-------+--------------------+-----------------+------------
12345 | SELECT * FROM hoge; | |
90000 | VACUUM FULL hoge; | Lock | relation
(2 rows)
=# SELECT pg_blocking_pids(90000);
pg_blocking_pids
------------------
{12345}
(1 row)
44Copyright©2016 NTT corp. All Rights Reserved.
Towards to
PostgreSQL 10
Future Energy by Floris Oosterveld
45Copyright©2016 NTT corp. All Rights Reserved.
New versioning scheme
~ 9.6 10 ~
9.6.0
9.5.0Major ver. Minor ver.
9.5.1 11.0
10.0
10.1
Major ver. Minor ver.
46Copyright©2016 NTT corp. All Rights Reserved.
• A number of companies publish its roadmap for
PostgreSQL 10.
• https://wiki.postgresql.org/wiki/PostgreSQL10_Roadmap
• Feedback is very welcome!!
PostgreSQL 10 Roadmap is available
47Copyright©2016 NTT corp. All Rights Reserved.
Conclusion
48Copyright©2016 NTT corp. All Rights Reserved.
• Over 200 new feature and improvement.
• Scale up with Parallel Query.
• Scale out with Synchronous Replication and
postgres_fdw.
• Easier to use of very large database.
Conclusion
49Copyright©2016 NTT corp. All Rights Reserved.
Question?

More Related Content

What's hot

PG-Strom
PG-StromPG-Strom
PG-Strom
Kohei KaiGai
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
Hitoshi Sato
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS
Kohei KaiGai
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
Kohei KaiGai
 
On heap cache vs off-heap cache
On heap cache vs off-heap cacheOn heap cache vs off-heap cache
On heap cache vs off-heap cache
rgrebski
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
Kohei KaiGai
 
PostgreSQL performance archaeology
PostgreSQL performance archaeologyPostgreSQL performance archaeology
PostgreSQL performance archaeology
Tomas Vondra
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
Tomas Vondra
 
20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom
Kohei KaiGai
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
Avleen Vig
 
PG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrPG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrKohei KaiGai
 
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
Kohei KaiGai
 
Aerospike Go Language Client
Aerospike Go Language ClientAerospike Go Language Client
Aerospike Go Language Client
Sayyaparaju Sunil
 
Processing Big Data in Real-Time - Yanai Franchi, Tikal
Processing Big Data in Real-Time - Yanai Franchi, TikalProcessing Big Data in Real-Time - Yanai Franchi, Tikal
Processing Big Data in Real-Time - Yanai Franchi, Tikal
Codemotion Tel Aviv
 
LPC2019 BPF Tracing Tools
LPC2019 BPF Tracing ToolsLPC2019 BPF Tracing Tools
LPC2019 BPF Tracing Tools
Brendan Gregg
 
Performance Tuning EC2 Instances
Performance Tuning EC2 InstancesPerformance Tuning EC2 Instances
Performance Tuning EC2 Instances
Brendan Gregg
 
pgconfasia2016 plcuda en
pgconfasia2016 plcuda enpgconfasia2016 plcuda en
pgconfasia2016 plcuda en
Kohei KaiGai
 
Exploring Garbage Collection
Exploring Garbage CollectionExploring Garbage Collection
Exploring Garbage Collection
ESUG
 
Trip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine LearningTrip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine Learning
Renaldas Zioma
 
LSFMM 2019 BPF Observability
LSFMM 2019 BPF ObservabilityLSFMM 2019 BPF Observability
LSFMM 2019 BPF Observability
Brendan Gregg
 

What's hot (20)

PG-Strom
PG-StromPG-Strom
PG-Strom
 
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
AI橋渡しクラウド(ABCI)における高性能計算とAI/ビッグデータ処理の融合
 
20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS20201128_OSC_Fukuoka_Online_GPUPostGIS
20201128_OSC_Fukuoka_Online_GPUPostGIS
 
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015PG-Strom - GPGPU meets PostgreSQL, PGcon2015
PG-Strom - GPGPU meets PostgreSQL, PGcon2015
 
On heap cache vs off-heap cache
On heap cache vs off-heap cacheOn heap cache vs off-heap cache
On heap cache vs off-heap cache
 
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index20210301_PGconf_Online_GPU_PostGIS_GiST_Index
20210301_PGconf_Online_GPU_PostGIS_GiST_Index
 
PostgreSQL performance archaeology
PostgreSQL performance archaeologyPostgreSQL performance archaeology
PostgreSQL performance archaeology
 
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
PostgreSQL na EXT4, XFS, BTRFS a ZFS / FOSDEM PgDay 2016
 
20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom20150318-SFPUG-Meetup-PGStrom
20150318-SFPUG-Meetup-PGStrom
 
ELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log systemELK: Moose-ively scaling your log system
ELK: Moose-ively scaling your log system
 
PG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated AsyncrPG-Strom - GPU Accelerated Asyncr
PG-Strom - GPU Accelerated Asyncr
 
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
GPGPU Accelerates PostgreSQL ~Unlock the power of multi-thousand cores~
 
Aerospike Go Language Client
Aerospike Go Language ClientAerospike Go Language Client
Aerospike Go Language Client
 
Processing Big Data in Real-Time - Yanai Franchi, Tikal
Processing Big Data in Real-Time - Yanai Franchi, TikalProcessing Big Data in Real-Time - Yanai Franchi, Tikal
Processing Big Data in Real-Time - Yanai Franchi, Tikal
 
LPC2019 BPF Tracing Tools
LPC2019 BPF Tracing ToolsLPC2019 BPF Tracing Tools
LPC2019 BPF Tracing Tools
 
Performance Tuning EC2 Instances
Performance Tuning EC2 InstancesPerformance Tuning EC2 Instances
Performance Tuning EC2 Instances
 
pgconfasia2016 plcuda en
pgconfasia2016 plcuda enpgconfasia2016 plcuda en
pgconfasia2016 plcuda en
 
Exploring Garbage Collection
Exploring Garbage CollectionExploring Garbage Collection
Exploring Garbage Collection
 
Trip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine LearningTrip down the GPU lane with Machine Learning
Trip down the GPU lane with Machine Learning
 
LSFMM 2019 BPF Observability
LSFMM 2019 BPF ObservabilityLSFMM 2019 BPF Observability
LSFMM 2019 BPF Observability
 

Viewers also liked

PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
NTT DATA OSS Professional Services
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
NTT DATA OSS Professional Services
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)kasaharatt
 
OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料kasaharatt
 
Les merveilleux bienfaits du bicarbonate de soude chemins de santé
Les merveilleux bienfaits du bicarbonate de soude   chemins de santéLes merveilleux bienfaits du bicarbonate de soude   chemins de santé
Les merveilleux bienfaits du bicarbonate de soude chemins de santé
alexajonese
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
Masahiko Sawada
 
【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013
Daichi Egawa
 
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
Cloudera, Inc.
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310
Haruka Takatsuka
 
PostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read ScalabilityPostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read Scalability
Ohyama Masanori
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
Kosuke Kida
 
Database Security for PCI DSS
Database Security for PCI DSSDatabase Security for PCI DSS
Database Security for PCI DSS
Ohyama Masanori
 
PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会
Satoshi Yamada
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
Shigeru Hanada
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
Uptime Technologies LLC (JP)
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
Satoshi Yamada
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 

Viewers also liked (20)

PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
PostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もうPostgreSQLコミュニティに飛び込もう
PostgreSQLコミュニティに飛び込もう
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)明日から使えるPostgre sql運用管理テクニック(監視編)
明日から使えるPostgre sql運用管理テクニック(監視編)
 
OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料OSC沖縄2014_JPUG資料
OSC沖縄2014_JPUG資料
 
Les merveilleux bienfaits du bicarbonate de soude chemins de santé
Les merveilleux bienfaits du bicarbonate de soude   chemins de santéLes merveilleux bienfaits du bicarbonate de soude   chemins de santé
Les merveilleux bienfaits du bicarbonate de soude chemins de santé
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
 
【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013【Jpug勉強会】10大ニュースで振り返るpg con2013
【Jpug勉強会】10大ニュースで振り返るpg con2013
 
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
Comprehensive Hadoop Security for the Enterprise | Part I | Compliance Ready ...
 
Postgre sql update_20170310
Postgre sql update_20170310Postgre sql update_20170310
Postgre sql update_20170310
 
PostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read ScalabilityPostgreSQL 9.5 CPU Read Scalability
PostgreSQL 9.5 CPU Read Scalability
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
 
Database Security for PCI DSS
Database Security for PCI DSSDatabase Security for PCI DSS
Database Security for PCI DSS
 
PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会PostgreSQL実行計画入門@関西PostgreSQL勉強会
PostgreSQL実行計画入門@関西PostgreSQL勉強会
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 
PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習PostgreSQLセキュリティ総復習
PostgreSQLセキュリティ総復習
 
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
 
PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介PostgreSQLレプリケーション徹底紹介
PostgreSQLレプリケーション徹底紹介
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 

Similar to What’s new in 9.6, by PostgreSQL contributor

pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
Mark Wong
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
Command Prompt., Inc
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
Mark Wong
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLCommand Prompt., Inc
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
DataStax Academy
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
Mark Wong
 
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contentionTroubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Tanel Poder
 
Oracle to Postgres Migration - part 2
Oracle to Postgres Migration - part 2Oracle to Postgres Migration - part 2
Oracle to Postgres Migration - part 2
PgTraining
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deploymentsImproving the performance of Odoo deployments
Improving the performance of Odoo deployments
Odoo
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAs
Gokhan Atil
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and ArchitectureSidney Chen
 
Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015
Stephen Gordon
 
PoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expériencePoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expérience
Swiss Data Forum Swiss Data Forum
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
Emanuel Calvo
 
Programar para GPUs
Programar para GPUsProgramar para GPUs
Programar para GPUs
Alcides Fonseca
 
Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*
Intel® Software
 
Lrz kurs: big data analysis
Lrz kurs: big data analysisLrz kurs: big data analysis
Lrz kurs: big data analysis
Ferdinand Jamitzky
 
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
Masayuki Matsushita
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schema
FromDual GmbH
 
Postgres Vision 2018: Making Postgres Even Faster
Postgres Vision 2018: Making Postgres Even FasterPostgres Vision 2018: Making Postgres Even Faster
Postgres Vision 2018: Making Postgres Even Faster
EDB
 

Similar to What’s new in 9.6, by PostgreSQL contributor (20)

pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
 
pg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQLpg_proctab: Accessing System Stats in PostgreSQL
pg_proctab: Accessing System Stats in PostgreSQL
 
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contentionTroubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contention
 
Oracle to Postgres Migration - part 2
Oracle to Postgres Migration - part 2Oracle to Postgres Migration - part 2
Oracle to Postgres Migration - part 2
 
Improving the performance of Odoo deployments
Improving the performance of Odoo deploymentsImproving the performance of Odoo deployments
Improving the performance of Odoo deployments
 
Essential Linux Commands for DBAs
Essential Linux Commands for DBAsEssential Linux Commands for DBAs
Essential Linux Commands for DBAs
 
Oracle Basics and Architecture
Oracle Basics and ArchitectureOracle Basics and Architecture
Oracle Basics and Architecture
 
Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015
 
PoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expériencePoC Oracle Exadata - Retour d'expérience
PoC Oracle Exadata - Retour d'expérience
 
Osol Pgsql
Osol PgsqlOsol Pgsql
Osol Pgsql
 
Programar para GPUs
Programar para GPUsProgramar para GPUs
Programar para GPUs
 
Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*Data Analytics and Simulation in Parallel with MATLAB*
Data Analytics and Simulation in Parallel with MATLAB*
 
Lrz kurs: big data analysis
Lrz kurs: big data analysisLrz kurs: big data analysis
Lrz kurs: big data analysis
 
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
クラウドDWHとしても進化を続けるPivotal Greenplumご紹介
 
PERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schemaPERFORMANCE_SCHEMA and sys schema
PERFORMANCE_SCHEMA and sys schema
 
Postgres Vision 2018: Making Postgres Even Faster
Postgres Vision 2018: Making Postgres Even FasterPostgres Vision 2018: Making Postgres Even Faster
Postgres Vision 2018: Making Postgres Even Faster
 

More from Masahiko Sawada

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
Masahiko Sawada
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
Masahiko Sawada
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
Masahiko Sawada
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
Masahiko Sawada
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Masahiko Sawada
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Masahiko Sawada
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
Masahiko Sawada
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
Masahiko Sawada
 
Vacuumとzheap
VacuumとzheapVacuumとzheap
Vacuumとzheap
Masahiko Sawada
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
Masahiko Sawada
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
Masahiko Sawada
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
Masahiko Sawada
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
Masahiko Sawada
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
Masahiko Sawada
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 

More from Masahiko Sawada (20)

PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...行ロックと「LOG:  process 12345 still waiting for ShareLock on transaction 710 afte...
行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
OSS活動のやりがいとそれから得たもの - PostgreSQLコミュニティにて -
 
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...Transparent Data Encryption in PostgreSQL and Integration with Key Management...
Transparent Data Encryption in PostgreSQL and Integration with Key Management...
 
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...Database Encryption and Key Management for PostgreSQL - Principles and Consid...
Database Encryption and Key Management for PostgreSQL - Principles and Consid...
 
今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説今秋リリース予定のPostgreSQL11を徹底解説
今秋リリース予定のPostgreSQL11を徹底解説
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
Vacuumとzheap
VacuumとzheapVacuumとzheap
Vacuumとzheap
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 

Recently uploaded

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
CatarinaPereira64715
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
Elena Simperl
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 

Recently uploaded (20)

FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 

What’s new in 9.6, by PostgreSQL contributor

  • 1. Copyright©2016 NTT corp. All Rights Reserved. What’s New in PostgreSQL 9.6, by PostgreSQL contributor NTT OpenSource Software Center Masahiko Sawada @PGConf.ASIA 2016 (2 Dec)
  • 2. 2Copyright©2016 NTT corp. All Rights Reserved. Who am I? Masahiko Sawada Twitter : @sawada_masahiko PostgreSQL Contributor Freeze Map Multiple Sync Replication PostgreSQL Support Attended a developer meeting at PGCon 2016 Photo by Oleg Bartunov
  • 3. 3Copyright©2016 NTT corp. All Rights Reserved. 1. What’s new in PostgreSQL 9.6 2. Towards to PostgreSQL 10 3. Conclusion Agenda
  • 4. 4Copyright©2016 NTT corp. All Rights Reserved. • Open source Relational Database Management System. • Great features. • Window function. • Transactional DDL. • etc. • 20th anniversary! • Latest version is 9.6.1 (27th Oct). • Version 9.1 is EOL. PostgreSQL
  • 5. 5Copyright©2016 NTT corp. All Rights Reserved. New Features 1. Parallel queries. 2. Avoid VACUUM on all-frozen page (Freeze Map). 3. Monitoring progress of VACUUM. 4. Phrase full text search. 5. Multiple synchronous replication. 6. synchronous_commit = ‘remote_apply’ 7. postgrse_fdw support remote jois, sorts, UPDATEs and DELETEs. 8. Trigger Kernel write-back. 9. Better wait information in pg_stat_activity. 10. pg_blocking_pids().
  • 6. 6Copyright©2016 NTT corp. All Rights Reserved. What’s new in PostgreSQL 9.6 bridging knowledge to health by paul bica
  • 7. 7Copyright©2016 NTT corp. All Rights Reserved. Parallel queries (Robet Haas, Amit Kapila, David Rowley, many others)
  • 8. 8Copyright©2016 NTT corp. All Rights Reserved. Perpendicularly aggregation Aggregate Result Seq Scan Table =# SELECT count(*) FROM test_table;
  • 9. 9Copyright©2016 NTT corp. All Rights Reserved. Parallel aggregation Partial Agg Partial Agg Partial Agg Gather Result Result Result Parallel Seq Scan Parallel Seq Scan Parallel Seq Scan Result Result Table Result rows/3 rows/3 rows/3 Final Aggregate =# SELECT count(*) FROM test_table;
  • 10. 10Copyright©2016 NTT corp. All Rights Reserved. Plans =# EXPLAIN (ANALYZE on, VERBOSE on, COSTS off, TIMING off) SELECT count(*) FROM lineitem; QUERY PLAN ------------------------------------------------------------------------------------------- Aggregate (actual rows=1 loops=1) Output: count(*) -> Seq Scan on public.lineitem (actual rows=29999795 loops=1) Output: l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, ... =# EXPLAIN (ANALYZE on, VERBOSE on, COSTS off, TIMING off) SELECT count(*) FROM lineitem; QUERY PLAN ----------------------------------------------------------------------------------------- Finalize Aggregate (actual rows=1 loops=1) Output: count(*) -> Gather (actual rows=3 loops=1) Output: (PARTIAL count(*)) Workers Planned: 2 Workers Launched: 2 -> Partial Aggregate (actual rows=1 loops=3) Output: PARTIAL count(*) Worker 0: actual rows=1 loops=1 Worker 1: actual rows=1 loops=1 -> Parallel Seq Scan on public.lineitem (actual rows = ... Worker 0: actual rows=9838356 loops=1 Worker 1: actual rows=10019336 loops=1 ■ Parallel ■ Non Parallel
  • 11. 11Copyright©2016 NTT corp. All Rights Reserved. • Support • Sequential Scan • Aggregate (e.g. count, sum, avg) • Nested Loop Join • Hash Join • Not Support • UPDATE, DELETE • Index Scan • Sorting • Merge Join • DDL • etc As of 9.6 parallel queries
  • 12. 12Copyright©2016 NTT corp. All Rights Reserved. • HPE ProLiant DL580 GEN9 • Intel Xeon E7-8890 v4 2.20GHz (4P/192 core (96-HT)) • 2TB RAM • Workload Accelerator(PCIe SSD) • Read : 715,000 IOPS, 3.0GB/s • Write : 95,000 IOPS, 2.5GB/s Evaluation on a great machine Supported by Thank you!
  • 13. 13Copyright©2016 NTT corp. All Rights Reserved. 0 50 100 150 200 250 300 350 400 0 20 40 60 80 100 120 140 160 180 200 ExecutionTime(s) Parallel Degree Parallel Query on 192 cores machine • All table data(400GB) is on the shared buffer; no disk access. • Simple aggregation, count(*). • Parallel query makes aggregation 19x faster!! 385 sec 21 sec
  • 14. 14Copyright©2016 NTT corp. All Rights Reserved. 3,006 3,966 8,272 40 6,000 28 177 1,029 2,111 0 1,000 2,000 3,000 4,000 5,000 6,000 7,000 8,000 9,000 SF1 SF10 SF50 SF100 TotalExecutionTime(sec) Hive PostgreSQL 9.1.3 PostgreSQL 9.6.0 • Comparing DBT-3 benchmark result with Hive (SF1 - SF100) • Single PostgreSQL node, 192 parallel degree. • 7 of 22 queries timed out(30min) at SF500. shared_buffers = 800GB, work_mem = 3GB. • 12 node Hadoop cluster (master 2, slave 10). • Hive flushes data to disk whenever finished each job. • Now in 2016 we should use Hive on Tez. • On the other hand, PostgreSQL has the all table data in shared buffer. For your reference - CDH4.1.2 - 24 cores (12-HT) - 32G RAM - 2TB SATA - PostgreSQL 9.1.3 - 8 cores (4-HT) - 16G RAM - SATA
  • 15. 15Copyright©2016 NTT corp. All Rights Reserved. Avoid VACUUM on all-frozen page (Freeze Map) (Masahiko Sawada, Robert Haas, Andres Freund)
  • 16. 16Copyright©2016 NTT corp. All Rights Reserved. • Necessary to prevent transaction ID(XID) wraparound failures. • anti-wraparound VACUUM is invoked every 200 million transaction by default • Previously it always scanned all table pages. • Could be performance degradation. Freezing of database
  • 17. 17Copyright©2016 NTT corp. All Rights Reserved. • Keep track of which pages are completely frozen. • Avoid VACUUM on all-frozen pages. • Very effective for mostly-read tables. Avoid VACUUM on all-frozen page (Freeze Map) -- 9.6 =# VACUUM FREEZE large_table; VACUUM Time: 703509.523 ms =# VACUUM FREEZE large_table; VACUUM Time: 222.719 ms -- 9.5 =# VACUUM FREEZE large_table; VACUUM Time: 685363.793 ms =# VACUUM FREEZE large_table; VACUUM Time: 711380.587 ms
  • 18. 18Copyright©2016 NTT corp. All Rights Reserved. Monitoring progress of VACUUM (Amit Langote, Robert Haas, Vinayak Pokale, Rahila Syed)
  • 19. 19Copyright©2016 NTT corp. All Rights Reserved. • Introduce new system view pg_stat_progress_vacuum. • Report progress of running VACUUM. • Not supported for VACUUM FULL and CLUSTER. Progress information of vacuum =# ¥d pg_stat_progress_vacuum Column | Type | Modifiers --------------------+---------+---------- pid | integer | datid | oid | datname | name | relid | oid | phase | text | heap_blks_total | bigint | heap_blks_scanned | bigint | heap_blks_vacuumed | bigint | index_vacuum_count | bigint | max_dead_tuples | bigint | num_dead_tuples | bigint |
  • 20. 20Copyright©2016 NTT corp. All Rights Reserved. =# SELECT pid, datname, relname, now() - query_start as duration, ((heap_blks_scanned / heap_blks_total::numeric(10,2)) * 100) as percentage, p.phase, index_vacuum_count FROM pg_stat_progress_vacuum as p, pg_class as c WHERE p.relid = c.oid; -[ RECORD 1 ]-------+----------------- pid | 100026 datname | postgres relname | pgbench_accounts duration | 01:23:45.000000 percentage | 19.72 phase | scanning heap index_vacuum_count | 10 -[ RECORD 2 ]-------+----------------- pid | 100027 datname | postgres relname | very_large_table duration | 02:35:12.123456 percentage | 95.12 phase | scanning heap index_vacuum_count | 300 Monitoring progress of VACUUM - Table name - Duration - Progress (percentage) - Phase - Index vacuum count
  • 21. 21Copyright©2016 NTT corp. All Rights Reserved. Phrase full text search (Teodor Sigaev, Oleg Bartunov, Dmitry Ivanov)
  • 22. 22Copyright©2016 NTT corp. All Rights Reserved. • Search for words positioned relative to other words. • Added new tsquery operators ‘<->’ and ‘<N>’ • ‘index <-> scan’ means that ‘scan’ follows by ‘index’. • Match to ‘index scan’. • ‘index <2> scan’ means that ‘index’ and ‘scan’ separated by at most 1 other word. • Match to ‘index only scan’. Search for Phrases
  • 23. 23Copyright©2016 NTT corp. All Rights Reserved. =# SELECT title, body FROM pgdoc WHERE content @@ to_tsquery('parallel <-> execute') LIMIT 1; -[ RECORD 1 ]-------------------------- title | Foreign Data Wrapper Callback Routines body | A ForeignScan node can, optionally, support | parallel execution. … =# SELECT title, body FROM pgdoc WHERE content @@ to_tsquery('parallel <2> execute') LIMIT 1; -[ RECORD 1 ]-------------------------- title | When Can Parallel Query Be Used? body | Even when parallel query is generated for … | impossible to execute that plan in parallel at execution … =# SELECT title, body FROM pgdoc WHERE content @@ to_tsquery('parallel <3> execute') LIMIT 1; -[ RECORD 1 ]-------------------------- title | How Parallel Query Works body | Every background worker process which is … | parallel query will execute the portion of … Search for ‘parallel <->/<N> execute’
  • 24. 24Copyright©2016 NTT corp. All Rights Reserved. Multiple synchronous replication (Masahiko Sawada, Beena Emerson, Michael Paquier, Fujii Masao, Kyotaro Horiguchi)
  • 25. 25Copyright©2016 NTT corp. All Rights Reserved. History of Replication feature 9.0 (2010) 9.4 (2014) 9.5 (2015) 9.6 (2016) 9.2 (2012) 9.3 (2013) 9.1 (2011) Synchronous Replication Cascade Replication Fast Failover - Replication Slot - Logical Decoding - WAL Compression - Fast Failback (pg_rewind) M S S M S S Asynchronous Replication
  • 26. 26Copyright©2016 NTT corp. All Rights Reserved. Synchronous Replication (~9.5) sync async async =# SHOW synchronous_standby_names; synchronous_standby_names ------------------------------ standby1, standby2, standby3 =# SELECT application_name, sync_state, sync_priority FROM pg_stat_replication; application_name | sync_state | sync_priority ------------------+------------+--------------- standby1 | sync | 1 standby2 | potential | 2 standby3 | potential | 3 standby1 standby2 standby3
  • 27. 27Copyright©2016 NTT corp. All Rights Reserved. Multiple Synchronous Replication (9.6~) =# SHOW synchronous_standby_names; synchronous_standby_names --------------------------------- 2(standby1, standby2, standby3) =# SELECT application_name, sync_state, sync_priority FROM pg_stat_replication; application_name | sync_state | sync_priority ------------------+------------+--------------- standby1 | sync | 1 standby2 | sync | 2 standby3 | potential | 3 sync sync async standby1 standby2 standby3
  • 28. 28Copyright©2016 NTT corp. All Rights Reserved. New syntax of synchronous_standby_names ‘2 (standby1, standby2, standby3)’ The number of sync standbys Standby names • When all three standbys are available, • standby1 and standby2 are synchronous standbys. • standby3 is potential standby (async). • After standby1 crashed, • standby3 becomes to synchronous standby. • standby2 and standby3 are synchronous standbys. Standby namesStandby names
  • 29. 29Copyright©2016 NTT corp. All Rights Reserved. synchronous_commit = ‘remote_apply’ (Thomas Munro)
  • 30. 30Copyright©2016 NTT corp. All Rights Reserved. On master server On standby server Flush WAL Write WAL Flush WAL Apply WAL off Not Wait Not Wait Not Wait Not Wait local Wait Not Wait Not Wait Not Wait remote_write Wait Wait Not Wait Not Wait on Wait Wait Wait Not Wait remote_apply Wait Wait Wait Wait synchronous_commit = remote_apply synchronous_commit = [off | local | remote_write | on | remote_apply] New!
  • 31. 31Copyright©2016 NTT corp. All Rights Reserved. • With remote_apply and synchronous replication, committed data is visible on both the master server and the slave server. • The client can always see updated data even on the slave server. Read balancing with remote_apply
  • 32. 32Copyright©2016 NTT corp. All Rights Reserved. Postgres_fdw support remote joins, sorts, UPDATEs and DELETEs (Etsuro Fujita, Shigeru Hanada, Ashutosh Bapat)
  • 33. 33Copyright©2016 NTT corp. All Rights Reserved. What’s the FDW? ID, COL 100,Tokyo 200,Akihabara id col 100 Tokyo 200 Akihabara id col 100 Tokyo 200 Akihabara CSV file SELECT .. id col 100 Tokyo 200 Akihabara A lot of FDW are available!! You can have FDW from • postgres_fdw • oracle_fdw • mysql_fdw • redis_fdw : file_fdw postgres_fdw mysql_fdw
  • 34. 34Copyright©2016 NTT corp. All Rights Reserved. Operation PostgreSQL 9.4 PostgreSQL 9.5 PostgreSQL 9.6 SELECT - Support foreign table inheritance Support foreign table inheritance WHERE clause Push down Push down Push down Aggregate Local Local Local Sort Local Local Push down Join Local Local Push down UPDATE, DELETE Tuple based using CURSOR Tuple based using CURSOR Directly execution INSERT INSERT to remote server using Prepare/Execute INSERT to remote server using Prepare/Execute INSERT to remote server using Prepare/Execute Improvement of FDW API and postgres_fdw postgres_fdw SELECT col FROM foreign_table ORDER BY col DESC; SELECT col FROM foreign_table ORDER BY col DESC;
  • 35. 35Copyright©2016 NTT corp. All Rights Reserved. Sort push down -- 9.6 =# EXPLAIN (VEROBSE on, COSTS off) SELECT * FROM f_table ORDER BY col DESC; QUERY PLAN ---------------------------------------------------------------------------- Foreign Scan on public.f_table Output: col Remote SQL: SELECT col FROM public.f_table ORDER BY col DESC NULLS FIRST -- 9.5 =# EXPLAIN (VEROBSE on, COSTS off) SELECT * FROM f_table ORDER BY col DESC; QUERY PLAN ---------------------------------------------------- Sort Output: col Sort Key: f_table.col DESC -> Foreign Scan on public.f_table Output: col Remote SQL: SELECT col FROM public.f_table
  • 36. 36Copyright©2016 NTT corp. All Rights Reserved. Join push down -- 9.5 =# EXPLAIN (VERBOSE on, COSTS off) SELECT * FROM f_table a JOIN f_table2 b ON a.col = b.col LIMIT 10; QUERY PLAN ------------------------------------------------------------------------ Limit Output: a.col, b.col -> Nested Loop Output: a.col, b.col Join Filter: (a.col = b.col) -> Foreign Scan on public.f_table a Output: a.col Remote SQL: SELECT col FROM public.f_table -> Materialize Output: b.col -> Foreign Scan on public.f_table2 b Output: b.col Remote SQL: SELECT col FROM public.f_table2 -- 9.6 =# EXPLAIN (VERBOSE on, COSTS off) SELECT * FROM f_table a JOIN f_table2 b ON a.col = b.col LIMIT 10; QUERY PLAN -------------------------------------------------------------------------------------------------- Limit Output: a.col, b.col -> Foreign Scan Output: a.col, b.col Relations: (public.f_table a) INNER JOIN (public.f_table2 b) Remote SQL: SELECT r1.col, r2.col FROM (public.f_table r1 INNER JOIN public.f_table2 r2 ON (((r1.col = r2.col))))
  • 37. 37Copyright©2016 NTT corp. All Rights Reserved. Trigger kernel writeback (Fabien Coelho, Andres Freund)
  • 38. 38Copyright©2016 NTT corp. All Rights Reserved. • PostgreSQL writes data to the kernel’s disk cache. • Write-back could be cause I/O storms • Can be configured on global level • vm.dirty_background_ratio etc Kernel write-back configurations
  • 39. 39Copyright©2016 NTT corp. All Rights Reserved. • New configure parameters • checkpoint_flush_after • 256kB by default • bgwriter_flush_after • 512kB by default • backend_flush_after • 0 by default • wal_writer_flush_after • 1MB by default • Enable by default on Linux only Kernel write-back configurations
  • 40. 40Copyright©2016 NTT corp. All Rights Reserved. Better wait information in pg_stat_activity (Amit Kapila, Ildus Kurbangaliev)
  • 41. 41Copyright©2016 NTT corp. All Rights Reserved. • Tracking of wait event. • Removed ‘waiting’ column • Added ‘wait_event_type’ column • The type of event for which the backend is waiting. • Added ‘wait_event’ column • Wait event name. Details of wait information in pg_stat_activity =# SELECT pid, query, wait_event_type, wait_event FROM pg_stat_activity; pid | query | wait_event_type | wait_event -------+---------------------+-----------------+-------------------- 12345 | SELECT * FROM hoge; | | 90000 | VACUUM FULL hoge; | Lock | relation 10000 | SELECT * FROM bar; | LWLockNamed | XidGenLock 20000 | UPDATE bar SET…; | LWLockTranche | replication_slot_io 30000 | INSERT INTO … | BufferPin | BufferPin (5 rows)
  • 42. 42Copyright©2016 NTT corp. All Rights Reserved. pg_blocking_pids() function (Tom Lane)
  • 43. 43Copyright©2016 NTT corp. All Rights Reserved. pg_blocking_pids() function • Returns an array of the PIDs that are blocking the session given PID. =# SELECT pid, query, wait_event_type, wait_event FROM pg_stat_activity; pid | query | wait_event_type | wait_event -------+--------------------+-----------------+------------ 12345 | SELECT * FROM hoge; | | 90000 | VACUUM FULL hoge; | Lock | relation (2 rows) =# SELECT pg_blocking_pids(90000); pg_blocking_pids ------------------ {12345} (1 row)
  • 44. 44Copyright©2016 NTT corp. All Rights Reserved. Towards to PostgreSQL 10 Future Energy by Floris Oosterveld
  • 45. 45Copyright©2016 NTT corp. All Rights Reserved. New versioning scheme ~ 9.6 10 ~ 9.6.0 9.5.0Major ver. Minor ver. 9.5.1 11.0 10.0 10.1 Major ver. Minor ver.
  • 46. 46Copyright©2016 NTT corp. All Rights Reserved. • A number of companies publish its roadmap for PostgreSQL 10. • https://wiki.postgresql.org/wiki/PostgreSQL10_Roadmap • Feedback is very welcome!! PostgreSQL 10 Roadmap is available
  • 47. 47Copyright©2016 NTT corp. All Rights Reserved. Conclusion
  • 48. 48Copyright©2016 NTT corp. All Rights Reserved. • Over 200 new feature and improvement. • Scale up with Parallel Query. • Scale out with Synchronous Replication and postgres_fdw. • Easier to use of very large database. Conclusion
  • 49. 49Copyright©2016 NTT corp. All Rights Reserved. Question?