SlideShare a Scribd company logo
1 of 32
Download to read offline
Copyright©2019 NTT Corp. All Rights Reserved.
PostgreSQL 12の話
NTT OSSセンタ
澤田 雅彦
Middlewares Deep Talks @AWS Loft Tokyo
2Copyright©2019 NTT Corp. All Rights Reserved.
約170個の新機能(リリースノートより)
正式版は今年秋頃にリリース予定
最近の新バージョンと目玉機能
9.6 : パラレルクエリ、Vacuum改善
10 : 宣言的テーブルパーティショニング、ロジカルレプリケーション
11 : テーブルパーティショニングの強化、パラレルクエリの強化、SQLスト
アド・プロシージャ
PostgreSQL 12 betaが5/23にリリース
3Copyright©2019 NTT Corp. All Rights Reserved.
• テーブル・パーティショニングの改善
• CTE Inlining
• Pluggable Storage Engine
• Chained Transaction
• JSON/Path
• Generated Columns (STOREDのみ)
• 拡張統計情報の強化(MCVリスト)
• REINDEX CONCURRENTLY
• CREATE INDEX、REINDEX、VACUUM FULL、CLUSTERのモ
ニタリング
新機能いろいろ(今日は下線の機能を紹介)
4Copyright©2019 NTT Corp. All Rights Reserved.
PostgreSQL 12でもテーブル・パーティショニングの改善は多い(全
体の約15%、PG11もほぼ同じだった)
• パーティション・プルーニングの性能改善
• パーティション・テーブルへの外部キー制約
• パーティション・テーブルへのCOPYの性能改善
• ATTACH PARTITIONのロックが弱くなった
• AccessExclusiveLock -> ShareUpdateExclusiveLock
• pg_partition_root(), pg_partition_ancestors(), pg_partition_root()
• パーティション境界に式を指定(テーブル作成時に評価)
テーブル・パーティショニングの改善
5Copyright©2019 NTT Corp. All Rights Reserved.
パーティション・プルーニングの問題
PostgreSQL11の新機能紹介より
PostgreSQL10に
比べて早くなっている。
けど、まだプラン生成
時間が子テーブル数に
比例して伸びている
6Copyright©2019 NTT Corp. All Rights Reserved.
• これまで、プランナは内部で使用するテーブルの管理情報(
RangeTblEntry, RelOptInfo)を全ての子テーブルについて作成してた。
• PG12では、プルーニング情報を求めた後に興味のある子テーブルだけの
管理情報を作成するようにした。
• 数千規模の子テーブルがある場合に有用
子テーブルが多い時のプラン生成時間が大幅に改善
0
20
40
60
80
100
120
50 100 500 1000 2000 5000 10000
実行計画作成時間(MS)
Range Partitioning
PG12 PG11 PG10
7Copyright©2019 NTT Corp. All Rights Reserved.
• WITH句で指定したクエリ結果を一時テーブルみたいな形で扱うこと
ができる
• 複雑なSQLをより単純な部品に分解することで、SQLを読みやすくできる
• 再帰SQLのときにも使う
• PostgreSQLの実装では常にCTEの結果を一時テーブルとして持つ
• work_memを使用
• クエリの意味は同じでもsubselectを使った時とは実行計画を異なる
• MySQLも8.0からサポート
Common Table Expression (CTE)
8Copyright©2019 NTT Corp. All Rights Reserved.
-- CTEを利用(PG11まで)
=# EXPLAIN
WITH test AS (SELECT * FROM a WHERE c = 1)
SELECT * FROM test WHERE d = 1;
QUERY PLAN
------------------------------------------------------------------------
CTE Scan on test (cost=8.17..8.20 rows=1 width=8)
Filter: (d = 1)
CTE test
-> Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8)
Index Cond: (c = 1)
(5 rows)
CTEとSubSelect - PostgreSQL 11まで -
-- SubSelectを利用
=# EXPLAIN
SELECT * FROM (SELECT * FROM a WHERE c = 1 and d = 1) as test;
QUERY PLAN
----------------------------------------------------------------
Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8)
Index Cond: (c = 1)
Filter: (d = 1)
(3 rows)
9Copyright©2019 NTT Corp. All Rights Reserved.
-- CTEを利用(PG12)
=# EXPLAIN
WITH test AS (SELECT * FROM a WHERE c = 1)
SELECT * FROM test WHERE d = 1;
QUERY PLAN
----------------------------------------------------------------------------------
Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8)
Index Cond: (c = 1)
Filter: (d = 1)
(3 rows)
CTEとSubSelect - PostgreSQL 12から -
-- SubSelectを利用
=# EXPLAIN
SELECT * FROM (SELECT * FROM a WHERE c = 1 and d = 1) as test;
QUERY PLAN
----------------------------------------------------------------
Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8)
Index Cond: (c = 1)
Filter: (d = 1)
(3 rows)
10Copyright©2019 NTT Corp. All Rights Reserved.
• デフォルトでCTEのクエリを展開するようになった(CTE inlining)
• 他のRDBMSもこっちの動作がデフォルトになっていると思う
• ただし再帰SQL、SELECT以外、volatile関数が入っている場合は強制的
にMATERIALIZE(一時テーブル的な扱い)される
• 明示的にMATERIALIZED句をつけると、PostgeSQL10までと同じ動
作になる
• WITH句を使って結合順序を変えたり、SQLチューニングする時は
MATERIALIZED句を使っても良さそう
PostgreSQL 12以降のCTE
=# EXPLAIN
WITH test AS MATERIALIZED (SELECT * FROM a WHERE c = 1)
SELECT * FROM test WHERE d = 1;
QUERY PLAN
------------------------------------------------------------------------
CTE Scan on test (cost=8.17..8.20 rows=1 width=8)
Filter: (d = 1)
CTE test
-> Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8)
Index Cond: (c = 1)
(5 rows)
11Copyright©2019 NTT Corp. All Rights Reserved.
• 独自のテーブル(Access Method)を定義、使用できる
ようになった
• これまではインデックスでは可能だった
• 夢が広がる機能
• 例えば、
• 追記型以外を採用したテーブル
• 列指向テーブル
• インメモリテーブル
• 他のDBとの連携(RocksDB + PostgreSQL = PgRocks?)
Pluggable Storage Engine(Table AM)
12Copyright©2019 NTT Corp. All Rights Reserved.
Table AMの概要
https://anarazel.de/talks/2018-10-25-pgconfeu-pluggable-storage/pluggable.pdf
13Copyright©2019 NTT Corp. All Rights Reserved.
• Heapのみ
• 従来のテーブル
• PostgreSQL 12では、インタフェースが切られただけで
、新しい種類のテーブルは提供されていない
• 新しい種類のテーブルはPostgreSQL 13以降
サポート中のAccess Method
14Copyright©2019 NTT Corp. All Rights Reserved.
• ZHeap (EnterpriseDB社)
• 行指向
• UNDOログ
• タプルヘッダが小さい(Heapに比べて)
• ZedStore (Pivotal社)
• 列指向
• UNDOログ
• 圧縮
• 分析用途等に適しているが、最大限効果を出すためには
Optimizer、Executorの改良も必要
• In-memory storage
どんなAccess Methodが今後入るか?
15Copyright©2019 NTT Corp. All Rights Reserved.
• UNDOログを利用
• 古いタプルはすべてUNDO領域に退避
• Commitなら退避した古いタプルを消す、Rollbackならもとに戻す
• In-place update
• VACUUMがいらない
• タプルヘッダが従来のテーブルよりも小さい
• 25 bytes -> 5 bytes
• MVCCに必要なデータはUNDOログにある
• ソースは公開されているので試してみるのもあり
• https://github.com/EnterpriseDB/zheap
ZHeap
16Copyright©2019 NTT Corp. All Rights Reserved.
目的は異なるが機能性は一部重複している
• 目的の違い
• FDWは外部データとの連携が目的
• SQL標準にあるSQL/MEDの実装系
• Table AMはPostgreSQLのストレージ層の切り出し
• 機能の違い
• FDWでは、実行計画の作成(外部サーバが担当する部分の切り
出し等)、外部サーバからのデータ取得を担当
• GetForeignPaths、GetForeignJoinPath, ExecForeignScanなど
• Table AMは、Executor⇔ストレージのI/Fのみ(今後変わる可能
性あり)
• scan_getnextslot, index_fetch_begin, scan_bitmap_next_block,
tuple_insert, tuple_delete, scan_bitmapなど
• FDWではDDLに対応していない
Foreign Data Wrapperとの違い
17Copyright©2019 NTT Corp. All Rights Reserved.
COMMIT [ AND [NO] CHAIN ]
ROLLBACK [ AND [NO] CHAIN ]
• 「AND CHAIN」を指定すると、トランザクション分離レベル、
READ_WRITE/READ_ONLY、DEFERRABLEが引き継がれて、新しいト
ランザクションが開始される
• SQL標準の機能(“Chained Transaction”)
• Stored Procedure内でトランザクションの設定を変えて頻繁にコミ
ットをする時に便利
• MySQLもサポートしてる
Chained Transaction
18Copyright©2019 NTT Corp. All Rights Reserved.
=# SHOW transaction_isolation ; --デフォルトはread committed
transaction_isolation
-----------------------
read committed
(1 row)
=# BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE ; -- serializableでトランザクションを開始
BEGIN
=# SHOW transaction_isolation ; -- serializableになっていることを確認
transaction_isolation
-----------------------
serializable
(1 row)
=# COMMIT AND CHAIN; -- AND CHAINを指定してCOMMIT
COMMIT
=# SHOW transaction_isolation ; -- トランザクション分離レベルが引き継がれてserializableのまま
transaction_isolation
-----------------------
serializable
(1 row)
=# COMMIT; -- 普通のCOMMIT
COMMIT
=# SHOW transaction_isolation ; -- read committedに戻っている
transaction_isolation
-----------------------
read committed
(1 row)
実行例
19Copyright©2019 NTT Corp. All Rights Reserved.
• CHAINする前後のトランザクションに特別な関係性はない
• いくつかの設定が引き継がれるだけ
• Jim Grayのトランザクション本では、Chained Transactionはカーソルを開いた
ままにすると解説している
注意点
Transaction Processing: Concepts and
Techniques, Chained Transactions(P193)
20Copyright©2019 NTT Corp. All Rights Reserved.
• XPathのJSON版
• JSONデータから特定の部分を指定し、抽出するための
構文(言語)
• jsonb型のデータに対してのみ利用可能
• json型には対応していない
• SELECT jsonb_path_query(event_jb, ‘$.event.speakers[*]’)
SQL/JSON path
21Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
22Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.name
23Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.speakers
24Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.speakers[1]
25Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.speakers[1].title
26Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.DDTL.*
27Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.speakers[*] ? (@.name = “yoku0825”)
28Copyright©2019 NTT Corp. All Rights Reserved.
{ "event": {
"name": "Middleware Deep Talks",
"speakers": [
{ "name": "yoku0825",
"title": "ぼくらが8.0に至ったみちのり(踏破)"
},
{ "name": "澤田雅彦",
"title": "PostgreSQL 12の話"
},
{ "name": "Jun Ohtani",
"title": "What''s new Elastic Stack 7.0?"
},
{ "name": "星井祥吾",
"title": "Apache Cassandraの特性と自動化運用"
},
{ "name": "Noritaka Sekiyama",
"title": "S3整合性モデルとHadoop/Sparkの話"
}
],
"DDTL": {
"date" : "2019-05-23",
"time" : "18:00",
"place" : "AWS Loft Tokyo"
}
}
}
Query : $.event.speakers[*] ? (@.name start with “澤田”)
29Copyright©2019 NTT Corp. All Rights Reserved.
• PostgreSQL 12は今秋リリース予定
• 例年5月にBeta、7,8月くらいにRCで9月正式リリース
• リリースノートは公開されているので、追加された機能
を確認できます
• PostgreSQL公式ドキュメント(英語)にあります
• 正式リリースされるバージョンと大きく変わることはないはず
• 来週はPGCon@Ottawaが開催されます
最後に
30Copyright©2019 NTT Corp. All Rights Reserved.
Vacuum、Replication slotでいくつか機能開発をしました
• インデックスのVacuumをスキップする機能
• Vacuumの高速化(Vacuum処理時間の大半はインデックスの
Vacuumなので、それをスキップできるようにした)
• Replication Slotをコピーする機能
• Logical Replicationやバックアップにも役に立ちます
その他、分散Tx機能(Atomic Commit)、透過的暗号化機能
(TDE)にも取り組んでいるので、興味があれば話しましょ
う!
YOUはなにかコントリビュートしてないの?
31Copyright©2019 NTT Corp. All Rights Reserved.
• JSONPath - Xpath for JSON
• https://goessner.net/articles/JsonPath/
• zheap: less bloat, fewer writes, and just plain smaller
• https://www.pgcon.org/2018/schedule/attachments/501_zheap-
a-new-storage-format-postgresql-5.pdf
• PostgreSQL 12
• http://www.sai.msu.su/~megera/postgres/talks/pg12-stachka-
2019.pdf
• Pluggable Storage in PostgreSQL
• https://anarazel.de/talks/2018-10-25-pgconfeu-pluggable-
storage/pluggable.pdf
参考資料
32Copyright©2019 NTT Corp. All Rights Reserved.
Thank you

