SlideShare a Scribd company logo
PostgreSQL 13 New Features
Speaker: 林宗禧 @ COSCUP 2020
Taiwan PostgreSQL User Group
1
About
林宗禧
• PostgreSQL愛好者、推廣者
• 以前: 開發FDW套件 (C, Python都有)
• 後來: 到處整合PG的應用
• 推 Industry 4.0,讓業主不經意的導入 PG
• 推 Smart City Solutions ,拿PG做基礎
• 業主反饋都很OK…
• 因為PG本來就穩定好用
• 資料庫技術總是那在後面默默支持各系統 (但卻非常關鍵!!)
2020/8/3 2Taiwan PostgreSQL User Group
Agenda
01. Overview
02. Architecture
1) Deduplication in B-Tree Indexes
2) Logical Replication Partitioning
3) Incremental Sort
4) Parallel vacuum
03. SQL Statement
04. Utilities
2020/8/3 3Taiwan PostgreSQL User Group
01. Overview
Taiwan PostgreSQL User Group 42020/8/3
pg13
Release timeline
PostgreSQL 13 Beta 1 Released @ 2020-05-21
PostgreSQL 13 Beta 2 Released @ 2020-06-25
自PG 10開始,每年一次大版號更新:
Taiwan PostgreSQL User Group 52020/8/3
Amazon RDS 開始提供 PostgreSQL 13 Beta 1
https://aws.amazon.com/tw/about-aws/whats-new/2020/06/postgresql-13-beta-1-now-available-in-amazon-rds-database-preview-environment/
Taiwan PostgreSQL User Group 62020/8/3
Amazon RDS 開始提供 PostgreSQL 13 Beta 1
https://aws.amazon.com/tw/about-aws/whats-new/2020/06/postgresql-13-beta-1-now-available-in-amazon-rds-database-preview-environment/
Taiwan PostgreSQL User Group 72020/8/3
Amazon RDS 描述 PG 13
• PostgreSQL 13 擁有改善的功能和效能,例如
• 由 B 型樹狀結構索引更好地處理重複資料
• 新增分區功能的改善
• 加速資料排序的增量排序
• 使用 VACUUM 命令平行處理索引
• 更多監控 PostgreSQL 資料庫活動的方法
• 新的安全功能
Taiwan PostgreSQL User Group 82020/8/3
EDB 13 Agenda
• Performance benchmarking: Four years of going faster
• Logical subscription for partitioned tables
• Partition wise joins
• Before row-level triggers
• Parallel vacuum for indexes
• Corruption checking: pg_catcheck
• Improved security: libpq w. channel binding
9Taiwan PostgreSQL User Group2020/8/3
HPE 新機能檢証結果(1/3)
• HPE Noriyoshi Shinoda https://www.hpe.com/jp/ja/servers/linux/technical/edlin.html
Taiwan PostgreSQL User Group 102020/8/3
HPE 新機能檢証結果(2/3)
Taiwan PostgreSQL User Group 112020/8/3
3.1. Architecture
3.1.1. Modified catalogs
3.1.2. Data types
3.1.3. Disk based hash aggregation
3.1.4. Incremental sort
3.1.5. Backup manifests
3.1.6. Partitioned table
3.1.7. Log output for Autovacuum
3.1.8. Wait events
3.1.9. libpq connection string
3.1.10. libpq functions
3.1.11. Hook
3.1.12. Column trigger
3.1.13. Local connection key
3.1.14. Trusted Extension
3.1.15. Replication slot
3.1.16. Text search
3.2. SQL statement
3.2.1. ALTER NO DEPENDS ON
3.2.2. ALTER STATISTICS SET STATISTICS
3.2.3. ALTER TABLE
3.2.4. ALTER TYPE
3.2.5. ALTER VIEW
3.2.6. CREATE DATABASE
3.2.7. CREATE INDEX
3.2.8. CREATE TABLE
3.2.9. CREATE TABLESPACE
3.2.10. DROP DATABASE FORCE
3.2.11. EXPLAIN ANALYZE
3.2.12. INSERT
3.2.13. JSON
3.2.14. MAX/MIN pg_lsn
3.2.15. ROW
3.2.16. SELECT FETCH FIRST WITH TIES
3.2.17. VACUUM PARALLEL
3.2.18. Operator <->
3.2.19. Functions
HPE 新機能檢証結果(3/3)
Taiwan PostgreSQL User Group 122020/8/3
3.4. Utilities
3.4.1. dropdb
3.4.2. pg_basebackup
3.4.3. pg_dump
3.4.4. pg_rewind
3.4.5. pg_verifybackup
3.4.6. pg_waldump
3.4.7. psql
3.4.8. reindexdb
3.4.9. vacuumdb
3.4.10. Other
3.5. Contrib modules
3.5.1. adminpack
3.5.2. auto_explain
3.5.3. dict_int
3.5.4. ltree
3.5.5. pageinspect
3.5.6. pg_stat_statements
3.5.7. postgres_fdw
3.5.8. bool_plperl
02. Architecture
Taiwan PostgreSQL User Group 132020/8/3
pg13
1) Deduplication in B-Tree Indexes
Taiwan PostgreSQL User Group 142020/8/3
https://www.researchgate.net/figure/Overview-of-deduplication-processing_fig1_305801856
https://www.highgo.ca/2020/07/06/features-in-pg13-deduplication-in-b-tree-indexes/
Deduplication Implement Concept (general for files)
1) Deduplication in B-Tree Indexes
實測 (create table、insert 100萬筆、 create index)
Taiwan PostgreSQL User Group 152020/8/3
postgres=# CREATE TABLE btree_dups AS (SELECT GENERATE_SERIES(1, 1000000)::BIGINT
AS val);
SELECT 1000000
postgres=# CREATE INDEX btree_idx ON btree_dups(val);
CREATE INDEX
postgres=# SELECT c.relname , c.relkind, pg_size_pretty(pg_relation_size(c.oid))
FROM pg_class c
WHERE c.relname = 'btree_dups'
OR c.oid IN (
SELECT i.indexrelid FROM pg_index i WHERE i.indrelid =
'btree_dups'::regclass );
relname | relkind | pg_size_pretty
------------+---------+----------------
btree_dups | r | 35 MB
btree_idx | i | 21 MB
(2 rows)
postgres=# UPDATE btree_dups SET val = val + 1;
UPDATE 1000000
1) Deduplication in B-Tree Indexes
差異比較 (效能)
Taiwan PostgreSQL User Group 162020/8/3
-- 12.2
postgres=# EXPLAIN SELECT val FROM
btree_dups;
QUERY PLAN
--------------------------------------
Seq Scan on btree_dups
(cost=0.00..23275.00 rows=1000000
width=8)
(1 row)
Time: 2.415 ms
postgres=# DO
postgres-# $$BEGIN
postgres$# PERFORM * FROM btree_dups;
postgres$# END;
postgres$# $$;
DO
Time: 190.101 ms
-- 13 Beta 2
postgres=# EXPLAIN SELECT val FROM
btree_dups;
QUERY PLAN
--------------------------------------
Seq Scan on btree_dups
(cost=0.00..23274.00 rows=1000000
width=8)
(1 row)
Time: 2.221 ms
postgres=# DO
postgres-# $$BEGIN
postgres$# PERFORM * FROM btree_dups;
postgres$# END;
postgres$# $$;
DO
Time: 174.843 ms
1) Deduplication in B-Tree Indexes
差異比較 (空間)
Taiwan PostgreSQL User Group 172020/8/3
-- 12.2
relname | relkind | pg_size_pretty
------------+---------+---------------
-
btree_dups | r | 104 MB
btree_idx | i | 86 MB
(2 rows)
-- 13 Beta 2
relname | relkind | pg_size_pretty
------------+---------+---------------
-
btree_dups | r | 104 MB
btree_idx | i | 62 MB
(2 rows)
2) Logical Replication Partitioning
https://severalnines.com/database-blog/logical-replication-partitioning-postgresql-13
Taiwan PostgreSQL User Group 182020/8/3
No Partitioning Partitioned
新增 Partitioned Table 的 Logical Replication 功能
2) Logical Replication Partitioning
Taiwan PostgreSQL User Group 192020/8/3
Now
支援Partitioning
Past
2) Logical Replication Partitioning
差異比較 (SQL)
Taiwan PostgreSQL User Group 202020/8/3
-- 12.2
CREATE PUBLICATION rep_part_pub FOR
TABLE stock_sales
WITH (publish_via_partition_root);
ERROR: "stock_sales" is a partitioned
table
DETAIL: Adding partitioned tables to
publications is not supported.
HINT: You can add the table
partitions individually.
-- 13 Beta 2
CREATE PUBLICATION rep_part_pub FOR
TABLE stock_sales
WITH (publish_via_partition_root);
CREATE SUBSCRIPTION rep_part_sub
CONNECTION 'host=192.168.56.101
port=5432 user=rep_usr
password=rep_pwd dbname=postgres'
PUBLICATION rep_part_pub;
3) Incremental sort
Taiwan PostgreSQL User Group 212020/8/3
新增 enable_incrementalsort 參數
-- 13 Beta, enable_incrementalsort=on
postgres=# set enable_incrementalsort=on ;
SET
postgres=# SHOW enable_incrementalsort ;
enable_incrementalsort
------------------------
on
(1 row)
3) Incremental sort
實測 (建 Table, data, index)
Taiwan PostgreSQL User Group 222020/8/3
-- CREATE
CREATE TABLE t_is(a int4,b
int4,ctime timestamp(6) without
time zone);
-- INSERT 2 times
INSERT INTO t_is(a,b,ctime) SELECT
n,round(random()*100000000),
clock_timestamp() FROM
generate_series(1,1000000) n;
INSERT INTO t_is(a,b,ctime) SELECT
n,round(random()*100000000),
clock_timestamp() FROM
generate_series(1,1000000) n;
-- CREATE INDEX
CREATE INDEX idx_t_is_a ON t_is
USING BTREE(a);
-- Check
postgres=# SELECT * FROM t_is ORDER BY a,b
LIMIT 10;
a | b | ctime
---+----------+----------------------------
1 | 60379526 | 2020-07-21 16:28:42.034869
1 | 73197294 | 2020-07-21 16:28:45.496297
2 | 943408 | 2020-07-21 16:28:45.496346
2 | 27584454 | 2020-07-21 16:28:42.036121
3 | 31616182 | 2020-07-21 16:28:45.496348
3 | 88997913 | 2020-07-21 16:28:42.036134
4 | 21557231 | 2020-07-21 16:28:45.49635
4 | 23206459 | 2020-07-21 16:28:42.036136
5 | 13268559 | 2020-07-21 16:28:45.496351
5 | 33672766 | 2020-07-21 16:28:42.036137
(10 rows)
https://postgres.fun/20200721193000.html
3) Incremental sort
差異比較 (13版, 啟用incrementalsort)
Taiwan PostgreSQL User Group 232020/8/3
-- 13 Beta, enable_incrementalsort=on
postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10;
QUERY PLAN
----------------------------------------------------------------------------
-------------------------------------------------------------
Limit (cost=0.51..1.16 rows=10 width=16) (actual time=0.042..0.044 rows=10
loops=1)
-> Incremental Sort (cost=0.51..130115.72 rows=2000000 width=16)
(actual time=0.041..0.042 rows=10 loops=1)
Sort Key: a, b
Presorted Key: a
Full-sort Groups: 1 Sort Method: quicksort Average Memory: 25kB
Peak Memory: 25kB
-> Index Scan using idx_t_is_a on t_is (cost=0.43..58848.31
rows=2000000 width=16) (actual time=0.021..0.027 rows=11 loops=1)
Planning Time: 0.106 ms
Execution Time: 0.064 ms
(8 rows)
3. Incremental sort
差異比較 (13版, 關閉incrementalsort)
Taiwan PostgreSQL User Group 242020/8/3
-- 13 Beta, enable_incrementalsort=off
postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10;
QUERY PLAN
-------------------------------------------------------------------------------------------
Limit (cost=38152.38..38153.55 rows=10 width=16) (actual time=157.108..157.112 rows=10
loops=1)
-> Gather Merge (cost=38152.38..232610.33 rows=1666666 width=16) (actual
time=157.106..159.975 rows=10 loops=1)
Workers Planned: 2
Workers Launched: 2
-> Sort (cost=37152.36..39235.69 rows=833333 width=16) (actual
time=145.993..145.993 rows=10 loops=3)
Sort Key: a, b
Sort Method: top-N heapsort Memory: 25kB
Worker 0: Sort Method: top-N heapsort Memory: 25kB
Worker 1: Sort Method: top-N heapsort Memory: 25kB
-> Parallel Seq Scan on t_is (cost=0.00..19144.33 rows=833333 width=16)
(actual time=0.067..68.815 rows=666667 loops=3)
Planning Time: 0.144 ms
Execution Time: 160.027 ms
(12 rows)
3. Incremental sort
差異比較 (12版, 無incrementalsort功能)
Taiwan PostgreSQL User Group 252020/8/3
-- 12
postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10;
QUERY PLAN
---------------------------------------------------------------------------- Limit
(cost=38152.38..38153.55 rows=10 width=16) (actual time=144.892..144.896 rows=10
loops=1)
-> Gather Merge (cost=38152.38..232610.33 rows=1666666 width=16) (actual
time=144.891..147.211 rows=10 loops=1)
Workers Planned: 2
Workers Launched: 2
-> Sort (cost=37152.36..39235.69 rows=833333 width=16) (actual
time=141.592..141.593 rows=8 loops=3)
Sort Key: a, b
Sort Method: top-N heapsort Memory: 25kB
Worker 0: Sort Method: top-N heapsort Memory: 25kB
Worker 1: Sort Method: top-N heapsort Memory: 25kB
-> Parallel Seq Scan on t_is (cost=0.00..19144.33 rows=833333
width=16) (actual time=0.016..72.129 rows=666667 loops=3)
Planning Time: 0.087 ms
Execution Time: 147.247 ms
(12 rows)
3. Incremental sort
Taiwan PostgreSQL User Group 262020/8/3
差異比較
-- 13 Beta, enable_incrementalsort=on
Execution Time: 0.064 ms
-- 13 Beta, enable_incrementalsort=off
Execution Time: 160.027 ms
-- 12 no enable_incrementalsort parameter
Execution Time: 147.247 ms
4. parallel vacuum performance
實測說明
BACKGROUND
For testing the parallel vacuum performance we have constructed a scenario where vacuum is at
the verge of freezing by executing 50 million (vacuum_freeze_min_age) transactions. We
executed non-in place updates which will create huge bloat in the table as well as
indexes . After this point, we have maintained the copy of the database and executed the
vacuum with different numbers of workers on the same state of database and measured the
execution time.
OBSERVATION
We have observed that when the database is in dire need of completing the vacuum the non-
parallel vacuum took more than an hour to execute which we are able to complete in just 16 mins
with parallel vacuum which is nearly 4 times faster.
https://www.enterprisedb.com/postgres-tutorials/what-parallel-vacuum-postgresql-13
https://www.highgo.ca/2020/02/28/parallel-vacuum-in-upcoming-postgresql-13/
Taiwan PostgreSQL User Group 272020/8/3
4. parallel vacuum performance
Taiwan PostgreSQL User Group 282020/8/3
Parameters for parallel vacuum
Min_parallel_index_scan_size 512kB
Max_parallel_maintenance_workers 8
Other Performance Parameters
Shared_buffers 128GB
Maintenance_work_mem 1GB
參數設定 建立Table
CREATE TABLE pgbench_accounts (
aid bigint,
bid bigint,
abalance bigint,
filler1 text DEFAULT md5(random()::text),
filler2 text DEFAULT md5(random()::text),
filler3 text DEFAULT md5(random()::text),
filler4 text DEFAULT md5(random()::text),
filler5 text DEFAULT md5(random()::text),
filler6 text DEFAULT md5(random()::text),
filler7 text DEFAULT md5(random()::text),
filler8 text DEFAULT md5(random()::text),
filler9 text DEFAULT md5(random()::text),
filler10 text DEFAULT md5(random()::text),
filler11 text DEFAULT md5(random()::text),
filler12 text DEFAULT md5(random()::text)
);
4. parallel vacuum performance
建立 DATA & INDEXES
Taiwan PostgreSQL User Group 292020/8/3
INSERT INTO pgbench_accounts select i,i%10,0 FROM
generate_series(1,100000000) as i;
CREATE UNIQUE INDEX pgb_a_aid ON pgbench_accounts(aid);
CREATE INDEX pgb_a_bid ON pgbench_accounts(bid);
CREATE INDEX pgb_a_abalance ON pgbench_accounts(abalance);
CREATE INDEX pgb_a_filler1 ON pgbench_accounts(filler1);
CREATE INDEX pgb_a_filler2 ON pgbench_accounts(filler2);
CREATE INDEX pgb_a_filler3 ON pgbench_accounts(filler3);
CREATE INDEX pgb_a_filler4 ON pgbench_accounts(filler4);
CREATE INDEX pgb_a_filler5 ON pgbench_accounts(filler5);
CREATE INDEX pgb_a_filler6 ON pgbench_accounts(filler6);
CREATE INDEX pgb_a_filler7 ON pgbench_accounts(filler7);
CREATE INDEX pgb_a_filler8 ON pgbench_accounts(filler8);
CREATE INDEX pgb_a_filler9 ON pgbench_accounts(filler9);
CREATE INDEX pgb_a_filler10 ON pgbench_accounts(filler10);
CREATE INDEX pgb_a_filler11 ON pgbench_accounts(filler11);
CREATE INDEX pgb_a_filler12 ON pgbench_accounts(filler12);
4). parallel vacuum performance
WORKLOAD
Taiwan PostgreSQL User Group 302020/8/3
./pgbench -c32 -j32 -t15000000 -M prepared -f script.sql postgres
set aid random(1, 100000000)
set bid random(1, 100000000)
set delta random(-5000, 5000)
BEGIN;
UPDATE pgbench_accounts SET bid=:bid WHERE aid = :aid;
END;
SCRIPT
4). parallel vacuum performance
Taiwan PostgreSQL User Group 312020/8/3
postgres=# VACUUM (PARALLEL 4, VERBOSE) pgbench_accounts;
INFO: vacuuming "public.pgbench_accounts"
INFO: launched 2 parallel vacuum workers for index vacuuming
(planned: 2)
...
...
VACUUM
5. Others
a) Modified catalogs: 13 Added, 5 Dropped, 3 changed
b) Data types: 64-bit transaction IDs…
c) Disk based hash aggregation
d) Backup manifests:with consistency checks.
e) libpq connection string:ssl_min_protocol_version, ssl_max_protocol_versionparameter
f) Column trigger:now executed on the subscription side.
Taiwan PostgreSQL User Group 322020/8/3
PostgreSQL 13 performs storage based hash aggregation if the hash table cannot be stored in work memory.
This feature can be controlled by the parameter enable_hashagg_disk (default ‘on’) and the hashagg_disk
(default ‘on’) and the parameter enable_groupingsets_hash_disk (default 'off') used in the GROUPING SETS
clause. In parameter enable_groupingsets_hash_disk (default 'off') used in the GROUPING SETS clause.
03. SQL Statement
Taiwan PostgreSQL User Group 332020/8/3
pg13
03. SQL Statement (1/3)
a) ALTER NO DEPENDS ON (for functions, indexes, materialized views, and triggers)
b) ALTER TABLE DROP EXPRESSION statement
c) ALTER VIEW
d) CREATE DATABASE
e) CREATE INDEX
Taiwan PostgreSQL User Group 342020/8/3
ALTER FUNCTION func1 DEPENDS ON EXTENSION cube ;
ALTER FUNCTION func1 NO DEPENDS ON EXTENSION cube ;
CREATE TABLE gen1(c1 INT, c2 INT, c3 INT GENERATED ALWAYS AS (c1 + c2) STORED) ;
ALTER TABLE gen1 ALTER COLUMN c3 DROP EXPRESSION IF EXISTS ;
ALTER VIEW view_name RENAME COLUMN old_name TO new_name ;
CREATE DATABASE database_name [[WITH] LOCALE [=] locale_name
CREA TE INDEX idx2_dedup ON data1(c3) WITH (deduplicate_items = on) ;
03. SQL Statement (2/3)
f) CREATE TABLE (added parameters)
Taiwan PostgreSQL User Group 352020/8/3
ALTER TABLE data1 SET (toast.vacuum_index_cleanup = OFF) ;
ALTER TABLE data1 SET (autovacuum_vacuum_insert_threshold = 10000) ;
03. SQL Statement (3/3)
g) INSERT OVERRIDING USER VALUE
h) JSON
• Allow Unicode escape
• Datetime method of jsonpath
i) MAX/MIN pg_lsn
j) ROW expressions
k) Distance operators (<->)
l) gen_random_uuid() ;
Taiwan PostgreSQL User Group 362020/8/3
04. Utilities
Taiwan PostgreSQL User Group 372020/8/3
pg13
04. Utilities (1/2)
a) dropdb
b) pg_basebackup
a) added manifest related parameters
b) added checksum related parameters
c) pg_dump
d) pg_verifybackup
• Manifest file version
• The checksum of the manifest file itself
• File size
• File checksum
• WAL file integrityWAL file integrity
Taiwan PostgreSQL User Group 382020/8/3
$ dropdb --force --echo demodb
$pg_dump –d demodb –-include-foreign-data=svr1
04. Utilities (2/2)
e) reindexdb
f) vacuumdb
Taiwan PostgreSQL User Group 392020/8/3
$ reindexdb --concurrently --jobs 2 postgres
reindexdb: warning: cannot reindex system catalogs concurrently,
skipping all
$vacuumdb --parallel=4 postgres
vacuumdb: vacuuming database "postgres"
Reference
• HPE Noriyoshi Shinoda https://www.hpe.com/jp/ja/servers/linux/technical/edlin.html
• EnterpriseDB
https://www.enterprisedb.com/postgres-tutorials/what-parallel-vacuum-postgresql-13
• HighGo
https://www.highgo.ca/2020/02/28/parallel-vacuum-in-upcoming-postgresql-13/
https://www.highgo.ca/2020/07/06/features-in-pg13-deduplication-in-b-tree-indexes/
• Severalnines
https://severalnines.com/database-blog/logical-replication-partitioning-postgresql-13
Taiwan PostgreSQL User Group 402020/8/3
Thank you.
PostgreSQL 13 New Features
@ COSCUP 2020
Taiwan PostgreSQL User Group
林宗禧 linjose@postgresql.tw
41
若有任何問題
歡迎聯絡下方Mail !!
歡迎加入台灣PostgreSQL使用者社群
FB 社團 :PostgreSQL.TW
FB 粉絲頁 : @pgsqlTaiwan
Website :http://postgresql.tw

