メールアーカイブ製品 MailDepot における PostgreSQL での大容量

メールアーカイブ製品 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