SlideShare a Scribd company logo
Copyright © 2014 NTT DATA Corporation 
2014年12月5日 
株式会社NTT DATA 
笠原 辰仁、澤田 雅彦 
NTT DATA と PostgreSQL が挑んだ総力戦 ~ PostgreSQL を極限まで使い切ったその先に見たものとは? ~ 
PostgreSQLカンファレンス2014
2 
Copyright © 2014 NTT DATA Corporation 
INDEX 
PostgreSQLとNTT DATA 
事例概要 
立ちはだかる壁 
その先に 
おわりに
3 
Copyright © 2014 NTT DATA Corporation 
OSSが世の中一般に広まり、活用され始める。 NTT DATA 含め、NTTグループとして戦略的にOSSを 活用していく体制を整え、OSS適用も活発化。 
認知・活用へ(199x - 2007頃) 
年度 
主な出来事 
1999 
【コミュニティ】 日本PostgreSQLユーザ会(JPUG)設立 
2001 
【PG】 PostgreSQL 7.1 (ログ先行書き込み(WAL)の実装) 
2005 
【PG】 PostgreSQL8.0 (Windows対応・PITR) 
2006 
【NTTG】 NTT OSSセンタ設立
4 
Copyright © 2014 NTT DATA Corporation 
OSSというだけで適用が進む時代が終わる。 NTT DATAでは全社展開のためモデル作成を実施。 
エンタープライズ分野での弱点をカバーすべく研究開 発、新規ソリューション開拓も活発に。 
普及・継続的取り組みへ(2008 - 2013頃) 
年度 
主な出来事 
2008 
【PG】 PostgreSQL 8.3(autovacuum 標準装備) 
2011 
【PG】 PostgreSQL 9.1(同期レプリケーション機能の採用) 
2012 
【コミュニティ】 PGECons 設立 
2013 
【NTTD】 GresCube 販売開始
5 
Copyright © 2014 NTT DATA Corporation 
そして今(2014~) 
NTT DATA では、OSSスタックが高い利用頻度に。 PostgreSQLのコモディティ化が進む。 
大規模システムでも、当たり前にPostgreSQLを使う今。 従来のPostgreSQLの当たり前の使い方だけでは 太刀打ちできない要件が立ちはだかる。
6 
Copyright © 2014 NTT DATA Corporation 
メインサイト 
今回ご紹介する事例 
認証 
データ 
システム基幹部分 
災対サイト 
業務・集計 
データ 
小売店 
モバイル 
POS 
POS 
PC 
社内外の他システム 
モバイル向け 
Web/AP 
社内向け 
Web/AP 
集配信 
認証盤 
オンライン 
APサーバ 
オンライン 
帳票サーバ 
バッチ 
APサーバ 
モバイル向け 
Web/認証基盤 
オンライン 
APサバ 
オンライン 
帳票ーバ 
バッチ・取引 
APサバ 
業務・集計 
データ 
非同期 
レプリケーション 
PostgreSQL 
販売 店舗情報など 
売上 請求情報など 
PostgreSQL 
世界有数のエネルギー元売会社の情報系システム 
販売情報等をもとに、集計等をほぼリアルタイムで行う
7 
Copyright © 2014 NTT DATA Corporation 
特徴(2) OSSメイン & 拡張機能をフル活用 
PostgreSQLの拡張機能 
pg_statsinfo 
性能情報監視用 
pg_stat_statement 
実行SQLの性能情報監視用 
auto_explain 
スロークエリの実行計画捕捉用 
pg_hint_plan 
実行計画制御用 
pg_dbms_stats 
統計情報固定化用 
pg_bigm 
全文検索(2-gram)用 
pg_reorg 
オンラインテーブル再編成メンテ用 
pgfincore (試験時のみ) 
キャッシュヒット効率向上用 
ミドルウェア 
OS 
RHEL 6.2 
DBMS 
PostgreSQL9.2 
AP 
Tomcat 
およそ利用可能な拡張モジュールは全て取り入れた
8 
Copyright © 2014 NTT DATA Corporation 
迫りくる要件・トラブル 
無停止 
メンテを 
DRサイト 
用意! 
リスクと 対峙 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の性能
9 
Copyright © 2014 NTT DATA Corporation 
リスクと 
対峙 
無停止メンテを 
無停止 
メンテを 
DRサイト 
用意! 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の性能 
無停止 
メンテを 
ハードなメンテもオンライン で実施したい 
VACUUM FULL、REINDEX 
はどうしよう?
10 
Copyright © 2014 NTT DATA Corporation 
どうするメンテナンス設計!? 
~数GBの 
小規模テーブル 
数百GB以上の 
大規模テーブル 
システム性能への影響 小 
→auto vacuumに任せる 
システム性能への影響 
→メンテナンス枠にて手動 
で実施 
VACUUM 
24時間DBアクセス 
昼夜問わず大量バッチ 
何は無くともまずVACUUM設計 システムへの影響をミニマムに!
11 
Copyright © 2014 NTT DATA Corporation 
万が一に備えて 
そこで、外部モジュール!地味に、便利なコマンド! 
pg_reorg 
オンラインVACUUM FULL 
オンラインCLUSTER 
自作ツール 
CREATE INDEX CONCURRENTLY ALTER INDEX 
でスワップ! 
VACUUMができなかったら? インデックスが荒れてしまったら? 
排他ロック要らず!
12 
Copyright © 2014 NTT DATA Corporation 
無停止メンテの実現に向けて 
必要なメンテナンスと影響を見極める 
想定外の事態にも備えておく 
想定外のリソース枯渇を抑える。 
VACUUMをユーザの制御下に! 
いざという時にオンラインでメンテ! 
外部モジュール等でPostgreSQLをカバー
13 
Copyright © 2014 NTT DATA Corporation 
無停止 
メンテを 
リスクと 
対峙 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の性能 
DRサイト用意! 
DRサイト 
用意! 
DRサイト 用意! 
東日本、西日本間でDR 
PostgreSQLのDRはどのよう に実現する?
14 
Copyright © 2014 NTT DATA Corporation 
災害対策(Disaster Recovery)を検討せよ 
災害時にも止められない! 
→災害の被害を受けてもサービスを継続するために、遠隔地に メインサイトのコピー(災対サイトの構築)を作る! 
東日本(メインサイト) から 西日本(災対サイト) 
DR対象は(ほぼ)システム全体 
課題はPostgreSQLのメイン->災対へのデータ同期・・・ 
DBデータ 
西日本 
DBデータ 
東日本
15 
Copyright © 2014 NTT DATA Corporation 
やっぱり Streaming-Replication ! 
アーカイブログ 転送 
SR 
HWレベルでの 
レプリケーション 
決 
○高機能 (運用楽そう) 
△実績がない… 検証必要 
×運用が面倒 
△実績がない… 
検証必要 
×価格が高い 
運用 
導入 
○運用楽 ! 
頼れるサポート 
(Fujii Masao)
16 
Copyright © 2014 NTT DATA Corporation 
・・・でも本当に大丈夫か?SR 
データ 
アーカイブログ 
WAL 
圧縮して高速に転送 
解凍・リカバリ 
マスタ 
スタンバイ 
最大負荷量から必要な帯域をサイジング 
初期同期はNW経由・・でもOKそうだ 
・・ もしレプリケーションが追いつかなくなったら? 
データ 
WAL 
PostgreSQLが自動でアーカイブログからの 復旧に切り替え! 想定時間内にキャッチアップ!
17 
Copyright © 2014 NTT DATA Corporation 
すごかった!SR 
今のところレプリケーション起因の問題はなし 
PostgreSQLのSRは 
DR用途にも十分実用的! 
いいね!Streaming-Replication!
18 
Copyright © 2014 NTT DATA Corporation 
守れ!大量SQLの性能! 
無停止 
メンテを 
DRサイト 
用意! 
リスクと 
対峙 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の品質 
守れ! 
大量SQL 
の性能 
対象は数万本のSQL 
性能を守るのは 
数名のPG有識者
19 
Copyright © 2014 NTT DATA Corporation 
10Mに およぶ AP 
シビアな状況が我々を悩ませた… 
数万の SQL 
1000人 規模の 開発体制 
タイトな 
スケジュール 
ポスグレ 経験者 少な目 
SQL性能 どう守る? 
迅速な SQL チューン?
20 
Copyright © 2014 NTT DATA Corporation 
10Mに およぶ AP 
シビアな状況が我々を悩ませた… 
数万の SQL 
1000人 規模の 開発体制 
タイトな 
スケジュール 
ポスグレ 経験者 少な目 
SQL性能 どう守る? 
迅速な SQL チューン? 
 複雑すぎるSQLを書いてしまう → SQLのメンテナンス性、可読性低下 
 SQLは書いたけど、多くのSQLで性能問題が発生 → 期間内にすべての性能問題を解決できない 性能要件を満たさず、トラブルを引き起こすSQL(= 問題SQL)を 撲滅するために、我々が用意したものは…?