More Related Content

What's hot

PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
Equnix Business Solutions
 
Postgres vision 2018: The Promise of zheap
Postgres vision 2018: The Promise of zheapPostgres vision 2018: The Promise of zheap
Postgres vision 2018: The Promise of zheap
EDB
 
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Continuent
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
PGConf APAC
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011
Jeff McKenna
 
Mapserver vs. geoserver
Mapserver vs. geoserverMapserver vs. geoserver
Mapserver vs. geoserver
鸣 饶
 
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff DavisDeep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Citus Data
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-features
Navneet Upneja
 
Presentation 12c grid_upgrade
Presentation 12c grid_upgradePresentation 12c grid_upgrade
Presentation 12c grid_upgrade
Jacques Kostic
 
Wait! What’s going on inside my database?
Wait! What’s going on inside my database?Wait! What’s going on inside my database?
Wait! What’s going on inside my database?
Jeremy Schneider
 
Oracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi ThreadedOracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi Threaded
Markus Flechtner
 
PGConf.ASIA 2019 Bali - Partitioning in PostgreSQL - Amit Langote
PGConf.ASIA 2019 Bali -  Partitioning in PostgreSQL - Amit LangotePGConf.ASIA 2019 Bali -  Partitioning in PostgreSQL - Amit Langote
PGConf.ASIA 2019 Bali - Partitioning in PostgreSQL - Amit Langote
Equnix Business Solutions
 