More Related Content

What's hot

[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...Insight Technology, Inc.
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介Masahiko Sawada
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...Insight Technology, Inc.
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0Kohei KaiGai
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCacheKohei KaiGai
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速するKohei KaiGai
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望Kohei KaiGai
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_FdwKohei KaiGai
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...Insight Technology, Inc.
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャKohei KaiGai
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_BetaKohei KaiGai
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)NTT DATA Technology & Innovation
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.JapanKohei KaiGai
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDBKohei KaiGai
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoShigeru Hanada
 
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...Insight Technology, Inc.
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】Kohei KaiGai
 

What's hot (20)

[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介PostgreSQL 9.6 新機能紹介
PostgreSQL 9.6 新機能紹介
 
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
[db tech showcase Tokyo 2017] A15: レプリケーションを使用したデータ分析基盤構築のキモ(事例)by 株式会社インサイトテ...
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
20210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.020210731_OSC_Kyoto_PGStrom3.0
20210731_OSC_Kyoto_PGStrom3.0
 
20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache20210511_PGStrom_GpuCache
20210511_PGStrom_GpuCache
 
(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する(JP) GPGPUがPostgreSQLを加速する
(JP) GPGPUがPostgreSQLを加速する
 
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望TPC-DSから学ぶPostgreSQLの弱点と今後の展望
TPC-DSから学ぶPostgreSQLの弱点と今後の展望
 
20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw20190314 PGStrom Arrow_Fdw
20190314 PGStrom Arrow_Fdw
 
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
[db tech showcase Tokyo 2017] D15: ビッグデータ x 機械学習の高速分析をVerticaで実現!by ヒューレット・パッ...
 
並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ並列クエリを実行するPostgreSQLのアーキテクチャ
並列クエリを実行するPostgreSQLのアーキテクチャ
 
20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta20190926_Try_RHEL8_NVMEoF_Beta
20190926_Try_RHEL8_NVMEoF_Beta
 
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
 
20191115-PGconf.Japan
20191115-PGconf.Japan20191115-PGconf.Japan
20191115-PGconf.Japan
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB20171212_GTCJapan_InceptionSummt_HeteroDB
20171212_GTCJapan_InceptionSummt_HeteroDB
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
 
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
[db tech showcase Tokyo 2017] B14: 4年連続No.1リーダー評価のストレージでDBクローンするとどんな感じ?瞬時のクロー...
 
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
SSDとGPUがPostgreSQLを加速する【OSC.Enterprise】
 

Similar to PostgreSQL 12の話

GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]Kohei KaiGai
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...Insight Technology, Inc.
 
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 AnalyticsKohei KaiGai
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_TokyoKohei KaiGai
 
Microsoft Azure SQLマネージド インスタンスのソースとしての利用
Microsoft Azure SQLマネージド インスタンスのソースとしての利用Microsoft Azure SQLマネージド インスタンスのソースとしての利用
Microsoft Azure SQLマネージド インスタンスのソースとしての利用QlikPresalesJapan
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]Hideo Takagi
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~Naoki (Neo) SATO
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...NTT DATA Technology & Innovation
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...Insight Technology, Inc.
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Masayuki Ozawa
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Hiroshi Matsumoto
 
SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)Kohei KaiGai
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)日本マイクロソフト株式会社
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Sotaro Kimura
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014Shigeru Hanada
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationNoriyoshi Shinoda
 

Similar to PostgreSQL 12の話 (20)

GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
 
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
[db tech showcase Tokyo 2018] #dbts2018 #D34 『サポートのトップエンジニアが語る - ワンランク上のStats...
 
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
 
PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介PostgreSQL 9.5 新機能紹介
PostgreSQL 9.5 新機能紹介
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo20191211_Apache_Arrow_Meetup_Tokyo
20191211_Apache_Arrow_Meetup_Tokyo
 
Microsoft Azure SQLマネージド インスタンスのソースとしての利用
Microsoft Azure SQLマネージド インスタンスのソースとしての利用Microsoft Azure SQLマネージド インスタンスのソースとしての利用
Microsoft Azure SQLマネージド インスタンスのソースとしての利用
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
【ウェブ セミナー】AI / アナリティクスを支えるビッグデータ基盤 Azure Data Lake [実践編]
 
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
 
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
 
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機...
 
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
Linux 対応だけじゃない!! sql server 2017 こんな機能が追加されています。
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630Azure Stack 受け入れ準備_20180630
Azure Stack 受け入れ準備_20180630
 
SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)SQL+GPU+SSD=∞ (Japanese)
SQL+GPU+SSD=∞ (Japanese)
 
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
【de:code 2020】 Azure Synapse Analytics 技術編 ~ 最新の統合分析プラットフォームによる新しい価値の創出(前編)
 
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
Hadoop基盤上のETL構築実践例 ~多様なデータをどう扱う?~
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
 
PostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU CollationPostgreSQL Unconference #5 ICU Collation
PostgreSQL Unconference #5 ICU Collation
 

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
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLMasahiko 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
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLMasahiko Sawada
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than everMasahiko Sawada
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウトMasahiko Sawada
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~Masahiko Sawada
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and FutureMasahiko Sawada
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorMasahiko Sawada
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索Masahiko Sawada
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことMasahiko Sawada
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundMasahiko Sawada
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題Masahiko Sawada
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールMasahiko Sawada
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理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 開発最新情報
 
Transparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQLTransparent Data Encryption in PostgreSQL
Transparent Data Encryption in PostgreSQL
 
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...
 
Bloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQLBloat and Fragmentation in PostgreSQL
Bloat and Fragmentation in PostgreSQL
 
Vacuum more efficient than ever
Vacuum more efficient than everVacuum more efficient than ever
Vacuum more efficient than ever
 
Parallel Vacuum
Parallel VacuumParallel Vacuum
Parallel Vacuum
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
OSS 開発ってどうやっているの? ~ PostgreSQL の現場から~
 
FDW-based Sharding Update and Future
FDW-based Sharding Update and FutureFDW-based Sharding Update and Future
FDW-based Sharding Update and Future
 
What’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributorWhat’s new in 9.6, by PostgreSQL contributor
What’s new in 9.6, by PostgreSQL contributor
 