21 
Copyright © 2014 NTT DATA Corporation 
5つの関門を用意 
? 
1 
? 
2 
3 
? 
4 
? 
5 
SQLは1~5の関門を通り、 
一人前のSQL(=使用可能なSQL)になる 
!? 
?
22 
Copyright © 2014 NTT DATA Corporation 
1つ目 - SQLガイドライン 
PJが持っていたSQLガイドラインで、SQLのメンテナンス性を担保 
PostgreSQLのノウハウで、“PostgreSQL向けのSQL”に 
SQLガイドライン 
•1行当たり最大○○文字 
•コメントには/*…*/を使用する 
•ORDER BYには列名を記載する : 
SQLガイドライン 
PostgreSQLのノウハウ 
•NULLと文字列を連結すると 空文字になる 
•異なるデータ型で比較しないこと :
23 
Copyright © 2014 NTT DATA Corporation 
チェック項目 
結果 
テーブルのJOIN数チェック 
OK 
直積使用チェック 
OK 
同じテーブルを複数回見ているかチェック 
OK 
中間一致使用チェック 
中間一致はフルスキャンになり性能問 題を起こす可能性があります。 
pg_bigmインデックスを利用しましょう 
: 
: 
2つ目 - SQLチェックツール 
とはいえ、ヒューマンエラーはある(´Д`lli) 
“SQLガイドラインに従ったSQL“になっているか20以上の項目を自動で判別 
NGの場合は、チェック観点を表示 
■SQL静的チェック結果(イメージ図)
24 
Copyright © 2014 NTT DATA Corporation 
3つ目 - 実行計画チェックツール 
サービス開始後、SQLの性能問題が起きないために、 
“実行計画”をチェック 
<実行計画> 
Sort 
->Nested Loop (cost = … 
-> Index Scan (cost = … 
-> Seq Scan (cost = … 
: 
見積もりコストは高くなり すぎていない? 
インデックス使われてる? 
ただし! 
サービス開始後に生成される“リアル”な実行計画が必要!
25 
Copyright © 2014 NTT DATA Corporation 
4つ目 - HINT句でアジリティチューニング 
HINT句を使い直接実行計画を制御することで、 
アジリティなSQLチューニングを可能に 
○ HINT句を使用するメリット 
SQLを書き換えるよりも改修時間が短い! 
•実行計画を確認して、使用するインデックスやスキャン方法を変えるだけ 
SQLの実行結果の内容は変わらない! 
•HINTを付与するだけなので、SQLのリテスト不要 
/*+ IndexScan(hoge) */ 
SELECT * FROM hoge 
WHERE id = 9999;
26 
Copyright © 2014 NTT DATA Corporation 
大量SQLの性能を守れました 
SQLガイドライン 
1 
SQLチェックツール 
2 
3 
アジリティSQLチューニング 
4 
SQL書き換え 
5 
チェック済みの実行計画をサービス開始後も使用 
ドキュメントと ツールによる 性能問題防止 
遅いSQLの 
性能問題解決
27 
Copyright © 2014 NTT DATA Corporation 
リアルな実行計画?PGを騙す? 
実行計画チェックの実現、大量SQLの性能担保にあった 
2つの課題 
■ 2つの課題 
1.ダミーの統計情報を生成しPostgreSQLに設定する仕組みがない → PostgreSQLを騙す仕組み 
2.PostgreSQLを騙すことができても一時的な効果でしかない → PostgreSQLを騙し続ける仕組み
28 
Copyright © 2014 NTT DATA Corporation 
「統計情報カスタマイズ機能」作りました 
ユーザがテーブルに“任意の統計情報”を設定することが可能 
BIG!! 
大規模テーブルを 
スキャンする実行計画 
実行計画 
作成 
<統計情報> 
•20億件 
•500GB : 
空 
DBA 
統計情報 設定 
統計情報カスタマイズ 
設定する統計情報は 
「業務Tmへのヒアリングで見積もる」 
+ 
「一部は機械的に生成」
29 
Copyright © 2014 NTT DATA Corporation 
プランナ 
pg_dbms_stats 
PostgreSQL 
本来の 
統計情報 
実行計画 
“独自に設定された” 
“固定化された” 
統計情報 
生成 
pg_dbms_stats × 統計情報カスタマイズ機能 
統計情報カスタマイズ機能はpg_dbms_statsの 
追加機能として開発しました 
DBA 
・テーブル行数 
・テーブルサイズ 
・列幅 
・列の固有値 
・列のヒストグラム、MCV 
など 
■pg_dbms_stats × 統計情報カスタマイズ機能 
直接設定!
30 
Copyright © 2014 NTT DATA Corporation 
プラットフォームトラブル 
無停止 
メンテを 
DRサイト 
用意! 
リスクと 
対峙 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の性能 
プラット 
フォーム 
トラブル 
様々なトラブルが 発生! 
原因はPG? 
それとも…?
31 
Copyright © 2014 NTT DATA Corporation 
リソース使用量に異常発生! 
PostgreSQLの 
サーバログ確認 
APサーバの 
ログ確認 
DBサーバの 
カーネルログ 
確認 
他のリソース使用 
状況確認 
OK 
OK 
OK 
OK 
試験中にDBサーバに異変が(´Д`lli) 
CPUのsysが高騰している(常に80%以上) 
→PostgreSQLに問題はなさそうなので、 
Linuxの性能解析ツール(perf)で調べてみることに
32 
Copyright © 2014 NTT DATA Corporation 
カーネルサイドからのアプローチ 
perf topの状況を見ると、PostgreSQL以外に原因がありそう 
■perf top結果(一部抜粋) 
320878.00 29.0% SpinPause /usr/java/…/libjvm.so 
187781.00 17.0% _spin_lock_irq [kernel.kallsyms] 
143784.00 13.0% read_hpet [kernel.kallsyms] 
109362.00 9.9% ParallelTaskTerminator /usr/java/…/libjvm.so 
35295.00 3.2% native_write_msr_safe [kernel.kallsyms] 
33563.00 3.0% intel_idle 
25783.00 2.3% _spin_lock 
19725.00 1.8% _spin_lock_irqsave 
11848.00 1.1% find_busiest_group 
2835.00 0.3% compaction_alloc [kernel.kallsyms] 
2782.00 0.3% unmap_vmas [kernel.kallsyms] 
2603.00 0.2% rb_next 
•調べてみるとRHEL6.2にあったTransparent Huge Page(THP) のバグを踏んでいたよう 
•THPを無効にすることによりCPUのsys高騰が解消した 
もしかして、 
HugePage関連? 
Linuxカーネル 
技術者
33 
Copyright © 2014 NTT DATA Corporation 
再び異常発生!また!? 
試験中にDBサーバのレスポンスが急激に悪化 ヽ(ヽ゜ロ゜) 
vmstatを見るとswapが大量発生 
vmstatの結果(一部抜粋) 
procs -------------memory------------ --swap-- ---io--- 
r b swpd free buff cache si so bi 
00:13:39 22 6 1446440 23304532 108560 66972348 504 1374 15280 … 
00:13:44 11 6 1451608 23112444 108648 67165456 786 1281 19406 … 
00:13:49 10 6 1457416 23168188 108800 67330992 125 1184 18972 … 
00:13:54 14 6 1466048 22865104 108892 67517832 660 1794 22452 … 
00:13:59 28 5 1471792 22766112 108980 67579072 130 1203 14629 … 
00:14:04 11 3 1475952 22519940 109068 67685576 46 842 10079 … 
00:14:09 27 1 1482372 22400092 109180 67703616 182 1323 6529 …
34 
Copyright © 2014 NTT DATA Corporation 
DBサーバのメモリ使用量が多い事は、これまでも話題に上がっていた 
なので、まずはメモリ使用量を削減する対策を実施 
shared_buffersを小さくする 
work_memを小さくする 
コネクション数削減 
PostgreSQL以外のプロセスのメモリ使用量も確認・削減 
など 
メモリの使過ぎが原因かも!
35 
Copyright © 2014 NTT DATA Corporation 
え!?あれ!? 
メモリが空いているにも関わらず、swapが起きている! 
これには別の原因がありそう! 
vmstatの結果(一部抜粋) 
procs -------------memory------------ --swap-- ---io--- 
r b swpd free buff cache si so bi 
00:13:39 22 6 1446440 23304532 108560 66972348 504 1374 15280 … 
00:13:44 11 6 1451608 23112444 108648 67165456 786 1281 19406 … 
00:13:49 10 6 1457416 23168188 108800 67330992 125 1184 18972 … 
00:13:54 14 6 1466048 22865104 108892 67517832 660 1794 22452 … 
00:13:59 28 5 1471792 22766112 108980 67579072 130 1203 14629 … 
00:14:04 11 3 1475952 22519940 109068 67685576 46 842 10079 … 
00:14:09 27 1 1482372 22400092 109180 67703616 182 1323 6529 … 
最近コミュニティで、 
似たような事象が 
報告されていたような。 
PostgreSQL技術者
36 
Copyright © 2014 NTT DATA Corporation 
リモートのメモリが使えない!空いているのに! 
メモリ (32GB) 
メモリ (32GB) 
メモリ (32GB) 
メモリ (32GB) 
メモリを確保する際、設定状況によってはリモートのメモリを使 うことができず、ローカルメモリをスワップしてしまう 
CPU 
CPU 
CPU 
CPU 
メモリの余りが ない… 
メモリインタリーブを有効にすることで解決! 
ローカルメモリ 
リモートメモリ 
リモートメモリ 
リモートメモリ
37 
Copyright © 2014 NTT DATA Corporation 
解決に至るアクティビティ 
他の技術者との連携 
コミュニティの情報をキャッチアップ
38 
Copyright © 2014 NTT DATA Corporation 
リスクと対峙 
無停止 
メンテを 
DRサイト 
用意! 
ラスト 
リゾート 
プラット フォーム 
トラブル 
守れ! 大量SQL の性能 
リスクと 対峙 
新規機能盛りだくさん 
色々便利だけど・・・
39 
Copyright © 2014 NTT DATA Corporation 
チャレンジにはリスクが伴う 
例えば 
最終テストに差し掛かっていたある日、 
PostgreSQLがSEGVで落ちた。 
→ 再現も難しい・・ 
→ PostgreSQLに懸念の目が・・ 
新しい 機能! 
新しい 仕組み! 
+ 
= 
未知の 
トラブル 
PostgreSQL 大丈夫?・・・ 
周りの人
40 
Copyright © 2014 NTT DATA Corporation 
リスクに立ち向かう 
そこはOSS 
ソースコードとコアダンプがある。開発元と共に原因を特定。 
パッチを書いて、根本対処 
Program received signal SIGSEGV, Segmentation fault. 
pg_detoast_datum_packed (datum=0x2) at fmgr.c:2273 
2273 if (VARATT_IS_COMPRESSED(datum) || VARATT_IS_EXTERNAL(datum)) 
(gdb) bt 
#0 pg_detoast_datum_packed (datum=0x2) at fmgr.c:2273 
#1 0x00000000006d5c24 in bpchargt (fcinfo=0x7fffdc6b4f80) at varchar.c:801 
#2 0x000000000072127f in FunctionCall2Coll (flinfo=<value optimized out>, collation=<value optimized out>, 
arg1=<value optimized out>, arg2=<value optimized out>) at fmgr.c:1327 
#3 0x00000000006c972f in ineq_histogram_selectivity (root=0xfca988, vardata=0x7fffdc6b54a0, 
opproc=0x7fffdc6b5410, isgt=1 '¥001', constval=16558024, consttype=1042) at selfuncs.c:836 
・ 
・ 
・ 
(gdb) p *(Form_pg_statistic) ((char *) vardata->statsTuple->t_data + vardata->statsTuple- >t_data->t_hoff) 
$2 = {starelid = 900400380, staattnum = 12, stainherit = 0 '¥000', stanullfrac = 0, stawidth = 4, stadistinct = 2, stakind1 = 1, stakind2 = 3, 
stakind3 = 0, stakind4 = 0, stakind5 = 0, staop1 = 1752, staop2 = 1754, staop3 = 0, staop4 = 0, staop5 = 0} 
・ 
・ 
・ 
hash = hash_create("dbms_stats relation statistics cache", 
MAX_REL_CACHE, 
&ctl, HASH_ELEM | HASH_CONTEXT); 
・ 
・
41 
Copyright © 2014 NTT DATA Corporation 
リスクを制御する 
エンジニアの 力 
自力解決・サポート連携でリスクと対峙・軽減する → とても大事 
必要以上にリスクを背負わない → これも大事 
エンジニアの力が試されるところ 
有益な 
効果 
リスク
42 
Copyright © 2014 NTT DATA Corporation 
跳ね返した 
無停止 
メンテを 
DRサイト 
用意! 
リスクと 
対峙 
プラット フォーム 
トラブル 
守れ! 
大量SQL 
の性能
43 
Copyright © 2014 NTT DATA Corporation 
限界まで使い倒した後に見えたもの 
「ポテンシャルを引き出すこと」 PostgreSQLの魅力の一つは豊富な拡張機能 外部モジュールは最大限活用すべし 
「石橋を叩いて備えること」 問題はどうしても発生してしまう 捕捉手段と効果的な対策を持っておくことが大事 
「OSSであることを生かすこと」 機能がなくとも、開発でカバーできる 最後に求められるのは製品能力ではなく、現場能力 
ミッションクリティカルな環境で、強く感じた3か条
44 
Copyright © 2014 NTT DATA Corporation 
PostgreSQLとNTTデータ - この先に - 
パラレルクエリ カラムナストア 
BlockRange INdex 
双方向レプリケーション FDW+JOIN Pushdown パーティション機能強化 
監査強化 権限分掌 プロファイラ 
より強固に 
より高速に 
より広大に 
進化を続ける PostgreSQL を武器に 
さらに高いハードルに挑んでいる
45 
Copyright © 2014 NTT DATA Corporation 
PostgreSQLオリジナルの 機能・性能 
RDBMSとしての 機能・性能 
PostgreSQLとNTTデータ – 新領域へ - 
商用の代替ではない 
PostgreSQL オンリーの領域に挑んでいる 
? 
異種製品 + FDW 
JSON型 
Custom Plan API
46 
Copyright © 2014 NTT DATA Corporation 
おわりに 
PostgreSQL 
× 
NTT DATA はこれからも 
PostgreSQL & コミュニティ 
とともに歩んでいきます