oracle 11G RAC Trianing Noida Delhi NCR
oracle 11G RAC Trianing Noida Delhi NCRoracle 11G RAC Trianing Noida Delhi NCR
oracle 11G RAC Trianing Noida Delhi NCR
Shri Prakash Pandey
 
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
 
Oracle dataguard overview
Oracle dataguard overviewOracle dataguard overview
Oracle dataguard overview
aguswahyudi09
 
12cR2 Single-Tenant: Multitenant Features for All Editions
12cR2 Single-Tenant: Multitenant Features for All Editions12cR2 Single-Tenant: Multitenant Features for All Editions
12cR2 Single-Tenant: Multitenant Features for All Editions
Franck Pachot
 
HeroLympics Eng V03 Henk Vd Valk
HeroLympics  Eng V03 Henk Vd ValkHeroLympics  Eng V03 Henk Vd Valk
HeroLympics Eng V03 Henk Vd Valk
hvdvalk
 
Postgres Toolkit
Postgres ToolkitPostgres Toolkit
Toro DB- Open-source, MongoDB-compatible database, built on top of PostgreSQL
Toro DB- Open-source, MongoDB-compatible database,  built on top of PostgreSQLToro DB- Open-source, MongoDB-compatible database,  built on top of PostgreSQL
Toro DB- Open-source, MongoDB-compatible database, built on top of PostgreSQL
InMobi Technology
 
