SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
Copyright © 2015 NTT DATA Corporation
2015年5月30日
株式会社 NTTデータ
澤田雅彦
XID周回問題に潜む別の問題
PostgreSQLアンカンファレンス@Tokyo
2Copyright © 2015 NTT DATA Corporation
自己紹介
澤田 雅彦 @sawada_masahiko
NTTデータ 基盤システム事業本部
• PostgreSQLの技術開発、技術支援に従事
• 今年PGCon行きます
3Copyright © 2015 NTT DATA Corporation
INDEX
• XID周回とXID周回問題
• XID周回問題を防ぐ
• XID周回問題に潜む”別の問題”
• 解決に向けて
4Copyright © 2015 NTT DATA Corporation
XID周回とXID周回問題
• 約40億トランザクション経過すると0に戻る(→XID周回)
• トランザクションID(XID)は4Byte
• ”過去の見えていたデータ”が、見えなくなってしまう(→XID周回問題)
• 約20億トランザクション経過すると発生。
• 例えば、200TPSのシステムだと、約115日で訪れる→年に3回発生
XID=100
過去
(見える)
未来
(見えない)
XID=100
過去
(見える)
未来
(見えない)
見えない!
XID=100
過去
(見える)
未来
(見えない)
INSERT。
もちろん見える。
まだ見える。
5Copyright © 2015 NTT DATA Corporation
XID周回問題を防ぐ
• タプルを凍結(FREEZE)
• FREEZEされたタプルはどのXIDよりも古い
• FREEZEする契機
• VACUUM/auto-vacuum/CLUSTER/VACUUM FULL
• auto-vacuumがXID周回問題防止VACUUMを自動で実施
• (残り1000万トランザクションでWARNING)
• (残り100万トランザクションでXIDの払い出しを禁止)
XID=100
過去
(見える)
未来
(見えない)
XID=100
FREEZE
過去
(見える)
未来
(見えない)
XID=100
FREEZE
過去
(見える)
未来
(見えない)
FREEZEされてるので
見える!
INSERT。
もちろん見える。
まだ見える。
FREEZE処理実施。
6Copyright © 2015 NTT DATA Corporation
XID周回問題は防げる。が、
• XID周回防止VACUUMはテーブルのフルスキャンが必要
• これは、更新が全くないテーブルでも必要
→ PostgreSQLは定期的にテーブルのフルスキャンが発生することになる
XID周回問題に潜む別の問題は、
7Copyright © 2015 NTT DATA Corporation
XID周回問題は防げる。が、
• XID周回防止VACUUMはテーブルのフルスキャンが必要
• これは、更新が全くないテーブルでも必要
→ PostgreSQLは定期的にテーブルのフルスキャンが発生することになる
XID周回問題に潜む別の問題は、
”XID周回防止VACUUMに伴う大量のI/O”
ところで、なぜXID周回防止VACUUMはテーブルをフルスキャンする必要がある?
8Copyright © 2015 NTT DATA Corporation
blkno lp vm_info t_xmin
0 1 BIT 60(FREEZE)
0 2 BIT 151
1 1 50(FREEZE)
1 2 52(FREEZE)
2 1 BIT 100
2 2 BIT 100
2 3 BIT 101
3 1 90(FREEZE)
3 2 101
4 1 BIT 120(FREEZE)
なぜテーブルをフルスキャンする必要がある?
通常のVACUUMはVisibility Mapにより飛び飛びに実行されることで、
テーブルのrelfrozenxidを更新できないため。
• pg_class.relfrozenxid : FREEZEされていない最小のXID
• XID周回防止VACUUMの必要性は主にrelfrozenxidの値で判断
relfrozenxid
100
: スキップされる
ブロック
9Copyright © 2015 NTT DATA Corporation
解決に向けて
CF9.6でパッチ出してます(★の所)
• XIDを8Byteにする
• XIDをLSNを結びつける
• ★Read-Only Table
• ★すべてのタプルがFREEZEされたページを覚えておく
1Copyright © 2015 NTT DATA Corporation
VisibilityMapにビットを追加
• これまでは、VMは1ページ当たり1ビットで管理
• ページ内のタプルが全てのトランザクションから見える(all-visible)→ビットを立てる
• ビットが立っているページはVACUUM(ゴミ掃除)不要
• VMに1ビットを追加する
• つまり1ページ当たり2ビット(all-visible, all-frozen)で管理。CLOGみたいな感じ。
• ページ内のタプルが全てFREEZEされている(all-frozen)→ビットを立てる
• ビットが立っているページはVACUUM(タプルFREEZE)不要
• VACUUM(タプルFREEZE)でページをスキップしてもrelfrozenxidを更新できる
9.6ではどちらのVACUUMも高速になる!かも!
1Copyright © 2015 NTT DATA Corporation
まとめ
• PostgreSQLは更新のないテーブルにも、
定期的にフルスキャン(VACUUM)が走ります。
• 計画的なVACUUM FREEZEである程度防止できる
• 9.6で問題が解決するかも
Copyright © 2011 NTT DATA Corporation
Copyright © 2015 NTT DATA Corporation
Please Review the Patch.