More Related Content

What's hot (20)

VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
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
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
NTT DATA OSS Professional Services
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
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アンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
kasaharatt
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
速習!論理レプリケーション ~基礎から最新動向まで~(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
 
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報PostgreSQL 15 開発最新情報
PostgreSQL 15 開発最新情報
Masahiko Sawada
 
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
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
 
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
 
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
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アンチパターン
PostgreSQLアンチパターンPostgreSQLアンチパターン
PostgreSQLアンチパターン
Soudai Sone
 
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
フックを使ったPostgreSQLの拡張機能を作ってみよう!(第33回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
 
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
YugabyteDBの実行計画を眺める(NewSQL/分散SQLデータベースよろず勉強会 #3 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
 
PostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろうPostgreSQLの関数属性を知ろう
PostgreSQLの関数属性を知ろう
kasaharatt
 
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
PostgreSQLモニタリング機能の現状とこれから(Open Developers Conference 2020 Online 発表資料)
NTT DATA Technology & Innovation
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
歩 柴田
 

Similar to NTT DATA と PostgreSQL が挑んだ総力戦 (20)

SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
Fujishiro Takuya
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報
Hinemos
 
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
Insight Technology, Inc.
 
Aws summits2014 nttデータaws上のシステムはこう作る!
Aws summits2014 nttデータaws上のシステムはこう作る!Aws summits2014 nttデータaws上のシステムはこう作る!
Aws summits2014 nttデータaws上のシステムはこう作る!
Boss4434
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
NTT DATA OSS Professional Services
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
guestc06e54
 
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
Insight Technology, Inc.
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
Insight Technology, Inc.
 
Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)
CLOUDIAN KK
 
Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)
CLOUDIAN KK
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
 
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
Insight Technology, Inc.
 
DeNAでのVertica運用
DeNAでのVertica運用DeNAでのVertica運用
DeNAでのVertica運用
Shota Suzuki
 
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
Toshiaki Baba
 
Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所
Tetsuya Odashima
 
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
SIプロジェクトでのインフラ自動化の事例 (第1回 Puppetユーザ会 発表資料)
NTT DATA OSS Professional Services
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
Fujishiro Takuya
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報Hinemosによるクラウド運用管理の最新情報
Hinemosによるクラウド運用管理の最新情報
Hinemos
 
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
[D24] あなたのビジネスを変えるInfiniDBケーススタディ by Toshihide Hanatani
Insight Technology, Inc.
 
Aws summits2014 nttデータaws上のシステムはこう作る!
Aws summits2014 nttデータaws上のシステムはこう作る!Aws summits2014 nttデータaws上のシステムはこう作る!
Aws summits2014 nttデータaws上のシステムはこう作る!
Boss4434
 
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
Ansibleで構成管理始める人のモチベーションをあげたい! (Cloudera World Tokyo 2014LT講演資料)
NTT DATA OSS Professional Services
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
guestc06e54
 
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか  by 日本ヒューレット・パッカード株式会社 後藤宏
[db tech showcase Tokyo 2014] L34: そのデータベース 5年後大丈夫ですか by 日本ヒューレット・パッカード株式会社 後藤宏
Insight Technology, Inc.
 
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
Insight Technology, Inc.
 
Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)
CLOUDIAN KK
 
Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)Cloudianを利用したソリューション (Cloudian Summit 2012)
Cloudianを利用したソリューション (Cloudian Summit 2012)
CLOUDIAN KK
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
 
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイントJAWS-UG三都物語_企業でのAWS導入のエントリーポイント
JAWS-UG三都物語_企業でのAWS導入のエントリーポイント
Toshiyuki Konparu
 
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
A12 既存のデータベース環境で分析業務を加速させるには? DB2が実現するソフトウエア分析ソリューション(DB2 BLU Acceleration)の仕...
Insight Technology, Inc.
 