Upgrade 11gR2 to 12cR1 Clusterware
Upgrade 11gR2 to 12cR1 ClusterwareUpgrade 11gR2 to 12cR1 Clusterware
Upgrade 11gR2 to 12cR1 Clusterware
Nikhil Kumar
 

What's hot (20)

PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
PGConf.ASIA 2019 Bali - Toward Implementing Incremental View Maintenance on P...
 
Postgres vision 2018: The Promise of zheap
Postgres vision 2018: The Promise of zheapPostgres vision 2018: The Promise of zheap
Postgres vision 2018: The Promise of zheap
 
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
Tungsten Use Case: How Gittigidiyor (a subsidiary of eBay) Replicates Data In...
 
PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs PostgreSQL WAL for DBAs
PostgreSQL WAL for DBAs
 
WMS Performance Shootout 2011
WMS Performance Shootout 2011WMS Performance Shootout 2011
WMS Performance Shootout 2011
 
Mapserver vs. geoserver
Mapserver vs. geoserverMapserver vs. geoserver
Mapserver vs. geoserver
 
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff DavisDeep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
Deep Postgres Extensions in Rust | PGCon 2019 | Jeff Davis
 
Oracle 12 c new-features
Oracle 12 c new-featuresOracle 12 c new-features
Oracle 12 c new-features
 
Presentation 12c grid_upgrade
Presentation 12c grid_upgradePresentation 12c grid_upgrade
Presentation 12c grid_upgrade
 
Wait! What’s going on inside my database?
Wait! What’s going on inside my database?Wait! What’s going on inside my database?
Wait! What’s going on inside my database?
 
Oracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi ThreadedOracle 12c Multi Process Multi Threaded
Oracle 12c Multi Process Multi Threaded
 
PGConf.ASIA 2019 Bali - Partitioning in PostgreSQL - Amit Langote
PGConf.ASIA 2019 Bali -  Partitioning in PostgreSQL - Amit LangotePGConf.ASIA 2019 Bali -  Partitioning in PostgreSQL - Amit Langote
PGConf.ASIA 2019 Bali - Partitioning in PostgreSQL - Amit Langote
 
oracle 11G RAC Trianing Noida Delhi NCR
oracle 11G RAC Trianing Noida Delhi NCRoracle 11G RAC Trianing Noida Delhi NCR
oracle 11G RAC Trianing Noida Delhi NCR
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
Oracle dataguard overview
Oracle dataguard overviewOracle dataguard overview
Oracle dataguard overview
 
12cR2 Single-Tenant: Multitenant Features for All Editions
12cR2 Single-Tenant: Multitenant Features for All Editions12cR2 Single-Tenant: Multitenant Features for All Editions
12cR2 Single-Tenant: Multitenant Features for All Editions
 
HeroLympics Eng V03 Henk Vd Valk
HeroLympics  Eng V03 Henk Vd ValkHeroLympics  Eng V03 Henk Vd Valk
HeroLympics Eng V03 Henk Vd Valk
 
Postgres Toolkit
Postgres ToolkitPostgres Toolkit
Postgres Toolkit
 
Toro DB- Open-source, MongoDB-compatible database, built on top of PostgreSQL
Toro DB- Open-source, MongoDB-compatible database,  built on top of PostgreSQLToro DB- Open-source, MongoDB-compatible database,  built on top of PostgreSQL
Toro DB- Open-source, MongoDB-compatible database, built on top of PostgreSQL
 