Weitere ähnliche Inhalte

Was ist angesagt?

pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
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
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Masahiko Sawada
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...NTT DATA Technology & Innovation
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)NTT DATA Technology & Innovation
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみようAkio Ishida
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Keisuke Takahashi
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用Kosuke Kida
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...NTT DATA Technology & Innovation
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントNTT DATA OSS Professional Services
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報Masahiko Sawada
 

Was ist angesagt? (20)

pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
pg_hint_planを知る(第37回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
 
PostgreSQLバックアップの基本
PostgreSQLバックアップの基本PostgreSQLバックアップの基本
PostgreSQLバックアップの基本
 
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
PostgreSQLモニタリングの基本とNTTデータが追加したモニタリング新機能(Open Source Conference 2021 Online F...
 
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
オンライン物理バックアップの排他モードと非排他モードについて(第15回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理いまさら聞けないPostgreSQL運用管理
いまさら聞けないPostgreSQL運用管理
 
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
 
XIDを周回させてみよう
XIDを周回させてみようXIDを周回させてみよう
XIDを周回させてみよう
 
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
Azure Database for PostgreSQL 入門 (PostgreSQL Conference Japan 2021)
 
Oracle GoldenGate入門
Oracle GoldenGate入門Oracle GoldenGate入門
Oracle GoldenGate入門
 
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL 13でのpg_stat_statementsの改善について(第12回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用[Postgre sql9.4新機能]レプリケーション・スロットの活用
[Postgre sql9.4新機能]レプリケーション・スロットの活用
 
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
PostgreSQLのバグとの付き合い方 ~バグの調査からコミュニティへの報告、修正パッチ投稿まで~(PostgreSQL Conference Japa...
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
 

Ähnlich wie PostgreSQL: XID周回問題に潜む別の問題

ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)aitc_jp
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Wataru Fukatsu
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713Takehiro Kudou
 
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイントgriddb
 
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiEnterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiTomohiro Igarashi
 
ベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)についてベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)についてMitsuhiro SHIGEMATSU
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介Orb, Inc.
 
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~griddb
 
サーバーからデスクトップへ広がる仮想化技術の活用法
サーバーからデスクトップへ広がる仮想化技術の活用法サーバーからデスクトップへ広がる仮想化技術の活用法
サーバーからデスクトップへ広がる仮想化技術の活用法VirtualTech Japan Inc.
 
OpenStack Summit Vancouver Swift 報告
OpenStack Summit Vancouver Swift 報告OpenStack Summit Vancouver Swift 報告
OpenStack Summit Vancouver Swift 報告Kota Tsuyuzaki
 
180731 JAWS UG京都 KYOSO part
180731 JAWS UG京都 KYOSO part180731 JAWS UG京都 KYOSO part
180731 JAWS UG京都 KYOSO partdaichi goto
 
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也Insight Technology, Inc.
 
CDH4->5 update苦労話
CDH4->5 update苦労話CDH4->5 update苦労話
CDH4->5 update苦労話Yu Yamada
 
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社Game Tools & Middleware Forum
 
【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介CLOUDIAN KK
 
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~griddb
 

Ähnlich wie PostgreSQL: XID周回問題に潜む別の問題 (20)

ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)
 
Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713openstack_neutron-dvr_os5thaniv_20150713
openstack_neutron-dvr_os5thaniv_20150713
 
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
【GridDB入門】 IoT、そしてサイバー・フィジカル・システムを支える オープンソースデータベース GridDB ~ こだわりの理由と実現方法のポイント
 
Enterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashiEnterprise hacknight 1-igarashi
Enterprise hacknight 1-igarashi
 
ベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)についてベアメタルプロビジョニング(Ironic)について
ベアメタルプロビジョニング(Ironic)について
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
もうSQLとNoSQLを選ぶ必要はない!?~両者を備えたスケールアウトデータベースGridDB~
 
サーバーからデスクトップへ広がる仮想化技術の活用法
サーバーからデスクトップへ広がる仮想化技術の活用法サーバーからデスクトップへ広がる仮想化技術の活用法
サーバーからデスクトップへ広がる仮想化技術の活用法
 
OpenStack Summit Vancouver Swift 報告
OpenStack Summit Vancouver Swift 報告OpenStack Summit Vancouver Swift 報告
OpenStack Summit Vancouver Swift 報告
 
180731 JAWS UG京都 KYOSO part
180731 JAWS UG京都 KYOSO part180731 JAWS UG京都 KYOSO part
180731 JAWS UG京都 KYOSO part
 
Jawsug kyoso
Jawsug kyosoJawsug kyoso
Jawsug kyoso
 
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
20150630_データ分析に最適な基盤とは? -コスト/スピードでビジネスバリューを得るために- by 株式会社インサイトテクノロジー CTO 石川雅也
 
CDH4->5 update苦労話
CDH4->5 update苦労話CDH4->5 update苦労話
CDH4->5 update苦労話
 
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社
GTMF 2015: ゲーム分析プラットフォームとしてのトレジャーデータサービス | トレジャーデータ株式会社
 
Ti db demo
Ti db demoTi db demo
Ti db demo
 
10大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon201510大ニュースで振り返るPGCon2015
10大ニュースで振り返るPGCon2015
 
【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介【Cloudian】FIT2015における会社製品紹介
【Cloudian】FIT2015における会社製品紹介
 
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
オープンソースデータベース GridDB ~ なぜ いま、データベースを開発したのか?その理由とGridDBの概要紹介 ~
 

Mehr von NTT DATA OSS Professional Services

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~NTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~NTT DATA OSS Professional Services
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~NTT DATA OSS Professional Services
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのことNTT DATA OSS Professional Services
 
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~NTT DATA OSS Professional Services
 

Mehr von NTT DATA OSS Professional Services (20)

Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力Global Top 5 を目指す NTT DATA の確かで意外な技術力
Global Top 5 を目指す NTT DATA の確かで意外な技術力
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
 
Apache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development statusApache Hadoop and YARN, current development status
Apache Hadoop and YARN, current development status
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
 
Application of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jpApplication of postgre sql to large social infrastructure jp
Application of postgre sql to large social infrastructure jp
 
Application of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructureApplication of postgre sql to large social infrastructure
Application of postgre sql to large social infrastructure
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
 
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~データ活用をもっともっと円滑に!~データ処理・分析基盤編を少しだけ~
データ活用をもっともっと円滑に! ~データ処理・分析基盤編を少しだけ~
 
商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと商用ミドルウェアのPuppet化で気を付けたい5つのこと
商用ミドルウェアのPuppet化で気を付けたい5つのこと
 
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
今からはじめるPuppet 2016 ~ インフラエンジニアのたしなみ ~
 

Kürzlich hochgeladen

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 

Kürzlich hochgeladen (9)

IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 