DeNAでのVertica運用
DeNAでのVertica運用DeNAでのVertica運用
DeNAでのVertica運用
Shota Suzuki
 
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
物理サーバとクラウドの運用管理の違い 2010 03 24 馬場
Toshiaki Baba
 
Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所Microsoft MVP が語る Azure 移行の勘所
Microsoft MVP が語る Azure 移行の勘所
Tetsuya Odashima
 

More from 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 の確かで意外な技術力
NTT DATA OSS Professional Services
 
Spark SQL - The internal -
Spark SQL - The internal -Spark SQL - The internal -
Spark SQL - The internal -
NTT DATA OSS Professional Services
 
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
 
Hadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返りHadoopエコシステムのデータストア振り返り
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
 
HDFS Router-based federation
HDFS Router-based federationHDFS Router-based federation
HDFS Router-based federation
NTT DATA OSS Professional Services
 
Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状Apache Hadoopの新機能Ozoneの現状
Apache Hadoopの新機能Ozoneの現状
NTT DATA OSS Professional Services
 
Distributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystemDistributed data stores in Hadoop ecosystem
Distributed data stores in Hadoop ecosystem
NTT DATA OSS Professional Services
 
Structured Streaming - The Internal -
Structured Streaming - The Internal -Structured Streaming - The Internal -
Structured Streaming - The Internal -
NTT DATA OSS Professional Services
 
Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?Apache Hadoopの未来 3系になって何が変わるのか?
Apache Hadoopの未来 3系になって何が変わるのか?
NTT DATA OSS Professional Services
 
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
NTT DATA OSS Professional Services
 