Upgrade 11gR2 to 12cR1 Clusterware
Upgrade 11gR2 to 12cR1 ClusterwareUpgrade 11gR2 to 12cR1 Clusterware
Upgrade 11gR2 to 12cR1 Clusterware
 

Similar to PostgreSQL 13 New Features

Complex stories about Sqooping PostgreSQL data
Complex stories about Sqooping PostgreSQL dataComplex stories about Sqooping PostgreSQL data
Complex stories about Sqooping PostgreSQL data
NTT DATA OSS Professional Services
 
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
José Lin
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
Jeremy Schneider
 
Percona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA'sPercona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA's
Karthik .P.R
 
Stress your DUT
Stress your DUTStress your DUT
Stress your DUT
Redge Technologies
 
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
PROIDEA
 
What's new in PostgreSQL 11 ?
What's new in PostgreSQL 11 ?What's new in PostgreSQL 11 ?
What's new in PostgreSQL 11 ?
José Lin
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN
Kohei KaiGai
 
Io 120404052713-phpapp01
Io 120404052713-phpapp01Io 120404052713-phpapp01
Io 120404052713-phpapp01
coxchen
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
Feng Yu
 
TechEvent PostgreSQL Best Practices
TechEvent PostgreSQL Best PracticesTechEvent PostgreSQL Best Practices
TechEvent PostgreSQL Best Practices
Trivadis
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
DataStax Academy
 
Jboss World 2011 Infinispan
Jboss World 2011 InfinispanJboss World 2011 Infinispan
Jboss World 2011 Infinispan
cbo_
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
Kohei KaiGai
 
Bruno Decraene - Improving network availability through the graceful shutdown...
Bruno Decraene - Improving network availability through the graceful shutdown...Bruno Decraene - Improving network availability through the graceful shutdown...
Bruno Decraene - Improving network availability through the graceful shutdown...
PROIDEA
 
11thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp0111thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp01
Karam Abuataya
 
11 Things About11g
11 Things About11g11 Things About11g
11 Things About11g
fcamachob
 
Reproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and NextflowReproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and Nextflow
inside-BigData.com
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
Dave Stokes
 
Postgre sql best_practices
Postgre sql best_practicesPostgre sql best_practices
Postgre sql best_practices
Emiliano Fusaglia
 

Similar to PostgreSQL 13 New Features (20)

Complex stories about Sqooping PostgreSQL data
Complex stories about Sqooping PostgreSQL dataComplex stories about Sqooping PostgreSQL data
Complex stories about Sqooping PostgreSQL data
 
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
2022 COSCUP - Let's speed up your PostgreSQL services!.pptx
 
String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?String Comparison Surprises: Did Postgres lose my data?
String Comparison Surprises: Did Postgres lose my data?
 
Percona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA'sPercona tool kit for MySQL DBA's
Percona tool kit for MySQL DBA's
 
Stress your DUT
Stress your DUTStress your DUT
Stress your DUT
 
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
PLNOG20 - Paweł Małachowski - Stress your DUT–wykorzystanie narzędzi open sou...
 
What's new in PostgreSQL 11 ?
What's new in PostgreSQL 11 ?What's new in PostgreSQL 11 ?
What's new in PostgreSQL 11 ?
 
20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN20180920_DBTS_PGStrom_EN
20180920_DBTS_PGStrom_EN
 
Io 120404052713-phpapp01
Io 120404052713-phpapp01Io 120404052713-phpapp01
Io 120404052713-phpapp01
 
了解IO协议栈
了解IO协议栈了解IO协议栈
了解IO协议栈
 
TechEvent PostgreSQL Best Practices
TechEvent PostgreSQL Best PracticesTechEvent PostgreSQL Best Practices
TechEvent PostgreSQL Best Practices
 
Apache Cassandra at Macys
Apache Cassandra at MacysApache Cassandra at Macys
Apache Cassandra at Macys
 
Jboss World 2011 Infinispan
Jboss World 2011 InfinispanJboss World 2011 Infinispan
Jboss World 2011 Infinispan
 
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database AnalyticsPL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
PL/CUDA - Fusion of HPC Grade Power with In-Database Analytics
 
Bruno Decraene - Improving network availability through the graceful shutdown...
Bruno Decraene - Improving network availability through the graceful shutdown...Bruno Decraene - Improving network availability through the graceful shutdown...
Bruno Decraene - Improving network availability through the graceful shutdown...
 
11thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp0111thingsabout11g 12659705398222 Phpapp01
11thingsabout11g 12659705398222 Phpapp01
 
11 Things About11g
11 Things About11g11 Things About11g
11 Things About11g
 
Reproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and NextflowReproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and Nextflow
 
Confoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New FeaturesConfoo 2021 -- MySQL New Features
Confoo 2021 -- MySQL New Features
 
Postgre sql best_practices
Postgre sql best_practicesPostgre sql best_practices
Postgre sql best_practices
 

Recently uploaded

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
Alpen-Adria-Universität
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
TIPNGVN2
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 

Recently uploaded (20)

Video Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the FutureVideo Streaming: Then, Now, and in the Future
Video Streaming: Then, Now, and in the Future
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Data structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdfData structures and Algorithms in Python.pdf
Data structures and Algorithms in Python.pdf
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 

