db tech showcase2014 3日目
ということで、db tech showcase 3日目へ行ってきましたよ。
欲を言えば1,2日目にも行きたかったとこだけど、さすがにそこまで休めるほど進捗に余裕はない・・・
もちろん事前登録はしておいたんだけど、受講票忘れた(ノ∀`)
まあ、名刺を提示したら問題なく入場できたけど。
超要約
A31 あなたが知らないリレーショナルモデル
- リレーショナルモデル≒SQL
- リレーショナルモデルを守れば論理矛盾は起きない設計ができる。やれ!
D32 MongoDBのバックアップとリカバリ
- レプリカセットを使って簡単バックアップ&リカバリ!
D33 Prestoで実現するインタラクティブクエリ」
- 分散SQLエンジンだよ!PrestoはCPU使用効率、レスポンスタイム重視だよ!
- PrestogrestというPostgreSQL連携もできるよ!
L34 そのデータべス 5年後大丈夫ですか
- ハードが超進化したら、標準SQLだけでいいんじゃね?
A35 COUCHBASE SERVER 3.0で広がるNoSQL採用事例
- COUCHBASEはスループットもレイテンシも良いし、スケールもきちんとするよ!
- 導入事例もたくさんあるよ!
C36 GPGPUがPostgreSQLを加速する 〜"超"メニーコアによる検索高速化〜
- いっぱいあるGPUを使って並列処理できるPostgreSQLだよ!
- PG-Strom開発を通じて、PostgreSQLコミュニティにもいろいろ貢献できたよ!
A31 あなたが知らないリレーショナルモデル
- リレーショナルモデル≒SQL
- リレーショナルモデルを守れば論理矛盾は起きない設計ができる。
- 超絶なクエリやストアド・プロシージャなんかいらない。
- リレーショナルモデルでカバーできない領域はある。
- 複雑さに立ち向かうには。
- 本の宣伝キター!「リレーショナルデータベース実践入門」
※ホントは一杯書きたいことがあるけど、大幅に省略した・・・本を買えば読めると思うし。
D32 MongoDBのバックアップとリカバリ
- MongoDBのいいところ。
- バックアップの3つの方法
- ファイルレベルのバックアップ
- MongoDBツールによるダンプ/リストア
- レプリカセット
- レプリカセットとシャーディング
- レプリカセットは読み込みパフォーマンス向上と、耐障害性の向上が目的。
- シャーディングは書き込みパフォーマンス向上
- シャーディングを使うと、耐障害性自体は落ちる。
- レプリカ併用が推奨。そんかしサーバ台数も倍に・・・
- シャード毎のバックアップ/リストアといった手順の難易度がアップ!
- デモ
- デモ1:レプリカセットの1つを停止させ、再起動⇒徐々にレプリケーションが追いつく
- デモ2:レプリカセットのプライマリを停止してもレプリカマネージャに接続していれば、ダウンタイムは極わずか。
- デモ3:レプリカセットのなかの1つのデータベース自体も消えてしまった状態からの復旧(full sync)。
D33 Prestoで実現するインタラクティブクエリ
Prestoの概要・特徴
HiveとPresto
Prestoの構成
- HDFS+Presto+Dashboad等
- 中間ストレージ(PostgreSQL等)を経由しない。
- Presto自体はSQLレイヤ
- Cassandara, MySQL, PostgreSQL・・・
- Prestoはコネクタを持っている。JDBC経由でPostgreSQLにもコネクト可能
- トレジャーデータではHDFSではなく、PlazmaDBというカラムナーDBをバックエンドで使っている。
- バッチ処理はHive、アドホック検索はPrestoという使い分け。⇒ただし、最近の版だと境界が薄れつつある?
事例
Prestogres
- PostgreSQLを経由してPrestoにクエリを送信
- pgpool-IIベースで開発
Prestoのアーキテクチャ
Prestoの運用
- クエリの実行履歴はTDで保存
- コーディネータやワーカをJSON形式で取得できる。
- Presto-metrics+Fluentdで動作状況を収集してTDに送信
- Librato Metricsによるサービス状況の監視
L34 そのデータべス 5年後大丈夫ですか
60年変化のないコンピュータの仕組み
- CPU、メモリ、ディスクという構成は変わらない。
- 今はディスクの性能問題が多い
- ちょっと先なら、CPUと不揮発性メモリだけの世界にならないか?(Memristorなど)
- シリコンフォトニクス、不揮発性メモリ、エネルギー最適化システムオンチップ
HPにおけるハードウェアの再定義
- アプリに最適化された効率を津旧したサーバ(Moonshot)
- 電子から光子へ
- ユニバーサル・メインメモリ(Memrister)
⇒メモリとHDDの位置づけが変わる!?
次世代の記憶装置
- 現状の500GB⇒100TBへ?
- データセンタがアタッシュケースに収まる!?
アプリケーションはどうつくるべきか
- インフラを問わない設計/RDBMSに依存しない設計へ?
- 目指すものは下回りが変わっても変わらないアプリケーション
- AP側は標準的なアプリケーション、標準的なアクセス
- HW/DBMSベンダは頑張る・・・
- 標準SQLだけで性能が満たせれば、それに越したことはないのでは?
- 動くという話の次は、性能の担保。
- このフェーズになるとデータベース・HWの選択肢が出てくる。
HP製品の紹介
- アプリケーション用途別に製品を作っていこうとしている。
- 汎用コンピュート
- ミッションクリティカルコンピュート
- x86プロセッサをベースにした製品など
⇒240コア/24TBメモリ・・・(白目)
データベースに期待すること
- コスト削減、リスク削減、サービス品質向上、俊敏性の向上、コンペリングイベント
A35 COUCHBASE SERVER 3.0で広がるNoSQL採用事例
COUCHBASEの利用動機
- 高速
- 何が起きても稼働しつづける
- フォーマットの異なるデータの収集・蓄積
- オフライン動機
COUCHBASEがなぜ高速化
COUCHBASEのアーキテクチャ
さらなるHAウルトラ
- 世界中の拠点にクラスタを配置する。
- XDCRという仕組みで、別リージョン間の同期をとる。
WRITEバッファ⇒分析用データストレージとしての利用
COUCHBASEへのクエリ
- VIEW 集計用途
- Map 任意項目による二次インデックス
- Reduceで集計
- リアルタイム性を求める場合、二次インデックス用途で使う場合はインデックス用のドキュメント生成という使い方もある。
- より柔軟な検索をしたければ?⇒Elasticseach連携
- なぜElasticseach単体ではダメなの?
- そもそもElasticseachは検索エンジンであり、データベースではない・・・。
- COUCHBASEのほうが検索性能は10倍くらい速い。
- より柔軟な検索をしたければ?⇒Elasticseach連携
- 他の検索エンジン。
- LUCID WORKS
- Apache SolrベースのEnterprise
- N1QL
- N1QLパイプライン
- パース⇒実行計画作成⇒インデクシングによるサーチ、そしてプラガブルアーキテクチャ。
- N1QL XDBCドライバ
- Simba社開発
- 現在、ドライバを開発中。
- JDBCドライバ経由で使えるようになる。
利用事例
- VIBER(メッセージング)
- 自作の内製インメモリ
- MongoDB cluster+Redis cluster構成のとき:250台のサーバ
- COUCHBASE構成のとき:120台のサーバ
- EBAY
- LINKED IN
- 一旦、hadoopで軽い集約を行ったデータを管理
- 体制としてCOUCHBASE専任チームを持つ
- SALTを使ったCOUCHBASEの管理
- HIPPO
- 花屋のジレンマ
- データのパーソナライズ⇒動的なWebサイトの生成
- 数ミリ秒で大量の計算が必要。
- MOBILEソリューションとして、COUCHBASE Liteがある。
- モバイル端末ローカルにあるデータをオフライン時に使える。
- COUCHBASE CONNECT APP
- 写真の情報をJSONに含めることができる?
- 国内の利用事例は?
- KDDI
- CYBIRD
- SCSK(日本の代理店)
C36 GPGPUがPostgreSQLを加速する 〜"超"メニーコアによる検索高速化〜
処理向上のアプローチ
- スケールアップ、スケールアウト
- スケールアップ内の分類
- ホモジニアススケールアップ、ヘテロジニアススケールアップ。
- GPU(Graphic Processor Unit)の特徴
- とにかくコア数が多い!
- CPU 12くらい⇒2688個!
- GPUはチップ内の演算ユニット比率が高い
- ピーク性能
- GPU:4T FLOPS, CPU GBオーダ
- GPU活用による縮約アルゴリズム⇒log2Nステップ
- ヘテロジニアス化は半導体技術トレンドになっている。
- ダークシリコン問題
- トランジスタあたりの消費電力削減が追いつかない。排熱が追いつかない問題。
- 同じチップ上に特性の異なる回路を実装して、ピーク電力消費を抑える
PG-Stromの概要
- 現状はPostgreSQLにパッチを当てる必要がある。
- 現在対応しているのはFull-Scan/Hash-Join/Aggregate
- GPU+OSSの組み合わせで低コストで性能改善
- でも、現時点ではインメモリデータストアが前提。
PG-Stromの仕組み
PG-Strom技術キーワード
ベンチマーク結果
- JOIN:2億 * 10万件 * 10万件 * ・・・
- テーブル数9個11753秒 vs 60秒
- 2億 * 10万件 * 10万件 * ・・・⇒aggregate(group by)
- テーブル数9個829秒 vs 67秒
歴史
C37 MongoDBで実際に大きなデータを扱うとどうなるのか?
特徴と適用領域
- MongoDBは数百TBの領域を扱うのは難しいかも。
- でも、普通の企業が扱う程度(数十GB〜数十TB)ならMongoDBで扱えるはず。
- Aggregate FWを使えば集計も高速に可能。
メモリ管理
- MongoDBはメモリ管理がとにかく重要
- インデックスがメモリに乗ってないとアウトー!
- データが乗らないのはさほど問題ではない。
- インデックスがメモリに乗り切るようにシャーディングなども検討。