HDFS basics from API perspective
HDFS basics from API perspectiveHDFS basics from API perspective
HDFS basics from API perspective
NTT DATA OSS Professional Services
 
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
SIerとオープンソースの美味しい関係 ~コミュニティの力を活かして世界を目指そう~
NTT DATA OSS Professional Services
 
20170303 java9 hadoop
20170303 java9 hadoop20170303 java9 hadoop
20170303 java9 hadoop
NTT DATA OSS Professional Services
 
ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)ブロックチェーンの仕組みと動向(入門編)
ブロックチェーンの仕組みと動向(入門編)
NTT DATA OSS Professional Services
 
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
NTT DATA OSS Professional Services
 
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
NTT DATA OSS Professional Services
 
Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)Apache Hadoop 2.8.0 の新機能 (抜粋)
Apache Hadoop 2.8.0 の新機能 (抜粋)
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
 
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
 

Recently uploaded (8)

IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdfIchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
Matsushita Laboratory
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdfIchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
IchiiRikisuke_理学療法士間の知識共有に向けた臨床推論テキストの構造化に関する研究.pdf
Matsushita Laboratory
 
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OSIoT Devices Compliant with JC-STAR Using Linux as a Container OS
IoT Devices Compliant with JC-STAR Using Linux as a Container OS
Tomohiro Saneyoshi
 
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
 
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptxドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ドメインモデリング基本編①~全体の流れ2025_02_27社内向け開催.pptx
ssuserfcafd1
 
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
 
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
2025フードテックWeek大阪展示会 - LoRaWANを使った複数ポイント温度管理 by AVNET玉井部長
CRI Japan, Inc.
 
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
ElasticsearchでSPLADEする [Search Engineering Tech Talk 2025 Winter]
kota usuha
 
Matching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdfMatching_Program_for_Quantum_Challenge_Overview.pdf
Matching_Program_for_Quantum_Challenge_Overview.pdf
hirokiokuda2
 