PostgreSQL 13 New Features

  • 1. PostgreSQL 13 New Features Speaker: 林宗禧 @ COSCUP 2020 Taiwan PostgreSQL User Group 1
  • 2. About 林宗禧 • PostgreSQL愛好者、推廣者 • 以前: 開發FDW套件 (C, Python都有) • 後來: 到處整合PG的應用 • 推 Industry 4.0,讓業主不經意的導入 PG • 推 Smart City Solutions ,拿PG做基礎 • 業主反饋都很OK… • 因為PG本來就穩定好用 • 資料庫技術總是那在後面默默支持各系統 (但卻非常關鍵!!) 2020/8/3 2Taiwan PostgreSQL User Group
  • 3. Agenda 01. Overview 02. Architecture 1) Deduplication in B-Tree Indexes 2) Logical Replication Partitioning 3) Incremental Sort 4) Parallel vacuum 03. SQL Statement 04. Utilities 2020/8/3 3Taiwan PostgreSQL User Group
  • 4. 01. Overview Taiwan PostgreSQL User Group 42020/8/3 pg13
  • 5. Release timeline PostgreSQL 13 Beta 1 Released @ 2020-05-21 PostgreSQL 13 Beta 2 Released @ 2020-06-25 自PG 10開始,每年一次大版號更新: Taiwan PostgreSQL User Group 52020/8/3
  • 6. Amazon RDS 開始提供 PostgreSQL 13 Beta 1 https://aws.amazon.com/tw/about-aws/whats-new/2020/06/postgresql-13-beta-1-now-available-in-amazon-rds-database-preview-environment/ Taiwan PostgreSQL User Group 62020/8/3
  • 7. Amazon RDS 開始提供 PostgreSQL 13 Beta 1 https://aws.amazon.com/tw/about-aws/whats-new/2020/06/postgresql-13-beta-1-now-available-in-amazon-rds-database-preview-environment/ Taiwan PostgreSQL User Group 72020/8/3
  • 8. Amazon RDS 描述 PG 13 • PostgreSQL 13 擁有改善的功能和效能,例如 • 由 B 型樹狀結構索引更好地處理重複資料 • 新增分區功能的改善 • 加速資料排序的增量排序 • 使用 VACUUM 命令平行處理索引 • 更多監控 PostgreSQL 資料庫活動的方法 • 新的安全功能 Taiwan PostgreSQL User Group 82020/8/3
  • 9. EDB 13 Agenda • Performance benchmarking: Four years of going faster • Logical subscription for partitioned tables • Partition wise joins • Before row-level triggers • Parallel vacuum for indexes • Corruption checking: pg_catcheck • Improved security: libpq w. channel binding 9Taiwan PostgreSQL User Group2020/8/3
  • 10. HPE 新機能檢証結果(1/3) • HPE Noriyoshi Shinoda https://www.hpe.com/jp/ja/servers/linux/technical/edlin.html Taiwan PostgreSQL User Group 102020/8/3
  • 11. HPE 新機能檢証結果(2/3) Taiwan PostgreSQL User Group 112020/8/3 3.1. Architecture 3.1.1. Modified catalogs 3.1.2. Data types 3.1.3. Disk based hash aggregation 3.1.4. Incremental sort 3.1.5. Backup manifests 3.1.6. Partitioned table 3.1.7. Log output for Autovacuum 3.1.8. Wait events 3.1.9. libpq connection string 3.1.10. libpq functions 3.1.11. Hook 3.1.12. Column trigger 3.1.13. Local connection key 3.1.14. Trusted Extension 3.1.15. Replication slot 3.1.16. Text search 3.2. SQL statement 3.2.1. ALTER NO DEPENDS ON 3.2.2. ALTER STATISTICS SET STATISTICS 3.2.3. ALTER TABLE 3.2.4. ALTER TYPE 3.2.5. ALTER VIEW 3.2.6. CREATE DATABASE 3.2.7. CREATE INDEX 3.2.8. CREATE TABLE 3.2.9. CREATE TABLESPACE 3.2.10. DROP DATABASE FORCE 3.2.11. EXPLAIN ANALYZE 3.2.12. INSERT 3.2.13. JSON 3.2.14. MAX/MIN pg_lsn 3.2.15. ROW 3.2.16. SELECT FETCH FIRST WITH TIES 3.2.17. VACUUM PARALLEL 3.2.18. Operator <-> 3.2.19. Functions
  • 12. HPE 新機能檢証結果(3/3) Taiwan PostgreSQL User Group 122020/8/3 3.4. Utilities 3.4.1. dropdb 3.4.2. pg_basebackup 3.4.3. pg_dump 3.4.4. pg_rewind 3.4.5. pg_verifybackup 3.4.6. pg_waldump 3.4.7. psql 3.4.8. reindexdb 3.4.9. vacuumdb 3.4.10. Other 3.5. Contrib modules 3.5.1. adminpack 3.5.2. auto_explain 3.5.3. dict_int 3.5.4. ltree 3.5.5. pageinspect 3.5.6. pg_stat_statements 3.5.7. postgres_fdw 3.5.8. bool_plperl
  • 13. 02. Architecture Taiwan PostgreSQL User Group 132020/8/3 pg13
  • 14. 1) Deduplication in B-Tree Indexes Taiwan PostgreSQL User Group 142020/8/3 https://www.researchgate.net/figure/Overview-of-deduplication-processing_fig1_305801856 https://www.highgo.ca/2020/07/06/features-in-pg13-deduplication-in-b-tree-indexes/ Deduplication Implement Concept (general for files)
  • 15. 1) Deduplication in B-Tree Indexes 實測 (create table、insert 100萬筆、 create index) Taiwan PostgreSQL User Group 152020/8/3 postgres=# CREATE TABLE btree_dups AS (SELECT GENERATE_SERIES(1, 1000000)::BIGINT AS val); SELECT 1000000 postgres=# CREATE INDEX btree_idx ON btree_dups(val); CREATE INDEX postgres=# SELECT c.relname , c.relkind, pg_size_pretty(pg_relation_size(c.oid)) FROM pg_class c WHERE c.relname = 'btree_dups' OR c.oid IN ( SELECT i.indexrelid FROM pg_index i WHERE i.indrelid = 'btree_dups'::regclass ); relname | relkind | pg_size_pretty ------------+---------+---------------- btree_dups | r | 35 MB btree_idx | i | 21 MB (2 rows) postgres=# UPDATE btree_dups SET val = val + 1; UPDATE 1000000
  • 16. 1) Deduplication in B-Tree Indexes 差異比較 (效能) Taiwan PostgreSQL User Group 162020/8/3 -- 12.2 postgres=# EXPLAIN SELECT val FROM btree_dups; QUERY PLAN -------------------------------------- Seq Scan on btree_dups (cost=0.00..23275.00 rows=1000000 width=8) (1 row) Time: 2.415 ms postgres=# DO postgres-# $$BEGIN postgres$# PERFORM * FROM btree_dups; postgres$# END; postgres$# $$; DO Time: 190.101 ms -- 13 Beta 2 postgres=# EXPLAIN SELECT val FROM btree_dups; QUERY PLAN -------------------------------------- Seq Scan on btree_dups (cost=0.00..23274.00 rows=1000000 width=8) (1 row) Time: 2.221 ms postgres=# DO postgres-# $$BEGIN postgres$# PERFORM * FROM btree_dups; postgres$# END; postgres$# $$; DO Time: 174.843 ms
  • 17. 1) Deduplication in B-Tree Indexes 差異比較 (空間) Taiwan PostgreSQL User Group 172020/8/3 -- 12.2 relname | relkind | pg_size_pretty ------------+---------+--------------- - btree_dups | r | 104 MB btree_idx | i | 86 MB (2 rows) -- 13 Beta 2 relname | relkind | pg_size_pretty ------------+---------+--------------- - btree_dups | r | 104 MB btree_idx | i | 62 MB (2 rows)
  • 18. 2) Logical Replication Partitioning https://severalnines.com/database-blog/logical-replication-partitioning-postgresql-13 Taiwan PostgreSQL User Group 182020/8/3 No Partitioning Partitioned 新增 Partitioned Table 的 Logical Replication 功能
  • 19. 2) Logical Replication Partitioning Taiwan PostgreSQL User Group 192020/8/3 Now 支援Partitioning Past
  • 20. 2) Logical Replication Partitioning 差異比較 (SQL) Taiwan PostgreSQL User Group 202020/8/3 -- 12.2 CREATE PUBLICATION rep_part_pub FOR TABLE stock_sales WITH (publish_via_partition_root); ERROR: "stock_sales" is a partitioned table DETAIL: Adding partitioned tables to publications is not supported. HINT: You can add the table partitions individually. -- 13 Beta 2 CREATE PUBLICATION rep_part_pub FOR TABLE stock_sales WITH (publish_via_partition_root); CREATE SUBSCRIPTION rep_part_sub CONNECTION 'host=192.168.56.101 port=5432 user=rep_usr password=rep_pwd dbname=postgres' PUBLICATION rep_part_pub;
  • 21. 3) Incremental sort Taiwan PostgreSQL User Group 212020/8/3 新增 enable_incrementalsort 參數 -- 13 Beta, enable_incrementalsort=on postgres=# set enable_incrementalsort=on ; SET postgres=# SHOW enable_incrementalsort ; enable_incrementalsort ------------------------ on (1 row)
  • 22. 3) Incremental sort 實測 (建 Table, data, index) Taiwan PostgreSQL User Group 222020/8/3 -- CREATE CREATE TABLE t_is(a int4,b int4,ctime timestamp(6) without time zone); -- INSERT 2 times INSERT INTO t_is(a,b,ctime) SELECT n,round(random()*100000000), clock_timestamp() FROM generate_series(1,1000000) n; INSERT INTO t_is(a,b,ctime) SELECT n,round(random()*100000000), clock_timestamp() FROM generate_series(1,1000000) n; -- CREATE INDEX CREATE INDEX idx_t_is_a ON t_is USING BTREE(a); -- Check postgres=# SELECT * FROM t_is ORDER BY a,b LIMIT 10; a | b | ctime ---+----------+---------------------------- 1 | 60379526 | 2020-07-21 16:28:42.034869 1 | 73197294 | 2020-07-21 16:28:45.496297 2 | 943408 | 2020-07-21 16:28:45.496346 2 | 27584454 | 2020-07-21 16:28:42.036121 3 | 31616182 | 2020-07-21 16:28:45.496348 3 | 88997913 | 2020-07-21 16:28:42.036134 4 | 21557231 | 2020-07-21 16:28:45.49635 4 | 23206459 | 2020-07-21 16:28:42.036136 5 | 13268559 | 2020-07-21 16:28:45.496351 5 | 33672766 | 2020-07-21 16:28:42.036137 (10 rows) https://postgres.fun/20200721193000.html
  • 23. 3) Incremental sort 差異比較 (13版, 啟用incrementalsort) Taiwan PostgreSQL User Group 232020/8/3 -- 13 Beta, enable_incrementalsort=on postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10; QUERY PLAN ---------------------------------------------------------------------------- ------------------------------------------------------------- Limit (cost=0.51..1.16 rows=10 width=16) (actual time=0.042..0.044 rows=10 loops=1) -> Incremental Sort (cost=0.51..130115.72 rows=2000000 width=16) (actual time=0.041..0.042 rows=10 loops=1) Sort Key: a, b Presorted Key: a Full-sort Groups: 1 Sort Method: quicksort Average Memory: 25kB Peak Memory: 25kB -> Index Scan using idx_t_is_a on t_is (cost=0.43..58848.31 rows=2000000 width=16) (actual time=0.021..0.027 rows=11 loops=1) Planning Time: 0.106 ms Execution Time: 0.064 ms (8 rows)
  • 24. 3. Incremental sort 差異比較 (13版, 關閉incrementalsort) Taiwan PostgreSQL User Group 242020/8/3 -- 13 Beta, enable_incrementalsort=off postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10; QUERY PLAN ------------------------------------------------------------------------------------------- Limit (cost=38152.38..38153.55 rows=10 width=16) (actual time=157.108..157.112 rows=10 loops=1) -> Gather Merge (cost=38152.38..232610.33 rows=1666666 width=16) (actual time=157.106..159.975 rows=10 loops=1) Workers Planned: 2 Workers Launched: 2 -> Sort (cost=37152.36..39235.69 rows=833333 width=16) (actual time=145.993..145.993 rows=10 loops=3) Sort Key: a, b Sort Method: top-N heapsort Memory: 25kB Worker 0: Sort Method: top-N heapsort Memory: 25kB Worker 1: Sort Method: top-N heapsort Memory: 25kB -> Parallel Seq Scan on t_is (cost=0.00..19144.33 rows=833333 width=16) (actual time=0.067..68.815 rows=666667 loops=3) Planning Time: 0.144 ms Execution Time: 160.027 ms (12 rows)
  • 25. 3. Incremental sort 差異比較 (12版, 無incrementalsort功能) Taiwan PostgreSQL User Group 252020/8/3 -- 12 postgres=# EXPLAIN ANALYZE SELECT * FROM t_is ORDER BY a,b LIMIT 10; QUERY PLAN ---------------------------------------------------------------------------- Limit (cost=38152.38..38153.55 rows=10 width=16) (actual time=144.892..144.896 rows=10 loops=1) -> Gather Merge (cost=38152.38..232610.33 rows=1666666 width=16) (actual time=144.891..147.211 rows=10 loops=1) Workers Planned: 2 Workers Launched: 2 -> Sort (cost=37152.36..39235.69 rows=833333 width=16) (actual time=141.592..141.593 rows=8 loops=3) Sort Key: a, b Sort Method: top-N heapsort Memory: 25kB Worker 0: Sort Method: top-N heapsort Memory: 25kB Worker 1: Sort Method: top-N heapsort Memory: 25kB -> Parallel Seq Scan on t_is (cost=0.00..19144.33 rows=833333 width=16) (actual time=0.016..72.129 rows=666667 loops=3) Planning Time: 0.087 ms Execution Time: 147.247 ms (12 rows)
  • 26. 3. Incremental sort Taiwan PostgreSQL User Group 262020/8/3 差異比較 -- 13 Beta, enable_incrementalsort=on Execution Time: 0.064 ms -- 13 Beta, enable_incrementalsort=off Execution Time: 160.027 ms -- 12 no enable_incrementalsort parameter Execution Time: 147.247 ms
  • 27. 4. parallel vacuum performance 實測說明 BACKGROUND For testing the parallel vacuum performance we have constructed a scenario where vacuum is at the verge of freezing by executing 50 million (vacuum_freeze_min_age) transactions. We executed non-in place updates which will create huge bloat in the table as well as indexes . After this point, we have maintained the copy of the database and executed the vacuum with different numbers of workers on the same state of database and measured the execution time. OBSERVATION We have observed that when the database is in dire need of completing the vacuum the non- parallel vacuum took more than an hour to execute which we are able to complete in just 16 mins with parallel vacuum which is nearly 4 times faster. https://www.enterprisedb.com/postgres-tutorials/what-parallel-vacuum-postgresql-13 https://www.highgo.ca/2020/02/28/parallel-vacuum-in-upcoming-postgresql-13/ Taiwan PostgreSQL User Group 272020/8/3
  • 28. 4. parallel vacuum performance Taiwan PostgreSQL User Group 282020/8/3 Parameters for parallel vacuum Min_parallel_index_scan_size 512kB Max_parallel_maintenance_workers 8 Other Performance Parameters Shared_buffers 128GB Maintenance_work_mem 1GB 參數設定 建立Table CREATE TABLE pgbench_accounts ( aid bigint, bid bigint, abalance bigint, filler1 text DEFAULT md5(random()::text), filler2 text DEFAULT md5(random()::text), filler3 text DEFAULT md5(random()::text), filler4 text DEFAULT md5(random()::text), filler5 text DEFAULT md5(random()::text), filler6 text DEFAULT md5(random()::text), filler7 text DEFAULT md5(random()::text), filler8 text DEFAULT md5(random()::text), filler9 text DEFAULT md5(random()::text), filler10 text DEFAULT md5(random()::text), filler11 text DEFAULT md5(random()::text), filler12 text DEFAULT md5(random()::text) );
  • 29. 4. parallel vacuum performance 建立 DATA & INDEXES Taiwan PostgreSQL User Group 292020/8/3 INSERT INTO pgbench_accounts select i,i%10,0 FROM generate_series(1,100000000) as i; CREATE UNIQUE INDEX pgb_a_aid ON pgbench_accounts(aid); CREATE INDEX pgb_a_bid ON pgbench_accounts(bid); CREATE INDEX pgb_a_abalance ON pgbench_accounts(abalance); CREATE INDEX pgb_a_filler1 ON pgbench_accounts(filler1); CREATE INDEX pgb_a_filler2 ON pgbench_accounts(filler2); CREATE INDEX pgb_a_filler3 ON pgbench_accounts(filler3); CREATE INDEX pgb_a_filler4 ON pgbench_accounts(filler4); CREATE INDEX pgb_a_filler5 ON pgbench_accounts(filler5); CREATE INDEX pgb_a_filler6 ON pgbench_accounts(filler6); CREATE INDEX pgb_a_filler7 ON pgbench_accounts(filler7); CREATE INDEX pgb_a_filler8 ON pgbench_accounts(filler8); CREATE INDEX pgb_a_filler9 ON pgbench_accounts(filler9); CREATE INDEX pgb_a_filler10 ON pgbench_accounts(filler10); CREATE INDEX pgb_a_filler11 ON pgbench_accounts(filler11); CREATE INDEX pgb_a_filler12 ON pgbench_accounts(filler12);
  • 30. 4). parallel vacuum performance WORKLOAD Taiwan PostgreSQL User Group 302020/8/3 ./pgbench -c32 -j32 -t15000000 -M prepared -f script.sql postgres set aid random(1, 100000000) set bid random(1, 100000000) set delta random(-5000, 5000) BEGIN; UPDATE pgbench_accounts SET bid=:bid WHERE aid = :aid; END; SCRIPT
  • 31. 4). parallel vacuum performance Taiwan PostgreSQL User Group 312020/8/3 postgres=# VACUUM (PARALLEL 4, VERBOSE) pgbench_accounts; INFO: vacuuming "public.pgbench_accounts" INFO: launched 2 parallel vacuum workers for index vacuuming (planned: 2) ... ... VACUUM
  • 32. 5. Others a) Modified catalogs: 13 Added, 5 Dropped, 3 changed b) Data types: 64-bit transaction IDs… c) Disk based hash aggregation d) Backup manifests:with consistency checks. e) libpq connection string:ssl_min_protocol_version, ssl_max_protocol_versionparameter f) Column trigger:now executed on the subscription side. Taiwan PostgreSQL User Group 322020/8/3 PostgreSQL 13 performs storage based hash aggregation if the hash table cannot be stored in work memory. This feature can be controlled by the parameter enable_hashagg_disk (default ‘on’) and the hashagg_disk (default ‘on’) and the parameter enable_groupingsets_hash_disk (default 'off') used in the GROUPING SETS clause. In parameter enable_groupingsets_hash_disk (default 'off') used in the GROUPING SETS clause.
  • 33. 03. SQL Statement Taiwan PostgreSQL User Group 332020/8/3 pg13
  • 34. 03. SQL Statement (1/3) a) ALTER NO DEPENDS ON (for functions, indexes, materialized views, and triggers) b) ALTER TABLE DROP EXPRESSION statement c) ALTER VIEW d) CREATE DATABASE e) CREATE INDEX Taiwan PostgreSQL User Group 342020/8/3 ALTER FUNCTION func1 DEPENDS ON EXTENSION cube ; ALTER FUNCTION func1 NO DEPENDS ON EXTENSION cube ; CREATE TABLE gen1(c1 INT, c2 INT, c3 INT GENERATED ALWAYS AS (c1 + c2) STORED) ; ALTER TABLE gen1 ALTER COLUMN c3 DROP EXPRESSION IF EXISTS ; ALTER VIEW view_name RENAME COLUMN old_name TO new_name ; CREATE DATABASE database_name [[WITH] LOCALE [=] locale_name CREA TE INDEX idx2_dedup ON data1(c3) WITH (deduplicate_items = on) ;
  • 35. 03. SQL Statement (2/3) f) CREATE TABLE (added parameters) Taiwan PostgreSQL User Group 352020/8/3 ALTER TABLE data1 SET (toast.vacuum_index_cleanup = OFF) ; ALTER TABLE data1 SET (autovacuum_vacuum_insert_threshold = 10000) ;
  • 36. 03. SQL Statement (3/3) g) INSERT OVERRIDING USER VALUE h) JSON • Allow Unicode escape • Datetime method of jsonpath i) MAX/MIN pg_lsn j) ROW expressions k) Distance operators (<->) l) gen_random_uuid() ; Taiwan PostgreSQL User Group 362020/8/3
  • 37. 04. Utilities Taiwan PostgreSQL User Group 372020/8/3 pg13
  • 38. 04. Utilities (1/2) a) dropdb b) pg_basebackup a) added manifest related parameters b) added checksum related parameters c) pg_dump d) pg_verifybackup • Manifest file version • The checksum of the manifest file itself • File size • File checksum • WAL file integrityWAL file integrity Taiwan PostgreSQL User Group 382020/8/3 $ dropdb --force --echo demodb $pg_dump –d demodb –-include-foreign-data=svr1
  • 39. 04. Utilities (2/2) e) reindexdb f) vacuumdb Taiwan PostgreSQL User Group 392020/8/3 $ reindexdb --concurrently --jobs 2 postgres reindexdb: warning: cannot reindex system catalogs concurrently, skipping all $vacuumdb --parallel=4 postgres vacuumdb: vacuuming database "postgres"
  • 40. Reference • HPE Noriyoshi Shinoda https://www.hpe.com/jp/ja/servers/linux/technical/edlin.html • EnterpriseDB https://www.enterprisedb.com/postgres-tutorials/what-parallel-vacuum-postgresql-13 • HighGo https://www.highgo.ca/2020/02/28/parallel-vacuum-in-upcoming-postgresql-13/ https://www.highgo.ca/2020/07/06/features-in-pg13-deduplication-in-b-tree-indexes/ • Severalnines https://severalnines.com/database-blog/logical-replication-partitioning-postgresql-13 Taiwan PostgreSQL User Group 402020/8/3
  • 41. Thank you. PostgreSQL 13 New Features @ COSCUP 2020 Taiwan PostgreSQL User Group 林宗禧 linjose@postgresql.tw 41 若有任何問題 歡迎聯絡下方Mail !! 歡迎加入台灣PostgreSQL使用者社群 FB 社團 :PostgreSQL.TW FB 粉絲頁 : @pgsqlTaiwan Website :http://postgresql.tw

Editor's Notes

  1. 2. New Features Summary 2.1. Improve analytic query performance 2.2. Improve reliability 2.3. Improved maintainability 2.4. Preparing for future new features 2.5. Incompatibility 2.5.1. configure 2.5.2. createuser 2.5.3. CSV log format 2.5.4. Extension 2.5.5. opaque 2.5.6. Require version of OpenSSL 2.5.7. pg_regress 2.5.8. psql default prompt 2.5.9. to_date/to_timestamp 2.5.10. Promotion during recovery 2.5.11. Partition key 2.5.12. Wait Event 2.5.13. SIMILAR TO ESCAPE 3.3. Configuration parameters 3.3.1. Added parameters 3.3.2. Changed parameters 3.3.3. Parameters with default values changed 3.3.4. Removed parameter