pg_bigmと類似度検索
pg_bigmと類似度検索pg_bigmと類似度検索
pg_bigmと類似度検索
 
pg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいことpg_bigmを触り始めた人に伝えたいこと
pg_bigmを触り始めた人に伝えたいこと
 
Introduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparoundIntroduction VAUUM, Freezing, XID wraparound
Introduction VAUUM, Freezing, XID wraparound
 
XID周回問題に潜む別の問題
XID周回問題に潜む別の問題XID周回問題に潜む別の問題
XID周回問題に潜む別の問題
 
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツールPostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理Bgworkerで簡易クラスタ管理
Bgworkerで簡易クラスタ管理
 

PostgreSQL 12の話

  • 1. Copyright©2019 NTT Corp. All Rights Reserved. PostgreSQL 12の話 NTT OSSセンタ 澤田 雅彦 Middlewares Deep Talks @AWS Loft Tokyo
  • 2. 2Copyright©2019 NTT Corp. All Rights Reserved. 約170個の新機能(リリースノートより) 正式版は今年秋頃にリリース予定 最近の新バージョンと目玉機能 9.6 : パラレルクエリ、Vacuum改善 10 : 宣言的テーブルパーティショニング、ロジカルレプリケーション 11 : テーブルパーティショニングの強化、パラレルクエリの強化、SQLスト アド・プロシージャ PostgreSQL 12 betaが5/23にリリース
  • 3. 3Copyright©2019 NTT Corp. All Rights Reserved. • テーブル・パーティショニングの改善 • CTE Inlining • Pluggable Storage Engine • Chained Transaction • JSON/Path • Generated Columns (STOREDのみ) • 拡張統計情報の強化(MCVリスト) • REINDEX CONCURRENTLY • CREATE INDEX、REINDEX、VACUUM FULL、CLUSTERのモ ニタリング 新機能いろいろ(今日は下線の機能を紹介)
  • 4. 4Copyright©2019 NTT Corp. All Rights Reserved. PostgreSQL 12でもテーブル・パーティショニングの改善は多い(全 体の約15%、PG11もほぼ同じだった) • パーティション・プルーニングの性能改善 • パーティション・テーブルへの外部キー制約 • パーティション・テーブルへのCOPYの性能改善 • ATTACH PARTITIONのロックが弱くなった • AccessExclusiveLock -> ShareUpdateExclusiveLock • pg_partition_root(), pg_partition_ancestors(), pg_partition_root() • パーティション境界に式を指定(テーブル作成時に評価) テーブル・パーティショニングの改善
  • 5. 5Copyright©2019 NTT Corp. All Rights Reserved. パーティション・プルーニングの問題 PostgreSQL11の新機能紹介より PostgreSQL10に 比べて早くなっている。 けど、まだプラン生成 時間が子テーブル数に 比例して伸びている
  • 6. 6Copyright©2019 NTT Corp. All Rights Reserved. • これまで、プランナは内部で使用するテーブルの管理情報( RangeTblEntry, RelOptInfo)を全ての子テーブルについて作成してた。 • PG12では、プルーニング情報を求めた後に興味のある子テーブルだけの 管理情報を作成するようにした。 • 数千規模の子テーブルがある場合に有用 子テーブルが多い時のプラン生成時間が大幅に改善 0 20 40 60 80 100 120 50 100 500 1000 2000 5000 10000 実行計画作成時間(MS) Range Partitioning PG12 PG11 PG10
  • 7. 7Copyright©2019 NTT Corp. All Rights Reserved. • WITH句で指定したクエリ結果を一時テーブルみたいな形で扱うこと ができる • 複雑なSQLをより単純な部品に分解することで、SQLを読みやすくできる • 再帰SQLのときにも使う • PostgreSQLの実装では常にCTEの結果を一時テーブルとして持つ • work_memを使用 • クエリの意味は同じでもsubselectを使った時とは実行計画を異なる • MySQLも8.0からサポート Common Table Expression (CTE)
  • 8. 8Copyright©2019 NTT Corp. All Rights Reserved. -- CTEを利用(PG11まで) =# EXPLAIN WITH test AS (SELECT * FROM a WHERE c = 1) SELECT * FROM test WHERE d = 1; QUERY PLAN ------------------------------------------------------------------------ CTE Scan on test (cost=8.17..8.20 rows=1 width=8) Filter: (d = 1) CTE test -> Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8) Index Cond: (c = 1) (5 rows) CTEとSubSelect - PostgreSQL 11まで - -- SubSelectを利用 =# EXPLAIN SELECT * FROM (SELECT * FROM a WHERE c = 1 and d = 1) as test; QUERY PLAN ---------------------------------------------------------------- Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8) Index Cond: (c = 1) Filter: (d = 1) (3 rows)
  • 9. 9Copyright©2019 NTT Corp. All Rights Reserved. -- CTEを利用(PG12) =# EXPLAIN WITH test AS (SELECT * FROM a WHERE c = 1) SELECT * FROM test WHERE d = 1; QUERY PLAN ---------------------------------------------------------------------------------- Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8) Index Cond: (c = 1) Filter: (d = 1) (3 rows) CTEとSubSelect - PostgreSQL 12から - -- SubSelectを利用 =# EXPLAIN SELECT * FROM (SELECT * FROM a WHERE c = 1 and d = 1) as test; QUERY PLAN ---------------------------------------------------------------- Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8) Index Cond: (c = 1) Filter: (d = 1) (3 rows)
  • 10. 10Copyright©2019 NTT Corp. All Rights Reserved. • デフォルトでCTEのクエリを展開するようになった(CTE inlining) • 他のRDBMSもこっちの動作がデフォルトになっていると思う • ただし再帰SQL、SELECT以外、volatile関数が入っている場合は強制的 にMATERIALIZE(一時テーブル的な扱い)される • 明示的にMATERIALIZED句をつけると、PostgeSQL10までと同じ動 作になる • WITH句を使って結合順序を変えたり、SQLチューニングする時は MATERIALIZED句を使っても良さそう PostgreSQL 12以降のCTE =# EXPLAIN WITH test AS MATERIALIZED (SELECT * FROM a WHERE c = 1) SELECT * FROM test WHERE d = 1; QUERY PLAN ------------------------------------------------------------------------ CTE Scan on test (cost=8.17..8.20 rows=1 width=8) Filter: (d = 1) CTE test -> Index Scan using a_pkey on a (cost=0.15..8.17 rows=1 width=8) Index Cond: (c = 1) (5 rows)
  • 11. 11Copyright©2019 NTT Corp. All Rights Reserved. • 独自のテーブル(Access Method)を定義、使用できる ようになった • これまではインデックスでは可能だった • 夢が広がる機能 • 例えば、 • 追記型以外を採用したテーブル • 列指向テーブル • インメモリテーブル • 他のDBとの連携(RocksDB + PostgreSQL = PgRocks?) Pluggable Storage Engine(Table AM)
  • 12. 12Copyright©2019 NTT Corp. All Rights Reserved. Table AMの概要 https://anarazel.de/talks/2018-10-25-pgconfeu-pluggable-storage/pluggable.pdf
  • 13. 13Copyright©2019 NTT Corp. All Rights Reserved. • Heapのみ • 従来のテーブル • PostgreSQL 12では、インタフェースが切られただけで 、新しい種類のテーブルは提供されていない • 新しい種類のテーブルはPostgreSQL 13以降 サポート中のAccess Method
  • 14. 14Copyright©2019 NTT Corp. All Rights Reserved. • ZHeap (EnterpriseDB社) • 行指向 • UNDOログ • タプルヘッダが小さい(Heapに比べて) • ZedStore (Pivotal社) • 列指向 • UNDOログ • 圧縮 • 分析用途等に適しているが、最大限効果を出すためには Optimizer、Executorの改良も必要 • In-memory storage どんなAccess Methodが今後入るか?
  • 15. 15Copyright©2019 NTT Corp. All Rights Reserved. • UNDOログを利用 • 古いタプルはすべてUNDO領域に退避 • Commitなら退避した古いタプルを消す、Rollbackならもとに戻す • In-place update • VACUUMがいらない • タプルヘッダが従来のテーブルよりも小さい • 25 bytes -> 5 bytes • MVCCに必要なデータはUNDOログにある • ソースは公開されているので試してみるのもあり • https://github.com/EnterpriseDB/zheap ZHeap
  • 16. 16Copyright©2019 NTT Corp. All Rights Reserved. 目的は異なるが機能性は一部重複している • 目的の違い • FDWは外部データとの連携が目的 • SQL標準にあるSQL/MEDの実装系 • Table AMはPostgreSQLのストレージ層の切り出し • 機能の違い • FDWでは、実行計画の作成(外部サーバが担当する部分の切り 出し等)、外部サーバからのデータ取得を担当 • GetForeignPaths、GetForeignJoinPath, ExecForeignScanなど • Table AMは、Executor⇔ストレージのI/Fのみ(今後変わる可能 性あり) • scan_getnextslot, index_fetch_begin, scan_bitmap_next_block, tuple_insert, tuple_delete, scan_bitmapなど • FDWではDDLに対応していない Foreign Data Wrapperとの違い
  • 17. 17Copyright©2019 NTT Corp. All Rights Reserved. COMMIT [ AND [NO] CHAIN ] ROLLBACK [ AND [NO] CHAIN ] • 「AND CHAIN」を指定すると、トランザクション分離レベル、 READ_WRITE/READ_ONLY、DEFERRABLEが引き継がれて、新しいト ランザクションが開始される • SQL標準の機能(“Chained Transaction”) • Stored Procedure内でトランザクションの設定を変えて頻繁にコミ ットをする時に便利 • MySQLもサポートしてる Chained Transaction
  • 18. 18Copyright©2019 NTT Corp. All Rights Reserved. =# SHOW transaction_isolation ; --デフォルトはread committed transaction_isolation ----------------------- read committed (1 row) =# BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE ; -- serializableでトランザクションを開始 BEGIN =# SHOW transaction_isolation ; -- serializableになっていることを確認 transaction_isolation ----------------------- serializable (1 row) =# COMMIT AND CHAIN; -- AND CHAINを指定してCOMMIT COMMIT =# SHOW transaction_isolation ; -- トランザクション分離レベルが引き継がれてserializableのまま transaction_isolation ----------------------- serializable (1 row) =# COMMIT; -- 普通のCOMMIT COMMIT =# SHOW transaction_isolation ; -- read committedに戻っている transaction_isolation ----------------------- read committed (1 row) 実行例
  • 19. 19Copyright©2019 NTT Corp. All Rights Reserved. • CHAINする前後のトランザクションに特別な関係性はない • いくつかの設定が引き継がれるだけ • Jim Grayのトランザクション本では、Chained Transactionはカーソルを開いた ままにすると解説している 注意点 Transaction Processing: Concepts and Techniques, Chained Transactions(P193)
  • 20. 20Copyright©2019 NTT Corp. All Rights Reserved. • XPathのJSON版 • JSONデータから特定の部分を指定し、抽出するための 構文(言語) • jsonb型のデータに対してのみ利用可能 • json型には対応していない • SELECT jsonb_path_query(event_jb, ‘$.event.speakers[*]’) SQL/JSON path
  • 21. 21Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } }
  • 22. 22Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.name
  • 23. 23Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.speakers
  • 24. 24Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.speakers[1]
  • 25. 25Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.speakers[1].title
  • 26. 26Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.DDTL.*
  • 27. 27Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.speakers[*] ? (@.name = “yoku0825”)
  • 28. 28Copyright©2019 NTT Corp. All Rights Reserved. { "event": { "name": "Middleware Deep Talks", "speakers": [ { "name": "yoku0825", "title": "ぼくらが8.0に至ったみちのり(踏破)" }, { "name": "澤田雅彦", "title": "PostgreSQL 12の話" }, { "name": "Jun Ohtani", "title": "What''s new Elastic Stack 7.0?" }, { "name": "星井祥吾", "title": "Apache Cassandraの特性と自動化運用" }, { "name": "Noritaka Sekiyama", "title": "S3整合性モデルとHadoop/Sparkの話" } ], "DDTL": { "date" : "2019-05-23", "time" : "18:00", "place" : "AWS Loft Tokyo" } } } Query : $.event.speakers[*] ? (@.name start with “澤田”)
  • 29. 29Copyright©2019 NTT Corp. All Rights Reserved. • PostgreSQL 12は今秋リリース予定 • 例年5月にBeta、7,8月くらいにRCで9月正式リリース • リリースノートは公開されているので、追加された機能 を確認できます • PostgreSQL公式ドキュメント(英語)にあります • 正式リリースされるバージョンと大きく変わることはないはず • 来週はPGCon@Ottawaが開催されます 最後に
  • 30. 30Copyright©2019 NTT Corp. All Rights Reserved. Vacuum、Replication slotでいくつか機能開発をしました • インデックスのVacuumをスキップする機能 • Vacuumの高速化(Vacuum処理時間の大半はインデックスの Vacuumなので、それをスキップできるようにした) • Replication Slotをコピーする機能 • Logical Replicationやバックアップにも役に立ちます その他、分散Tx機能(Atomic Commit)、透過的暗号化機能 (TDE)にも取り組んでいるので、興味があれば話しましょ う! YOUはなにかコントリビュートしてないの?
  • 31. 31Copyright©2019 NTT Corp. All Rights Reserved. • JSONPath - Xpath for JSON • https://goessner.net/articles/JsonPath/ • zheap: less bloat, fewer writes, and just plain smaller • https://www.pgcon.org/2018/schedule/attachments/501_zheap- a-new-storage-format-postgresql-5.pdf • PostgreSQL 12 • http://www.sai.msu.su/~megera/postgres/talks/pg12-stachka- 2019.pdf • Pluggable Storage in PostgreSQL • https://anarazel.de/talks/2018-10-25-pgconfeu-pluggable- storage/pluggable.pdf 参考資料
  • 32. 32Copyright©2019 NTT Corp. All Rights Reserved. Thank you