NTT DATA と PostgreSQL が挑んだ総力戦

  • 1. Copyright © 2014 NTT DATA Corporation 2014年12月5日 株式会社NTT DATA 笠原 辰仁、澤田 雅彦 NTT DATA と PostgreSQL が挑んだ総力戦 ~ PostgreSQL を極限まで使い切ったその先に見たものとは? ~ PostgreSQLカンファレンス2014
  • 2. 2 Copyright © 2014 NTT DATA Corporation INDEX PostgreSQLとNTT DATA 事例概要 立ちはだかる壁 その先に おわりに
  • 3. 3 Copyright © 2014 NTT DATA Corporation OSSが世の中一般に広まり、活用され始める。 NTT DATA 含め、NTTグループとして戦略的にOSSを 活用していく体制を整え、OSS適用も活発化。 認知・活用へ(199x - 2007頃) 年度 主な出来事 1999 【コミュニティ】 日本PostgreSQLユーザ会(JPUG)設立 2001 【PG】 PostgreSQL 7.1 (ログ先行書き込み(WAL)の実装) 2005 【PG】 PostgreSQL8.0 (Windows対応・PITR) 2006 【NTTG】 NTT OSSセンタ設立
  • 4. 4 Copyright © 2014 NTT DATA Corporation OSSというだけで適用が進む時代が終わる。 NTT DATAでは全社展開のためモデル作成を実施。 エンタープライズ分野での弱点をカバーすべく研究開 発、新規ソリューション開拓も活発に。 普及・継続的取り組みへ(2008 - 2013頃) 年度 主な出来事 2008 【PG】 PostgreSQL 8.3(autovacuum 標準装備) 2011 【PG】 PostgreSQL 9.1(同期レプリケーション機能の採用) 2012 【コミュニティ】 PGECons 設立 2013 【NTTD】 GresCube 販売開始
  • 5. 5 Copyright © 2014 NTT DATA Corporation そして今(2014~) NTT DATA では、OSSスタックが高い利用頻度に。 PostgreSQLのコモディティ化が進む。 大規模システムでも、当たり前にPostgreSQLを使う今。 従来のPostgreSQLの当たり前の使い方だけでは 太刀打ちできない要件が立ちはだかる。
  • 6. 6 Copyright © 2014 NTT DATA Corporation メインサイト 今回ご紹介する事例 認証 データ システム基幹部分 災対サイト 業務・集計 データ 小売店 モバイル POS POS PC 社内外の他システム モバイル向け Web/AP 社内向け Web/AP 集配信 認証盤 オンライン APサーバ オンライン 帳票サーバ バッチ APサーバ モバイル向け Web/認証基盤 オンライン APサバ オンライン 帳票ーバ バッチ・取引 APサバ 業務・集計 データ 非同期 レプリケーション PostgreSQL 販売 店舗情報など 売上 請求情報など PostgreSQL 世界有数のエネルギー元売会社の情報系システム 販売情報等をもとに、集計等をほぼリアルタイムで行う
  • 7. 7 Copyright © 2014 NTT DATA Corporation 特徴(2) OSSメイン & 拡張機能をフル活用 PostgreSQLの拡張機能 pg_statsinfo 性能情報監視用 pg_stat_statement 実行SQLの性能情報監視用 auto_explain スロークエリの実行計画捕捉用 pg_hint_plan 実行計画制御用 pg_dbms_stats 統計情報固定化用 pg_bigm 全文検索(2-gram)用 pg_reorg オンラインテーブル再編成メンテ用 pgfincore (試験時のみ) キャッシュヒット効率向上用 ミドルウェア OS RHEL 6.2 DBMS PostgreSQL9.2 AP Tomcat およそ利用可能な拡張モジュールは全て取り入れた
  • 8. 8 Copyright © 2014 NTT DATA Corporation 迫りくる要件・トラブル 無停止 メンテを DRサイト 用意! リスクと 対峙 プラット フォーム トラブル 守れ! 大量SQL の性能
  • 9. 9 Copyright © 2014 NTT DATA Corporation リスクと 対峙 無停止メンテを 無停止 メンテを DRサイト 用意! プラット フォーム トラブル 守れ! 大量SQL の性能 無停止 メンテを ハードなメンテもオンライン で実施したい VACUUM FULL、REINDEX はどうしよう?
  • 10. 10 Copyright © 2014 NTT DATA Corporation どうするメンテナンス設計!? ~数GBの 小規模テーブル 数百GB以上の 大規模テーブル システム性能への影響 小 →auto vacuumに任せる システム性能への影響 →メンテナンス枠にて手動 で実施 VACUUM 24時間DBアクセス 昼夜問わず大量バッチ 何は無くともまずVACUUM設計 システムへの影響をミニマムに!
  • 11. 11 Copyright © 2014 NTT DATA Corporation 万が一に備えて そこで、外部モジュール!地味に、便利なコマンド! pg_reorg オンラインVACUUM FULL オンラインCLUSTER 自作ツール CREATE INDEX CONCURRENTLY ALTER INDEX でスワップ! VACUUMができなかったら? インデックスが荒れてしまったら? 排他ロック要らず!
  • 12. 12 Copyright © 2014 NTT DATA Corporation 無停止メンテの実現に向けて 必要なメンテナンスと影響を見極める 想定外の事態にも備えておく 想定外のリソース枯渇を抑える。 VACUUMをユーザの制御下に! いざという時にオンラインでメンテ! 外部モジュール等でPostgreSQLをカバー
  • 13. 13 Copyright © 2014 NTT DATA Corporation 無停止 メンテを リスクと 対峙 プラット フォーム トラブル 守れ! 大量SQL の性能 DRサイト用意! DRサイト 用意! DRサイト 用意! 東日本、西日本間でDR PostgreSQLのDRはどのよう に実現する?
  • 14. 14 Copyright © 2014 NTT DATA Corporation 災害対策(Disaster Recovery)を検討せよ 災害時にも止められない! →災害の被害を受けてもサービスを継続するために、遠隔地に メインサイトのコピー(災対サイトの構築)を作る! 東日本(メインサイト) から 西日本(災対サイト) DR対象は(ほぼ)システム全体 課題はPostgreSQLのメイン->災対へのデータ同期・・・ DBデータ 西日本 DBデータ 東日本
  • 15. 15 Copyright © 2014 NTT DATA Corporation やっぱり Streaming-Replication ! アーカイブログ 転送 SR HWレベルでの レプリケーション 決 ○高機能 (運用楽そう) △実績がない… 検証必要 ×運用が面倒 △実績がない… 検証必要 ×価格が高い 運用 導入 ○運用楽 ! 頼れるサポート (Fujii Masao)
  • 16. 16 Copyright © 2014 NTT DATA Corporation ・・・でも本当に大丈夫か?SR データ アーカイブログ WAL 圧縮して高速に転送 解凍・リカバリ マスタ スタンバイ 最大負荷量から必要な帯域をサイジング 初期同期はNW経由・・でもOKそうだ ・・ もしレプリケーションが追いつかなくなったら? データ WAL PostgreSQLが自動でアーカイブログからの 復旧に切り替え! 想定時間内にキャッチアップ!
  • 17. 17 Copyright © 2014 NTT DATA Corporation すごかった!SR 今のところレプリケーション起因の問題はなし PostgreSQLのSRは DR用途にも十分実用的! いいね!Streaming-Replication!
  • 18. 18 Copyright © 2014 NTT DATA Corporation 守れ!大量SQLの性能! 無停止 メンテを DRサイト 用意! リスクと 対峙 プラット フォーム トラブル 守れ! 大量SQL の品質 守れ! 大量SQL の性能 対象は数万本のSQL 性能を守るのは 数名のPG有識者
  • 19. 19 Copyright © 2014 NTT DATA Corporation 10Mに およぶ AP シビアな状況が我々を悩ませた… 数万の SQL 1000人 規模の 開発体制 タイトな スケジュール ポスグレ 経験者 少な目 SQL性能 どう守る? 迅速な SQL チューン?
  • 20. 20 Copyright © 2014 NTT DATA Corporation 10Mに およぶ AP シビアな状況が我々を悩ませた… 数万の SQL 1000人 規模の 開発体制 タイトな スケジュール ポスグレ 経験者 少な目 SQL性能 どう守る? 迅速な SQL チューン?  複雑すぎるSQLを書いてしまう → SQLのメンテナンス性、可読性低下  SQLは書いたけど、多くのSQLで性能問題が発生 → 期間内にすべての性能問題を解決できない 性能要件を満たさず、トラブルを引き起こすSQL(= 問題SQL)を 撲滅するために、我々が用意したものは…?
  • 21. 21 Copyright © 2014 NTT DATA Corporation 5つの関門を用意 ? 1 ? 2 3 ? 4 ? 5 SQLは1~5の関門を通り、 一人前のSQL(=使用可能なSQL)になる !? ?
  • 22. 22 Copyright © 2014 NTT DATA Corporation 1つ目 - SQLガイドライン PJが持っていたSQLガイドラインで、SQLのメンテナンス性を担保 PostgreSQLのノウハウで、“PostgreSQL向けのSQL”に SQLガイドライン •1行当たり最大○○文字 •コメントには/*…*/を使用する •ORDER BYには列名を記載する : SQLガイドライン PostgreSQLのノウハウ •NULLと文字列を連結すると 空文字になる •異なるデータ型で比較しないこと :
  • 23. 23 Copyright © 2014 NTT DATA Corporation チェック項目 結果 テーブルのJOIN数チェック OK 直積使用チェック OK 同じテーブルを複数回見ているかチェック OK 中間一致使用チェック 中間一致はフルスキャンになり性能問 題を起こす可能性があります。 pg_bigmインデックスを利用しましょう : : 2つ目 - SQLチェックツール とはいえ、ヒューマンエラーはある(´Д`lli) “SQLガイドラインに従ったSQL“になっているか20以上の項目を自動で判別 NGの場合は、チェック観点を表示 ■SQL静的チェック結果(イメージ図)
  • 24. 24 Copyright © 2014 NTT DATA Corporation 3つ目 - 実行計画チェックツール サービス開始後、SQLの性能問題が起きないために、 “実行計画”をチェック <実行計画> Sort ->Nested Loop (cost = … -> Index Scan (cost = … -> Seq Scan (cost = … : 見積もりコストは高くなり すぎていない? インデックス使われてる? ただし! サービス開始後に生成される“リアル”な実行計画が必要!
  • 25. 25 Copyright © 2014 NTT DATA Corporation 4つ目 - HINT句でアジリティチューニング HINT句を使い直接実行計画を制御することで、 アジリティなSQLチューニングを可能に ○ HINT句を使用するメリット SQLを書き換えるよりも改修時間が短い! •実行計画を確認して、使用するインデックスやスキャン方法を変えるだけ SQLの実行結果の内容は変わらない! •HINTを付与するだけなので、SQLのリテスト不要 /*+ IndexScan(hoge) */ SELECT * FROM hoge WHERE id = 9999;
  • 26. 26 Copyright © 2014 NTT DATA Corporation 大量SQLの性能を守れました SQLガイドライン 1 SQLチェックツール 2 3 アジリティSQLチューニング 4 SQL書き換え 5 チェック済みの実行計画をサービス開始後も使用 ドキュメントと ツールによる 性能問題防止 遅いSQLの 性能問題解決
  • 27. 27 Copyright © 2014 NTT DATA Corporation リアルな実行計画?PGを騙す? 実行計画チェックの実現、大量SQLの性能担保にあった 2つの課題 ■ 2つの課題 1.ダミーの統計情報を生成しPostgreSQLに設定する仕組みがない → PostgreSQLを騙す仕組み 2.PostgreSQLを騙すことができても一時的な効果でしかない → PostgreSQLを騙し続ける仕組み
  • 28. 28 Copyright © 2014 NTT DATA Corporation 「統計情報カスタマイズ機能」作りました ユーザがテーブルに“任意の統計情報”を設定することが可能 BIG!! 大規模テーブルを スキャンする実行計画 実行計画 作成 <統計情報> •20億件 •500GB : 空 DBA 統計情報 設定 統計情報カスタマイズ 設定する統計情報は 「業務Tmへのヒアリングで見積もる」 + 「一部は機械的に生成」
  • 29. 29 Copyright © 2014 NTT DATA Corporation プランナ pg_dbms_stats PostgreSQL 本来の 統計情報 実行計画 “独自に設定された” “固定化された” 統計情報 生成 pg_dbms_stats × 統計情報カスタマイズ機能 統計情報カスタマイズ機能はpg_dbms_statsの 追加機能として開発しました DBA ・テーブル行数 ・テーブルサイズ ・列幅 ・列の固有値 ・列のヒストグラム、MCV など ■pg_dbms_stats × 統計情報カスタマイズ機能 直接設定!
  • 30. 30 Copyright © 2014 NTT DATA Corporation プラットフォームトラブル 無停止 メンテを DRサイト 用意! リスクと 対峙 プラット フォーム トラブル 守れ! 大量SQL の性能 プラット フォーム トラブル 様々なトラブルが 発生! 原因はPG? それとも…?
  • 31. 31 Copyright © 2014 NTT DATA Corporation リソース使用量に異常発生! PostgreSQLの サーバログ確認 APサーバの ログ確認 DBサーバの カーネルログ 確認 他のリソース使用 状況確認 OK OK OK OK 試験中にDBサーバに異変が(´Д`lli) CPUのsysが高騰している(常に80%以上) →PostgreSQLに問題はなさそうなので、 Linuxの性能解析ツール(perf)で調べてみることに
  • 32. 32 Copyright © 2014 NTT DATA Corporation カーネルサイドからのアプローチ perf topの状況を見ると、PostgreSQL以外に原因がありそう ■perf top結果(一部抜粋) 320878.00 29.0% SpinPause /usr/java/…/libjvm.so 187781.00 17.0% _spin_lock_irq [kernel.kallsyms] 143784.00 13.0% read_hpet [kernel.kallsyms] 109362.00 9.9% ParallelTaskTerminator /usr/java/…/libjvm.so 35295.00 3.2% native_write_msr_safe [kernel.kallsyms] 33563.00 3.0% intel_idle 25783.00 2.3% _spin_lock 19725.00 1.8% _spin_lock_irqsave 11848.00 1.1% find_busiest_group 2835.00 0.3% compaction_alloc [kernel.kallsyms] 2782.00 0.3% unmap_vmas [kernel.kallsyms] 2603.00 0.2% rb_next •調べてみるとRHEL6.2にあったTransparent Huge Page(THP) のバグを踏んでいたよう •THPを無効にすることによりCPUのsys高騰が解消した もしかして、 HugePage関連? Linuxカーネル 技術者
  • 33. 33 Copyright © 2014 NTT DATA Corporation 再び異常発生!また!? 試験中にDBサーバのレスポンスが急激に悪化 ヽ(ヽ゜ロ゜) vmstatを見るとswapが大量発生 vmstatの結果(一部抜粋) procs -------------memory------------ --swap-- ---io--- r b swpd free buff cache si so bi 00:13:39 22 6 1446440 23304532 108560 66972348 504 1374 15280 … 00:13:44 11 6 1451608 23112444 108648 67165456 786 1281 19406 … 00:13:49 10 6 1457416 23168188 108800 67330992 125 1184 18972 … 00:13:54 14 6 1466048 22865104 108892 67517832 660 1794 22452 … 00:13:59 28 5 1471792 22766112 108980 67579072 130 1203 14629 … 00:14:04 11 3 1475952 22519940 109068 67685576 46 842 10079 … 00:14:09 27 1 1482372 22400092 109180 67703616 182 1323 6529 …
  • 34. 34 Copyright © 2014 NTT DATA Corporation DBサーバのメモリ使用量が多い事は、これまでも話題に上がっていた なので、まずはメモリ使用量を削減する対策を実施 shared_buffersを小さくする work_memを小さくする コネクション数削減 PostgreSQL以外のプロセスのメモリ使用量も確認・削減 など メモリの使過ぎが原因かも!
  • 35. 35 Copyright © 2014 NTT DATA Corporation え!?あれ!? メモリが空いているにも関わらず、swapが起きている! これには別の原因がありそう! vmstatの結果(一部抜粋) procs -------------memory------------ --swap-- ---io--- r b swpd free buff cache si so bi 00:13:39 22 6 1446440 23304532 108560 66972348 504 1374 15280 … 00:13:44 11 6 1451608 23112444 108648 67165456 786 1281 19406 … 00:13:49 10 6 1457416 23168188 108800 67330992 125 1184 18972 … 00:13:54 14 6 1466048 22865104 108892 67517832 660 1794 22452 … 00:13:59 28 5 1471792 22766112 108980 67579072 130 1203 14629 … 00:14:04 11 3 1475952 22519940 109068 67685576 46 842 10079 … 00:14:09 27 1 1482372 22400092 109180 67703616 182 1323 6529 … 最近コミュニティで、 似たような事象が 報告されていたような。 PostgreSQL技術者
  • 36. 36 Copyright © 2014 NTT DATA Corporation リモートのメモリが使えない!空いているのに! メモリ (32GB) メモリ (32GB) メモリ (32GB) メモリ (32GB) メモリを確保する際、設定状況によってはリモートのメモリを使 うことができず、ローカルメモリをスワップしてしまう CPU CPU CPU CPU メモリの余りが ない… メモリインタリーブを有効にすることで解決! ローカルメモリ リモートメモリ リモートメモリ リモートメモリ
  • 37. 37 Copyright © 2014 NTT DATA Corporation 解決に至るアクティビティ 他の技術者との連携 コミュニティの情報をキャッチアップ
  • 38. 38 Copyright © 2014 NTT DATA Corporation リスクと対峙 無停止 メンテを DRサイト 用意! ラスト リゾート プラット フォーム トラブル 守れ! 大量SQL の性能 リスクと 対峙 新規機能盛りだくさん 色々便利だけど・・・
  • 39. 39 Copyright © 2014 NTT DATA Corporation チャレンジにはリスクが伴う 例えば 最終テストに差し掛かっていたある日、 PostgreSQLがSEGVで落ちた。 → 再現も難しい・・ → PostgreSQLに懸念の目が・・ 新しい 機能! 新しい 仕組み! + = 未知の トラブル PostgreSQL 大丈夫?・・・ 周りの人
  • 40. 40 Copyright © 2014 NTT DATA Corporation リスクに立ち向かう そこはOSS ソースコードとコアダンプがある。開発元と共に原因を特定。 パッチを書いて、根本対処 Program received signal SIGSEGV, Segmentation fault. pg_detoast_datum_packed (datum=0x2) at fmgr.c:2273 2273 if (VARATT_IS_COMPRESSED(datum) || VARATT_IS_EXTERNAL(datum)) (gdb) bt #0 pg_detoast_datum_packed (datum=0x2) at fmgr.c:2273 #1 0x00000000006d5c24 in bpchargt (fcinfo=0x7fffdc6b4f80) at varchar.c:801 #2 0x000000000072127f in FunctionCall2Coll (flinfo=<value optimized out>, collation=<value optimized out>, arg1=<value optimized out>, arg2=<value optimized out>) at fmgr.c:1327 #3 0x00000000006c972f in ineq_histogram_selectivity (root=0xfca988, vardata=0x7fffdc6b54a0, opproc=0x7fffdc6b5410, isgt=1 '¥001', constval=16558024, consttype=1042) at selfuncs.c:836 ・ ・ ・ (gdb) p *(Form_pg_statistic) ((char *) vardata->statsTuple->t_data + vardata->statsTuple- >t_data->t_hoff) $2 = {starelid = 900400380, staattnum = 12, stainherit = 0 '¥000', stanullfrac = 0, stawidth = 4, stadistinct = 2, stakind1 = 1, stakind2 = 3, stakind3 = 0, stakind4 = 0, stakind5 = 0, staop1 = 1752, staop2 = 1754, staop3 = 0, staop4 = 0, staop5 = 0} ・ ・ ・ hash = hash_create("dbms_stats relation statistics cache", MAX_REL_CACHE, &ctl, HASH_ELEM | HASH_CONTEXT); ・ ・
  • 41. 41 Copyright © 2014 NTT DATA Corporation リスクを制御する エンジニアの 力 自力解決・サポート連携でリスクと対峙・軽減する → とても大事 必要以上にリスクを背負わない → これも大事 エンジニアの力が試されるところ 有益な 効果 リスク
  • 42. 42 Copyright © 2014 NTT DATA Corporation 跳ね返した 無停止 メンテを DRサイト 用意! リスクと 対峙 プラット フォーム トラブル 守れ! 大量SQL の性能
  • 43. 43 Copyright © 2014 NTT DATA Corporation 限界まで使い倒した後に見えたもの 「ポテンシャルを引き出すこと」 PostgreSQLの魅力の一つは豊富な拡張機能 外部モジュールは最大限活用すべし 「石橋を叩いて備えること」 問題はどうしても発生してしまう 捕捉手段と効果的な対策を持っておくことが大事 「OSSであることを生かすこと」 機能がなくとも、開発でカバーできる 最後に求められるのは製品能力ではなく、現場能力 ミッションクリティカルな環境で、強く感じた3か条
  • 44. 44 Copyright © 2014 NTT DATA Corporation PostgreSQLとNTTデータ - この先に - パラレルクエリ カラムナストア BlockRange INdex 双方向レプリケーション FDW+JOIN Pushdown パーティション機能強化 監査強化 権限分掌 プロファイラ より強固に より高速に より広大に 進化を続ける PostgreSQL を武器に さらに高いハードルに挑んでいる
  • 45. 45 Copyright © 2014 NTT DATA Corporation PostgreSQLオリジナルの 機能・性能 RDBMSとしての 機能・性能 PostgreSQLとNTTデータ – 新領域へ - 商用の代替ではない PostgreSQL オンリーの領域に挑んでいる ? 異種製品 + FDW JSON型 Custom Plan API
  • 46. 46 Copyright © 2014 NTT DATA Corporation おわりに PostgreSQL × NTT DATA はこれからも PostgreSQL & コミュニティ とともに歩んでいきます