メールアーカイブ製品 MailDepot における PostgreSQL での大容量データ処理の実現 株式会社 SRA 産業第3事業部 溝口 英利 ニュービジネス戦略本部 川辺 義勝 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved Agenda 1. SRAのご紹介 2. メールアーカイブ製品 MailDepot のご紹介 3. MailDepot 製品における PostgreSQL の役割 4. PostgreSQLによる大容量データ処理の実現 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 1 SRA SRA のご紹介 のご紹介 2 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved SRA ホールディングスのご紹介 社 名: 株式会社SRAホールディングス (東京証券取引所市場第一部) http://www.sra-hd.co.jp/ SRA(Europe) B.V. 大連愛鴻軟件有限公司 本社(オランダ アムステルダム) SRA AMERICA, Inc. (アメリカ ニューヨーク州) 本社所在地:〒171-0022 東京都豊島区南池袋2-32-8 TEL: 03-5979-2666(大代表) 設立日 1967年11月20日 代表取締役社長 鹿島 亨 □2011年度(連結) 社員数 : 1,680名 グループ企業一覧 国内 (株) (株) (株) (株) (株) (株) (株) 売上 Software Research Associates South East Asia Pte. Ltd. (シンガポール) : 331億円 SRA (社員数 : 1,077名) AIT (社員数 : 125名) ソフトウエア・サイエンス (社員数 : 171名) SRA西日本: (社員数 : 106名) SRA東北 (社員数 : 108名) SRAプロフェッショナルサービス クレディスト SRA India Private Limited (インド バンガロール) ㈱SRA東北 ㈱ SRA ㈱SRA西日本/広島支社 海外 SRA AMERICA, INC SRA OSS, Inc. SRA(Europe)B.V. SRA India Private Limited 大連愛鴻軟件有限公司 Software Research Associates South East Asia Pte. Ltd. InterTech Data Systems, Inc. Copyright© 2012 Software Research Associates, Inc. All Rights Reserved SRA OSS,Inc.(本社) InterTech Data Systems, Inc. (アメリカ カリフォルニア州 シリコンバレー) └──先端技術研究所 ㈱ AIT ㈱ ソフトウエア・サイエンス ㈱ SRAプロフェッショナルサービス ㈱コンピュワークス ㈱ クレディスト SRA OSS,Inc.日本支社 ㈱ SRA/関西事業所 ㈱SRA西日本 ㈱ AIT/大阪事業所 ㈱ SRA/中部事業所 (名古屋) 3 株式会社SRA概要 株式会社SRA (Software Research Associates, Inc.) 設 立 代表取締役社長 資 本 金 売 上 従業員数 : : : : : : 1967年11月20日 鹿島 亨 26億4,020万円 331億円 (2011年度3月 SRAHD連結) 168億円 (2011年度3月 (株)SRA単体) 1,077名 (2012年4月1日現在) 東京証券取引所 市場第一部上場SRAHDのグループ企業となる(平成18年9月30日) CMM 「レベル3」 認定(2001年12月) ISO9001 をネットワーク構築・運用サービスで認定取得 経済産業省 System Integrator 登録(1988年12月) PostgreSQLユーザー会 前理事長 石井達夫在籍 UNIXをソフトウェア開発環境の為、日本で最初に導入(VAX11/UNIX-3BSD) プライバシーマーク付与の認定取得(1999年2月取得) 4 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved SRAの活動 受託開発を中心とした部隊 製品開発、研究開発、基幹業務開発等、広い分野のスキルを保有し、開発支援ツールを用いた各種 開発、業務アプリケーション、大規模Webシステム開発を中心とした受託開発を行っております。 Open Souroe Software 受託開発 独立系 オブジェクト 指向 ソリューションビジネス 運用/構築 SRA ソリューションビジネスを中心とした上流工程から下流工程まで の一貫したサービスをご提案致します。 長年のシステム開発 実績に加え、各産業の特化した業務知識をもとに、今、お客様 が抱えられている課題解決に向けて、コンサルテーション~最 適プロダクト選択~開発~運用~保守をご提供致します。 運用/構築 プロダクト コンサルテーション Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 官公庁や上場企業をはじめとする30年余の豊富な実績と経験 をもとに、オープンシステムからメインフレームにおける運用業 務支援やオペレーションのサービスをご提供致します。 5 SRAの活動 コンサルテーション お客様のシステム環境に最も有効かつ最適なアプリケーションをコ ンサルティングし統合的なソリューションをご提供致します。 また、上流工程から参画することにより、開発プロセスの改善・品質 管理への意識高揚に努めております。 受託開発 運用/構築 プロダクト SRA <マイグレーション> ・EnterpriseDB、RPG to Java、COBOL to COBOL、 他 <開発支援ツール> ・IBM Rational Software、Qt、Fortify、CodeDepot, SSISQET、他 <業務パッケージ> ・UniVision、SuperStream、帳票ソフトウェア、他 <ミドルウェア> ・PowerGresファミリー製品、ASIMA、MailDepot <B to B to C> ・EC-PEDIGREE、ROS3、 EDI、SI Web Shopping 他 プロダクト コンサルテーション ☆開発を柱としたコンサルテーション・プロダクトとの連携、そして運用 ☆開発を柱としたコンサルテーション・プロダクトとの連携、そして運用 それぞれが連携することにより、付加価値の高いサービスの それぞれが連携することにより、付加価値の高いサービスの ご提供が可能です。 ご提供が可能です。 6 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved PostgreSQL による開発実績例 業種 システム 工数 情報技術基盤 某サービス業 買取サイト 数十人月 Linux、PostgreSQL、 Java、Apache、 独自フレームワーク 某サービス業 携帯オークション サイト 流通・サービス業界 小売業 小売業 (音楽商材) Webマーケット プレイスシステム 宅配システム オークションサイト Linux、PostgreSQL、 Java、perl、Apache、 独自フレームワーク 約20人月 約100人月 FreeBSD、PostgreSQL、 PHP、Perl、Apache フェーズ1~3 約115人月 Linux、PostgreSQL、 Java、Struts、Apache、 sendmail、Eclipse、 オブジェクト指向設計 数70人月 Linux、PostgreSQL、 Java、Apache、Tomcat、 Struts、Slony-Ⅰ、Verocity Copyright© 2012 Software Research Associates, Inc. All Rights Reserved システム概要 ・不要品を取り扱う中古ショップの総合情報サービス(PC&携帯) ・全国のリサイクルショップと質屋が加盟。 ・近所のサイクルショップ検索・ネットを通じた不要品の一括見積機能構築。 ・本システムの追加機能(要件定義~テスト、保守)まで担当。 ・携帯電話ひとつで出品から落札までオークションに関するすべての プロセスを、いつでもどこでも行える携帯電話専用オークションサイト。 ファッションアイテムを中心にレアアイテム、趣味の品など幅広く 常時ラインナップ。 ・本システムの追加機能(要件定義~テスト、保守)まで担当。 ・すべてオープンソースによって構築。保守、メンテナンスを考慮し、 開発言語PHPを採用。各サプライヤー向けに年間170億円のビジネスが 展開されるマーケットプレイスのサイトを提供。 ・本システムでは作成途中であったシステムの調査/分析、 新要件定義 から始り、・発注/受注/仕入/納品、レポート、顧客管理まで、 すべて標準装備を構築。 ・スーパーマーケットで販売している実商品をインターネット上で販売し、 宅配するシステム。サイトを分類すると会員サイト、本部サイト、店舗サイト、 センターサイト、決済サイト、サービスサイト、imodeサイトも構成し、 充実した機能を網羅し効率を向上。 ・要件定義、設計~保守、ネットワーク構築のすべてを担当。 MVCモデルを採用し、短期構築を実現するとともに、 安定したシステムを構築 ・フルにオープンソースを活用したオークションサイト。UNIX+Oracle+ 商用ミドルウェアで構築されていたものをオープンソースをベースに 再構築。 ・本システムでは要件分析、要件定義、インフラ性能検討、DB構成検討 の実施。また調査~設計~開発~テストまで一環して作業。 7 PostgreSQL による開発実績例 Java PHP Ruby PowerGres pgpool-II PostgreSQL Plus LifeKeeper Cluster Pro textsearh_ja Avance Slony-I Ludia NetVault Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 8 PostgreSQL による自社製品 • MailDepot – 低価格で大容量のメールアーカイブ製品 • UniVision – 総合的な文教事務システムソリューション • SSISQET – 設計品質・プロジェクトリスク管理ツール Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 9 メールアーカイブ製品 メールアーカイブ製品 MailDepot MailDepot のご紹介 のご紹介 10 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 電子メールのリスク SPAM ウィルス感染 機密保持 メールの送信ミス 不適切な内容 個人情報保護 法令順守 フィッシング詐欺 メールの紛失 内部統制 標的型 攻撃 SOX法 機密情報の漏洩 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 業務外の使用 個人情報の漏洩 11 メールアーカイブとは メールアーカイブ ≠ バックアップ リスク対策 • 問題発生時の調査分析 – 過去の全ての送受信メールから必要なメールを検索 • 不正利用の抑制 コンプライアンス対策 – 全ての情報を安全に記録し、監視 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 12 メールアーカイブに必要な機能 • 組織の 組織の全てのメールを確実 てのメールを確実に 確実に保存 • 全メールを効率的 メールを効率的に 長期に保管 効率的に長期に • 保存メールに 保存メールに対 メールに対する高速 する高速な 高速な検索を 検索を提供 • 保存メールに 保存メールに対 メールに対する管理 する管理/ 管理/監視 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 13 MailDepot とは • 低価格で大容量の本格的メールアーカイブ製品 – アーカイブ機能に特化 • フィルタ機能などを排除し、低価格で提供 – オープンソースを活用して実現 • PostgreSQL, Apache, PHP, ・・・ – 高速/大容量保存、高速検索を実現 • 10TB の大容量に対応 – シンプルな構成、簡単な運用 14 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved MailDepotの特徴 • 高速/大容量 プレミアム版 – 1日25万通のメールに対応 • 一日 100万通 万通に対応 • 最大 50TB の保存 – 最大10TBの保存が可能 – 内容の同じメールを検出して効率的に保存。 • 高速検索 – – – – 100万件のメールの中から1通を1秒以内で検索。 保存したメールを直ぐに検索可能。 ヘッダや本文など様々な条件で検索可能。 MS-Office, PDF 等の添付ファイルも検索可能。 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 15 MailDepotの特徴 • シンプルな構成 高速・大容量保存 メール 高速検索 MailDepot POP/SMTP コピー転送 メール サーバ メールの取込みに、SMTP/POP プロトコルを利用 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 16 MailDepotの特徴 • 簡単な運用 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 17 MailDepot MailDepot 製品における 製品における PostgreSQL PostgreSQL の役割 の役割 18 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved MailDepotのソフトウェア構成 md_import libtsylph 管理コマンド PHP libtextconv Dovecot md_milter libmilter 管理画面 PostgreSQL CakePHP textsearch_ja PEAR PHP Postfix アーカイブ Apache RHEL/CentOS Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 19 MailDepotのソフトウェア構成 PostgreSQL アーカイブ保存用テーブル ヘッダ保存 テーブル 本文保存 テーブル 管理用テーブル ユーザ情報テーブル 設定情報テーブル 検索用テーブル 統計用テーブル ジョブ管理テーブル パーティション 管理テーブル ログ記録用テーブル Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 20 PostgreSQL の役割 • メールの安全な保存 – 改ざん検知用にシグネチャ情報を記録 – 保存メールへの検索・参照操作をログに記録 • メールの効率的な保存 – 同胞送信メールの検知による重複排除 – PostgreSQL による長文テキストの自動圧縮 • 保存メールに対する柔軟で高速な検索 – PostgreSQL による複合検索と全文検索 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 21 PostgreSQL の役割 • 全文検索の実現 – Libtextconv による添付ファイルからのテキスト抽出 • ZIP, TAR, LZH からの個別ファイルの抽出 • MS-Office 、ODF、PDF などからのテキスト抽出 – textsearch_ja によるワード抽出 (分かち書き) • 形態素解析によるトークン解析 – tsvector/ tsvector/tvquery tvquery によるテキスト検索 • AND/OR/NOT条件によるキーワード検索 – GIN インデックスによる高速検索 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 22 PostgreSQL の役割 • データの管理 – データ容量の管理 (ライセンス管理) – 古いアーカイブの一括削除 – アーカイブのバックアップ・リストア • 統計情報、ログ情報の蓄積 – トラフィック情報、ランキング情報 – 操作ログ、システムログ • 設定情報の管理 – ユーザ情報と権限の管理 – 検索条件、個人設定、システム設定の保存 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 23 PostgreSQLによる大容量データ処理の実現 PostgreSQLによる大容量データ処理の実現 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 24 メールアーカイブの特性 • 新しいデータが常に追加され続ける。 • 高速検索が必要だが、検索利用者は少数。 • 古いデータを時々削除する必要がある。 • 検索では、最近のメールや特定期間の メールが検索対象となることが多い。 • 検索条件では、日付、宛先、件名、添付 ファイル名による検索が頻繁に利用される。 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 25 テーブルのパーティショニング 保存データを月単位で複数のテーブルに分割 ヘッダ保存 ヘッダ保存 テーブル テーブル 親 本文保存 本文保存 テーブル テーブル テーブル 2012_12 (当月) 2012_12 (当月) 2012_11 (先月) 2012_11 (先月) 2012_10 (先々月) 2012_10 (先々月) Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 子 テーブル 26 テーブルのパーティショニング • インデックス更新の処理負荷の抑制 – レコード数が多くなると更新処理の負荷が高くなる。 – 特に、GIN インデックスの更新処理は負荷が重い。 • 検索の高速化 – 検索期間により、検索対象のパーティションが絞られる。 – 頻繁に検索されるパーティションのキャッシュの効率化。 • データの運用管理 – 古いデータの高速な一括削除が可能。 – 月単位のデータのバックアップ・リストアが容易。 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 27 テーブルのパーティショニング 0 0, 35 1, 1, 25 0, 00 00 0 0 00 0 0, 15 1, 1, 05 0, 00 00 0 0 0, 00 95 85 0, 00 0 0 0, 00 75 65 0, 00 0 0 0, 00 55 45 0, 00 0 0 0, 00 35 0, 00 25 0, 15 ,0 50 0 40 35 30 25 20 15 10 5 0 00 処理件数/秒 レコード追加 レコード 追加 の 処理性能 レコード数 レコード 数 テーブルの更新処理の処理性能 28 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved GINインデックスの利用 • テキスト検索の高速化 GiST インデックス (汎用検索ツリー) GIN インデックス (汎用転置テーブル) 検索 GiST 遅い GIN 早い 構築 更新 早い 早い 遅い 遅い インデックス容量 小さい 大きい Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 29 検索用テーブルの分割 • 検索用テーブルの追加 – Subject, To/Cc, From, Attachments など 検索フィールド毎に検索用テーブルを作成 – テーブルを小さくし、部分文字列検索を高速化 From: ヘッダ検索用テーブル ヘッダ保存 テーブル To:/Cc: ヘッダ検索用テーブル Subject: ヘッダ検索用テーブル 本文保存 テーブル 添付ファイル名検索用テーブル 30 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved パラメタ―チューニング • GIN インデックスの更新処理の高速化 – maintenace_work_mem GINインデックスの構築時間は maintenance_work_mem の 設定に非常に 敏感 です。 – work_mem FASTUPDATEが有効な既存の GINインデックスに対して挿入を 繰り返す間、待機中の項目リストがwork_memより大きくなると、 システムはこのリストを整理します。 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 31 パラメタ―チューニング • 更新時の Disk I/O の負荷軽減 – – – – wal_buffers checkpoint_segments checkpoint_timeout checkpoint_completion_target • 検索・参照のキャッシュ利用率の向上 – shared_buffers – effective_cache_size Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 32 更なる高速化を目指して • フラッシュストレージの活用による高速化 • スナップショットバックアップ Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 33 更なる高速化を目指して • サーバ用フラッシュストレージ – PCI 接続フラッシュストレージ • ioDrive / Intel 910 – RAID 接続フラッシュストレージ • IBM eXflash, ・・・ HDD ioDrive シーケンシャル(1M) READ WRITE 114,775 57,800 750,376 540,586 非同期ランダム(8K) READ WRITE 1,135 1,136 81,885 82,112 単位: KB/s 34 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 更なる高速化を目指して • SSD の活用による高速化 ジャーナル ジャーナル ログ ログ インデックス インデックス (当月) (当月) テーブル テーブル (当月) (当月) インデックス インデックス (先月、・・) (先月、・・) テーブル テーブル (先月、・・) (先月、・・) SSD ハードディスク Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 35 更なる高速化を目指して • SSD の活用による高速化 600000 500000 処理件数 400000 300000 200000 100000 0 0 60 120 180 240 300 360 時間(分) SSDなし WAL+インデックス WAL WAL+インデックス+テーブル Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 36 更なる高速化を目指して • pg_dump/pg_restore によるバックアップ テーブル単位のバックアップ/リストアが可能。 処理時間が長く、処理負荷が高い。 • PITR によるスナップショットバックアップ 処理が高速で、負荷が低い。 差分バックアップが可能。 部分的なバックアップはできない。 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 37 更なる高速化を目指して • スナップショットバックアップ wal アーカイブの保存開始 WAL DATA copy rsync pg_start_backup() rsync による差分同期 pg_start_backup() wal アーカイブの保存停止 バックアップ wal アーカイブの移動・削除 Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 38 サマリ • PostgreSQL により安全で効率的な保存を実現 • PostgreSQL により柔軟で高速な検索を実現 • 大規模向けにチューニング – パーティショニング、 テーブル分割 – GIN インデックス、 パラメタチューニング • 更なる大規模に向けて – SSD の活用による高速化 – スナップショットバックアップ Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 39 ありがとうございました トライアル版提供中。 保存容量10GB、1ヶ月間利用可能。 株式会社 SRA http://www.sra.co.jp/maildepot/ Copyright© 2012 Software Research Associates, Inc. All Rights Reserved 40
© Copyright 2024 Paperzz