「分散KVS(Key-Value Store)」と「可視化」

データベースにも得意・不得意がある。
KVS(Key-Valueストア)は、RDB(リレーショナルデータベース)と比較して分散化のコストが安く、負荷分散に強く、可用性が高いそうだ。RDBが得意なものはRDBを使う、KVSが得意なものはKVSを使う。そうして、RDBとKVSの両方を使い、そして2つを適材適所で使い分けることにより、補完しあうことで、高速レスポンスを実現できるということになるらしい。

KVSにも弱点はあるが、高速である主なポイントとしてはインメモリ(オンメモリ)であることが挙げられる。
メモリのアクセス速度はHDDの10万~100万倍。そのためRDBの値をKVSに保持して使う。保持する方法は「RDBのレコードをそのままセット」「RDBのレコードを結合または加工してセット」等がある。要するに、データをメモリ内に読み込み、それを使いまわすことで、高速なデータアクセスを実現することが可能らしい。
他にも特徴はあるが今日はここまで調べたという事で。いったんKVSの特徴についての調査は終わりにする。
以下はKVSの活用事例まとめ。

Googleはどのようにして巨大なデータからの検索結果を返しているのか?
分散Key-Valueストアの本命「Bigtable」。
分散Key-Valueストアの本命「Bigtable」 - @IT

株式会社ミクシィでは、
RDBMSMySQL、自社開発のKVS「Tokyo Tyrant」を使用している。
自社開発のKVS「Tokyo Tyrant」は高負荷なログイン処理の実装に使用しているそうだ。
分散Key-Valueストアの本命「Bigtable」(1):もう1つの、DBのかたち、分散Key-Valueストアとは (1/3) - @IT

株式会社フリークアウトでは、
RDBMSMySQL、KVSはHadoop hBase、Tokyo/Kyoto Product(Tokyo Cabinet、Kyoto Cabinet)、memcached などを使用している。しかも、クラウド全盛の中「自作サーバー」でRTBのシステムを構築・運用しているようだ(ただし海外事業ではAWS(アマゾン ウェブ サービス)も利用している様子)。
「20ms台への挑戦、Webエンジニアがアドテクノロジに惹かれた理由とは」フリークアウト 大窪 聡 氏 | ギークアカデミー |IT・Web業界の転職ならDODAエンジニア IT

(以下は引用)
本質的な仕組みは、人間を対象にしたWebサービスのシステムと同じです。ただ、RTBのシステムは非常に時間にシビアな点が違います。Webサービスでシステムが人間を相手にレスポンスを返す場合、1.5~2秒の猶予はあります。ところがRTBでは必ず100ms以内に収めないといけません。私たちのシステムでは平均して20ms程度のレスポンスを実現しています。これだけ短いとMySQLのようなDBMS(データベース管理システム)に接続する時間も取れませんから、KVSの使いこなしが重要になってきます。

www.slideshare.net

ログの可視化関連は多くの企業が
Fluentd、Norikra、Elasticserch、Kibanaを使ってると見受けられた。
以下①~④は概要説明。

①ログ収集「Fluentd」:
 ログの収集、中継ツール、ElasticsearchやNorikraへデータを転送する。
②ログ解析「Norikra」:
 SQLストリーミングを解析する。
③ログ検索「Elasticsearch」:
 大人気の全文検索エンジン
④ログ可視化「Kibana」:
 Elasticsearchへ格納されたデータを可視化する。