IPSJ 2014

カラム指向型データベース
向けハードウェアキャッシュ
機構の検討
濱田 耀彦(1) 松谷 宏紀(1)(2)(3)
(1) 慶應義塾大学
(2) JST さきがけ
(3) 国立情報学研究所
1
ICT におけるトレンド: ビッグデータとグリーン化
Big data: the next oil
Green datacenters
データの蓄積・利活用によって
さまざまなイノベーションが期待
地球温暖化防止の観点、経済
面(データセンター運用コスト)
から消費電力の削減は必須
9000 [EB]
6000
3000
2005
Information Sensor
explosion Social media
2010
Voice
Enterprise
2015
Amortized CAPEX
Servers
OPEX
Power Power
cooling use
 IT 機器の増強へ作用(電力増)  IT 機器の省電力化への要求
• IT 機器の省電力化をこれまで以上に推し進めなければ、
電力がビッグデータ利活用の大きな足かせになる
• 制限: IT 機器の省電力化はすでにやり尽くされている
– データセンターでは、コモディティ機(コスト効率重視)が多用
– そもそも回路の電源電圧はもう下げられない
2
ICT におけるトレンド: ビッグデータとグリーン化
Big data: the next oil
Green datacenters
データの蓄積・利活用によって
さまざまなイノベーションが期待
地球温暖化防止の観点、経済
面(データセンター運用コスト)
から消費電力の削減は必須
9000 [EB]
Amortized CAPEX
OPEX
Information Sensor
本研究では、ビッグデータ利活用の要であるデータベー
3000 explosion Social media
6000
ス(構造型ストレージ)をハードウェア化することによって、
Power Power
Voice
Servers
Enterprise
cooling use
スループット性能を維持しつつ、多数のサーバを専用
2005
2010
2015
ハードウェアに置き換え、コストと電力効率の向上を狙う
IT 機器の増強へ作用(電力増)  IT 機器の省電力化への要求
• IT 機器の省電力化をこれまで以上に推し進めなければ、
電力がビッグデータ利活用の大きな足かせになる
• 制限: IT 機器の省電力化はすでにやり尽くされている
– データセンターでは、コモディティ機(コスト効率重視)が多用
– そもそも回路の電源電圧はもう下げられない
3
構造型ストレージ: データ構造の点から分類
構造型ストレージは、水平スケーラビリティに優れる
が得手不得手がある(特定用途特化型)
Row
Key
Column
Family 1
Column
Family 2
…
MongoDB
ドキュメント
指向型
HBase,
BigTable
Schema-less DB
カラム指向型
Neo4j
Memcached
Key Value
{ _id : ObjectId(0),
name : Risa,
tel : 1234 }
{ _id : ObjectID(1),
name : Shinpei,
mail : [email protected]}
キーバリュー
ストア型
Shopping cart, User
profile, Session, etc
グラフ型
Shinpei
Jiro
Aya
Risa
Customer social
graph
Hiro
Taro
Ken
Yuko
4
構造型ストレージ: データ構造の点から分類
構造型ストレージは、水平スケーラビリティに優れる
が得手不得手がある(特定用途特化型)
Row
Key
Column
Family 1
Column
Family 2
HBase,
BigTable
カラム指向型
Memcached
Key Value
…
キーバリュー
ストア型
Shopping cart, User
profile, Session, etc
{ _id : ObjectId(0),
name : Risa,
tel : 1234 }
{ _id : ObjectID(1),
ドキュメント
name : Shinpei,
本研究では、
mail : [email protected]}
指向型
MongoDB
構造型ストレージのうち、
Schema-less DB
キーバリューストア型と
カラム指向型を
Neo4j
Shinpei
ハードウェアで高速化する
グラフ型
Jiro
Aya
Risa
Customer social
graph
Hiro
Taro
Ken
Yuko
5
本発表の概要:
カラム指向型 DB アクセラレータ
• RDBMSに比べると処理はシンプル(例: KVS)
• I/O ネックなので、通信と計算の「密結合」が有利
10GbE
10GbE
10GbE
FPGA
10GbE
Graph processing using
Many cores or GPUs
Parallel
algorithm
Hardware-based table management
Binary
JSON
6
目標: FPGA+40GbEを用いたカラム指向DBキャッシュ
• 各種NOSQLのCRUD操作をFPGA上にハード化
• 40GbEネットワークとDB HWを直結(I/Oネック)
NOSQLサーバ
NOSQLサーバのキャッシュ層
10GbE
10GbE
Request & Reply
Scan table
startRow stopRow
Graph processing using
Many cores or GPUs
Parallel
algorithm
10GbE
FPGA
10GbE
Hardware-based table management
Binary
JSON
7
目標: FPGA+40GbEを用いたカラム指向DBキャッシュ
• 各種NOSQLのCRUD操作をFPGA上にハード化
• 40GbEネットワークとDB HWを直結(I/Oネック)
HBase サーバ群
Put table 0101+age 28
Put table 0101+gender M
…
カメラ画像の
リアルタイム解析
通行人年齢
性別、時間
通行人年齢
性別、時間
沖電気RESCAT
通行人年齢
8
目標: FPGA+40GbEを用いたカラム指向DBキャッシュ
• 各種NOSQLのCRUD操作をFPGA上にハード化
• 40GbEネットワークとDB HWを直結(I/Oネック)
HBase サーバ群
HBase キャッシュ
Scan table
startRow stopRow
Cached Results
Graph processing using
Many cores or GPUs
Parallel
algorithm
Hardware-based table management
Binary
JSON
9
カラム指向型 DB の構造:
Flat-Wide 型
松谷
住所
Email
所属
役職
濱田
住所
Email
所属
役職
田村
住所
Email
所属
役職
10
カラム指向 DB:
Flat-Wide 型 vs. Tall-Narrow 型
Flat-Wide 型と Tall-Narrow 型
は相互に変形可能
松谷
住所 Email 所属
役職
濱田
住所 Email 所属
役職
Flat-Wide 型
Tall-Narrow 型
11
カラム指向 DB:
Flat-Wide 型 vs. Tall-Narrow 型
Flat-Wide 型と Tall-Narrow 型
は相互に変形可能
松谷
住所 Email 所属
役職
本研究では、カラム指向型データベースの Flat-Wide
型と Tall-Narrow 型の両方に対応するが、
濱田
住所 Email 所属 役職
内部的にはハードウェア処理に向く
Tall-Narrow 型
に変形して処理する
Flat-Wide 型
Tall-Narrow 型
12
カラム指向型 DB キャッシュ: 動作概要
HBase Cache (HBC)
HBase Cache(HBC)では参照頻度の
高いデータをホストメモリにキャッシュ
HBase
サーバ群
本物(HBase サーバ)
は全 Row を保持 13
カラム指向型 DB キャッシュ: 動作概要
Cached
HBase Cache(HBC)は一部の
Row のみ、ホストメモリにキャッシュ
Cached
Cached
本物(HBase サーバ)
は全 Row を保持 14
カラム指向型 DB キャッシュ: アプリの例
• 短文投稿サービスの例
• 各 Row ID
– 「User ID」+「投稿日時」
– ID、投稿日時でソート済み
• 各 Row データ
– 短文(256Byte)
• よく参照されるのは、
– あるユーザの最新○○件
• キャッシュポリシー
– 人気ユーザの投稿をキャッシュ
– そのユーザの最新64Row分
15
カラム指向型 DB キャッシュ: キャッシュ構造
• キャッシュポリシー
– 人気ユーザの投稿をキャッシュ(ダイレクトマップ方式)
– その投稿者の最新64 Row 分(=1ブロック)
FIFO buffer
(64 entry)
User
User
User
User
16
HBase の処理時間(scan 要求)
• 行サイズ 256Byte
• スキャン範囲(Row 数)は 1 ~ 1,000,000 Rows
382 sec
マシン環境: Intel Xeon E5-1620
@3.7GHz, 128G RAM
40 sec
8 sec
2 sec
17
HBC の処理時間(scan 要求)
• 行サイズ 256Byte
• スキャン範囲(Row 数)は 1 ~ 1,000,000 Rows
2720 msec
キャッシュに 100%
ヒットすると仮定
※見積根拠は
次スライドで説明
272 msec
27 msec
3 msec
18
HBC の処理時間(scan 要求)見積根拠
• 実装環境
– NetFPGA 10G(Virtex-5 TX240T) HBase Cache (HBC)
– Xilinx ISE 13.4
• DMA 転送回路
– ホストメモリ  NetFPGA10G
– スループット: 105MByte / sec
– 転送遅延:
約 2 cycle / Byte
• HBC タグ比較回路
– キャッシュヒット or ミス判定
– 動作周波数 221MHz
• HBC バス幅
10GbE
x4
– 64-bit(= Row当たり 32-cycle)
Virtex-5
19
キャッシュヒット率を考慮した性能見積もり
• ヒット率 0%、25%、50%、75%、90%、100%
• ミス時はソフトウェア処理(通信時間は含まない)
0%
25%
50%
75%
90%
100%
20
まとめ: カラム指向型 DB アクセラレータ
• カラム指向型データベース
– I/O ネックなので、通信と計算の「密結合」が有利
• 40GbE 搭載 FPGA ボードを用いた HW キャッシュ
– ブロック単位で特定範囲をキャッシュ
– 短文投稿サイトの例: 人気ユーザの最新64件を保持
• 今回は性能見積のみ  現在、設計実装中
HBase
サーバ
HBase Cache
(HBC)
10GbE
x4
Virtex-5
21