第三回クラウド勉強会(NoSQL)

第三回クラウド勉強会(NoSQL)に参加中です。

スライドは未発見。LTは話がおもしろくてテンポがよくて、メモする余裕がありませんでした。

最初のスピーカーはさくらインターネットの大久保 修一さん

  • マルチテナントKVSについて。
  • KVSってmemcachedとかをバックエンドに持っているNoSQLの一つ
  • このKVSをホスティングする  <– でも、おたかいんでしょう?
  • 実はMySQLのホスティングもしてますよ
  • Flareを使います。
  • flareはサーバが三つ必要、インデックスサーバ、ストレージサーバ、プロキシサーバ
  • これ三つもサーバ必要なんだけど、これらをクラウドのサービスとしてホスティングするにはどうしたらいいか
  • 名前空間で分離すると、オーバーヘッドはなくなるけどソフトウェアの改変が必要で大変
  • 複数プロセスだとさっくりできて、オーバーヘッドはそこそこだけどちゃんと分けれるね
  • 仮想マシンとVLANでそれぞれのマシンを仮想化すると独立性が高いけどオーバーヘッドが無視できない
  • そとからの接続はロードバランサを通す。プロキシサーバがLB機能も持ってる。
  • ストレージサーバ間はパーティションが切ってあるけど、必要に応じて隣に聞きに行く
  • LVS、DSR使って直接LBを介さず返答。
  • テストユーザ募集中
  • kumo FSに比べて、Flareは
  • 高速。デバッグが簡単 -> memcachedプロトコルが流れてるから、らしい <– memcachedプロトコルって見やすいのかな
  • 高速な理由
  • setが完了してもメモリに書かれているだけなのでディスクに書かれていない。
  • ストレージサーバ間でのハッシュの散らばり具合が均一じゃない、結構偏って各サーバに散らばる。
  • インデックスサーバが冗長化できない。
  • flush_allコマンドはレプリケーションコマンドがきかない <– memcacheとかでも・・・
  • telnetのみしか接続できない
  • クラウドに乗るPaaSとしてNoSQLを検討している。

二人目はGREEの藤本さん。

  • クラウドからNoSQLになってますよね
  • SQLで高度にjoinとかさせるとshardingとかできないからシンプルなsqlになっていくよね。
  • 200台以上クラスタが動いてる!
  • CAS – 多くのNoSQLではトランザクションがないのでバージョン番号を振ろう(mvccみたいな)
  • 単体でパフォーマンスがめっちゃ出る
  • いろいろとでっかくするとdisk i/oに引っかかる。
  • ネットワークの上限にかかることがあるよ
  • でっかいデータを気軽においてしまうとまずいかもしれないよ。
  • たとえば100kのデータを10k qpsすると1GB/sになるよ。
  • fullmeshな通信だとまずいよね、ノードが増えるとプロキシサーバを利用してfullmeshな通信をしないように。
  • crlfがデリミタになってるので、インジェクション食らうよ <– memcache系とか特に
    flushall

三人目は神戸デジタルラボの岩瀬さん

  • distributed kvs
  • memcachedはdistributedじゃないらしい
  • phpで動くsimplecacheっていうkvsあるらしい。
  • okuyamaについて。
  • 全部javaで作ってる
  • memcached, httpもサポートしてるよ
  • 10000クライアント問題
  • nioっていうjavaのキューイングモデルを参考に、多段queueを実装
  • 連鎖ダウン 80% 80% 80%だと一台落ちたとき120% 120%になってまずくね?
  • ストレージの保存方法は4種類
  • バーチャルメモリ
  • keyだけメモリに書いたりするらしい <– キーだけ保存するだけでも全然違うのかな、検索かな
  • 一貫性で三種類の一貫性がある <– これの仕組みがおもしろそう、あとで調べてみよう
  • key+valueにさらに+tagしてる。タグで行を取れたりする
  • okuyamaで
  • get 480万回/min 8万回/sec
  • set 290万回/min 4万回/sec
  • これぐらいの性能
  • hdfs

四人目は楽天の西沢さん
ROMAというNoSQLDB

  • リストをサポートしたNoSQL
  • プラグイン機能があってユーザ拡張が結構できるNoSQL
  • でっかいデータもはいるけど基本的には1k-5kぐらいのデータを。
  • 断片化されたHTMLとかセション情報とか閲覧情報とかを入れてね
  • プラグインを書くためのDSLがあるよ。
  • flagオプションあるよ、CASいけるよ
  • consistent hashing
  • sha-1 <– えすえいちえーわん じゃないのか・・・ しゃーわん
  • ROMAはリング型で横のつながりがあるよ。各ROMAのプロセスは他のリングの位置とかを知ってるよ。
  • memcachedプロトコルをベースに作られているので、memcacheクライアントが普通に使えるよ
  • dslはruby構文ですよ
  • dslによててコマンドプラグインを拡張できますよ。
  • ROMAは楽天のいろいろなところで使われていますよ

コメントを残す