NTTデータと PostgreSQL が挑んだ総力戦。PostgreSQLを極限まで使い切ったその先に見たものとは?(前編) NTTデータオープンソースDAY2015

2015年2月9日

現在のシステム構築では、オープンソースのソフトウェアを使うことは当たり前になってきています。PostgreSQLはそうした中で主にエンタープライズ向けのデータベースとして着実に事例を増やしてきています。

その中で、PostgreSQLを大規模なミッションクリティカルなシステムの中で使うには、どのようなノウハウが求められるのか。オープンソースの利用に積極的なNTTデータがその事例を、1月26日に開催されたイベント「NTTデータオープンソースDAY 2015」のセッション「NTTデータと PostgreSQL が挑んだ総力戦。PostgreSQLを極限まで使い切ったその先に見たものとは?」で紹介しています。講演内容をダイジェストにしました。

PostgreSQLでシビアな条件に立ち向かう

NTTデータ 基盤システム事業本部 澤田雅彦氏。

2012年入社以来、PostgreSQLの研究開発、技術支援に従事してきました。

大規模システムでも当たり前にPostgreSQLを使う現在でも、シビアな条件で使おうとするとまだまだ課題があります。そこで、そのような事例でPostgreSQLを使う際にどのような対策をしてきたのか、お話していきたいと思います。

fig

PostgreSQLは、コミュニティが主体となって継続的に開発、保守されているRDBMSです。

進化のトレンドとしては、レプリケーションという大きな機能が入ったのがバージョン8から9にかけて。9.1では同期レプリケーションが入ってさらに高可用な方向に進化。9.2、9.3ではインデックススキャンの強化や、フェイルオーバーの高速化、最新版ではNoSQL機能の強化でスキーマレスのデータベースとしても使えるようになってきています。

このようにエンタープライズへの適応に向けて新機能の追加や性能改善が行われていて、同時に事例も年々大規模になってきています。近年では海外の政府、金融系、クラウドのネットワーク機能のバックエンドなど大規模システムでも使われるようになりました。

現在ではNTTデータも、PostgreSQLを大規模システムでも当たり前に使うようになりました。しかし、当たり前の使い方では太刀打ちできない要件が立ちはだかりました。

世界有数のエネルギー元売り会社の情報系システムです。

fig

フロントエンドにはモバイルデバイスやPOS、PCなどがあります。ここから送られてくる情報を元に集計などをほぼリアルタイムに行います。システムが落ちると社会的な影響が大きいので、災害対策サイトへディザスタリカバリをしていて、情報系とはいえミッションクリティカル性の高いシステムです。

開発体制も1000人体制で、データベースは約10テラバイト、SQL文が約2万本、データベースへのアクセスは200TPS以上です。

このシステムをRed Hat Enterprise Linux 6.2、PostgreSQL 9.2、Tomcatなどオープンソースをメインに用いて構築しました。

また、PostgreSQLは拡張機能が豊富なのが特長の1つですが、よく使われている拡張機能はほぼ全て取り入れるというチャレンジングなシステムです。これだけの拡張モジュールを入れてPostgreSQLのポテンシャルを引き出さなければいけないぐらい、シビアな要件だったということです。

fig

この開発の中での5つの課題のうち、3つのトピックについて紹介したいと思います。

fig

東日本と西日本のあいだでディザスタリカバリを実現

1つ目は、いかにしてディザスタリカバリを実現したかです。

災害時にも止められないようなミッションクリティカルなシステムなので、万が一のときにも災害対策サイトで動き続けるように、システム全体を対象として東日本と西日本のあいだでディザスタリカバリをするようにしました。

このとき、データベースのデータをどのようにメインのシステムから災害対策サイトへ同期させるかがいちばんの課題でした。

fig

今回はPostgreSQLに標準で入っている非同期レプリケーション機能にあたる、Streaming Replicationを選びました。標準機能なので運用が楽なのと、さらに弊社のFujii MasaoがこのStreaming Replicationの主要な開発者の1人だったので、なにかトラブルがあったとしても根本解決がしやすいというのが後押しになりまいた。

