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