PostgreSQL: XID周回問題に潜む別の問題

  • 1. Copyright © 2015 NTT DATA Corporation 2015年5月30日 株式会社 NTTデータ 澤田雅彦 XID周回問題に潜む別の問題 PostgreSQLアンカンファレンス@Tokyo
  • 2. 2Copyright © 2015 NTT DATA Corporation 自己紹介 澤田 雅彦 @sawada_masahiko NTTデータ 基盤システム事業本部 • PostgreSQLの技術開発、技術支援に従事 • 今年PGCon行きます
  • 3. 3Copyright © 2015 NTT DATA Corporation INDEX • XID周回とXID周回問題 • XID周回問題を防ぐ • XID周回問題に潜む”別の問題” • 解決に向けて
  • 4. 4Copyright © 2015 NTT DATA Corporation XID周回とXID周回問題 • 約40億トランザクション経過すると0に戻る(→XID周回) • トランザクションID(XID)は4Byte • ”過去の見えていたデータ”が、見えなくなってしまう(→XID周回問題) • 約20億トランザクション経過すると発生。 • 例えば、200TPSのシステムだと、約115日で訪れる→年に3回発生 XID=100 過去 (見える) 未来 (見えない) XID=100 過去 (見える) 未来 (見えない) 見えない! XID=100 過去 (見える) 未来 (見えない) INSERT。 もちろん見える。 まだ見える。
  • 5. 5Copyright © 2015 NTT DATA Corporation XID周回問題を防ぐ • タプルを凍結(FREEZE) • FREEZEされたタプルはどのXIDよりも古い • FREEZEする契機 • VACUUM/auto-vacuum/CLUSTER/VACUUM FULL • auto-vacuumがXID周回問題防止VACUUMを自動で実施 • (残り1000万トランザクションでWARNING) • (残り100万トランザクションでXIDの払い出しを禁止) XID=100 過去 (見える) 未来 (見えない) XID=100 FREEZE 過去 (見える) 未来 (見えない) XID=100 FREEZE 過去 (見える) 未来 (見えない) FREEZEされてるので 見える! INSERT。 もちろん見える。 まだ見える。 FREEZE処理実施。
  • 6. 6Copyright © 2015 NTT DATA Corporation XID周回問題は防げる。が、 • XID周回防止VACUUMはテーブルのフルスキャンが必要 • これは、更新が全くないテーブルでも必要 → PostgreSQLは定期的にテーブルのフルスキャンが発生することになる XID周回問題に潜む別の問題は、
  • 7. 7Copyright © 2015 NTT DATA Corporation XID周回問題は防げる。が、 • XID周回防止VACUUMはテーブルのフルスキャンが必要 • これは、更新が全くないテーブルでも必要 → PostgreSQLは定期的にテーブルのフルスキャンが発生することになる XID周回問題に潜む別の問題は、 ”XID周回防止VACUUMに伴う大量のI/O” ところで、なぜXID周回防止VACUUMはテーブルをフルスキャンする必要がある?
  • 8. 8Copyright © 2015 NTT DATA Corporation blkno lp vm_info t_xmin 0 1 BIT 60(FREEZE) 0 2 BIT 151 1 1 50(FREEZE) 1 2 52(FREEZE) 2 1 BIT 100 2 2 BIT 100 2 3 BIT 101 3 1 90(FREEZE) 3 2 101 4 1 BIT 120(FREEZE) なぜテーブルをフルスキャンする必要がある? 通常のVACUUMはVisibility Mapにより飛び飛びに実行されることで、 テーブルのrelfrozenxidを更新できないため。 • pg_class.relfrozenxid : FREEZEされていない最小のXID • XID周回防止VACUUMの必要性は主にrelfrozenxidの値で判断 relfrozenxid 100 : スキップされる ブロック
  • 9. 9Copyright © 2015 NTT DATA Corporation 解決に向けて CF9.6でパッチ出してます(★の所) • XIDを8Byteにする • XIDをLSNを結びつける • ★Read-Only Table • ★すべてのタプルがFREEZEされたページを覚えておく
  • 10. 1Copyright © 2015 NTT DATA Corporation VisibilityMapにビットを追加 • これまでは、VMは1ページ当たり1ビットで管理 • ページ内のタプルが全てのトランザクションから見える(all-visible)→ビットを立てる • ビットが立っているページはVACUUM(ゴミ掃除)不要 • VMに1ビットを追加する • つまり1ページ当たり2ビット(all-visible, all-frozen)で管理。CLOGみたいな感じ。 • ページ内のタプルが全てFREEZEされている(all-frozen)→ビットを立てる • ビットが立っているページはVACUUM(タプルFREEZE)不要 • VACUUM(タプルFREEZE)でページをスキップしてもrelfrozenxidを更新できる 9.6ではどちらのVACUUMも高速になる!かも!
  • 11. 1Copyright © 2015 NTT DATA Corporation まとめ • PostgreSQLは更新のないテーブルにも、 定期的にフルスキャン(VACUUM)が走ります。 • 計画的なVACUUM FREEZEである程度防止できる • 9.6で問題が解決するかも
  • 12. Copyright © 2011 NTT DATA Corporation Copyright © 2015 NTT DATA Corporation Please Review the Patch.