fig

ただ、これほど大規模なデータベースの長距離でのレプリケーションをディザスタリカバリ用途に使ったことはなかったので、いろんな検証をしました。例えばネットワークのサイジングや同期方法などです。

マスター側の転送負荷や送るデータ量など、ひとつひとつ検証して本当に使えるかを検証しました。

fig

その結果、十分実用的だということが分かりました。

fig

SQL文のトラブルを5つの関門で解決

次は開発の時のエピソードです。

このシステムの開発規模は約1000人ですが、データベースエンジニアは数名しかいませんでした。この数名で2万本ものSQL文の性能をどう守ったか。

アプリケーション開発者が複雑すぎるSQL文を書いてしまうと、メンテナンス性や可読性が落ちて、トラブルや性能低下があったときに対策が難しくなります。ですので、そうした問題のあるSQL文は撲滅しなければなりません。

fig

そこでSQL文に5つの関門を設けました。

1つ目は「SQLガイドライン」です。まずSQLのメンテナンス性を確保し、そこにPostgreSQLのノウハウを付加しました。

fig

それでもSQL文を書くのは人なのでガイドラインを外れることがあります。そこで2つ目の「SQLチェックツール」で自動的にチェックする仕組みを作りました。SQLのシンタックスレベルでチェックしました。

これが通ったSQLは、シンタックス的には問題のないSQLということになります。

fig

≫後編に続く。後編では、実行計画のチェックの実現方法、本番直前に起きたセグメンテーションフォルトの原因追及などについて。

このエントリーをはてなブックマークに追加
Bookmark this on Delicious

タグ : PostgreSQL , オープンソース , リレーショナルデータベース

≫次の記事
NTTデータと PostgreSQL が挑んだ総力戦。PostgreSQLを極限まで使い切ったその先に見たものとは?(後編) NTTデータオープンソースDAY2015
≪前の記事
2014年第4四半期、Amazonクラウドのシェアは28%で年50%成長、続くマイクロソフトはシェア約10%ながら年96%成長で猛追中。Synergy Research Group

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


新サイト「Publickey Topics」始めました!


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. SoftLayerの創立者、IBMを去る。その理由は
  2. [速報]VMware、Dockerコンテナ並みのスピードで仮想マシンをプロビジョニング可能な「Instant Clone」機能を発表
  3. [速報]VMware、vSphere 6を発表。長距離vMotion、マルチプロセッサVM用フォルトトレラント機能など
  4. [速報]VMwareがOpenStackディストリビューション「VMware Integrated OpenStack」リリース。VMwareユーザーは無料で利用可能
  5. [速報]欧SAP、R/3後継となる次期ERP「SAP S/4HANA」発表。HANAインメモリデータベース専用に新規開発
  6. 2014年第3四半期、Amazonクラウドのシェアは28%で年50%成長、続くマイクロソフトはシェア約10%ながら年96%成長で猛追中。Synergy Research Group
  7. SAPの新ERP「S/4HANA」、データベースはHANAのみ。HTML5ベースのUI、クラウドとオンプレ両対応
  8. DockerとKubernatesを核にしたPaaS基盤へと変わるOpenShift V3
  9. OpenStack専業のシステムインテグレータ「Mirantis」が日本法人設立、国内本格参入
  10. IT系企業の平均給与を業種別にみてみた 2014年版 ~ ネットベンチャー、ソーシャル、ゲーム編
  11. オープンソースのバルクデータローダー「Embulk」登場。fluentdのバッチ版、トレジャーデータが支援
  12. 今からでも間に合うDockerの基礎。コンテナとは何か、Dockerfileとは何か。Docker Meetup Tokyo #2
  13. YouTubeがHTML5のVideoタグをデフォルトにしたと表明、従来のFlashに代わり
  14. Publickey Smar
  15. マイクロソフトの新しいレンダリングエンジン「Edge」、新ブラウザ「Project Spartan」「次期IE」両方のデフォルトに

Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus