• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
ザ・ドキュメント~うまくいかないNoSQL~
 

ザ・ドキュメント~うまくいかないNoSQL~

on

  • 29,834 views

 

Statistics

Views

Total Views
29,834
Views on SlideShare
5,434
Embed Views
24,400

Actions

Likes
8
Downloads
1
Comments
0

15 Embeds 24,400

http://doryokujin.hatenablog.jp 13661
http://d.hatena.ne.jp 9396
http://ameblo.jp 1082
http://webcache.googleusercontent.com 144
url_unknown 49
http://infra.rrdtool.net 35
http://www.slideshare.net 15
http://paper.li 5
https://www.google.co.jp 5
http://s.ameblo.jp 3
http://aitcms-w.atmarkit.co.jp 1
https://cybozulive.com 1
http://at-agent.jp 1
http://cache.yahoofs.jp 1
http://www.google.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • 運用をしていった中での考え方、実施したことをデータストア / 画像ストレージにフォーカスしてお話します
  • 運用をしていった中での考え方、実施したことをデータストア / 画像ストレージにフォーカスしてお話します

ザ・ドキュメント~うまくいかないNoSQL~ ザ・ドキュメント~うまくいかないNoSQL~ Presentation Transcript

  • ザ・ノンフィクション ~うまくいかない NoSQL ~ 株式会社サイバーエージェント アメーバ事業本部プラットフォームディビジョン システムディベロップメントグループ CA Developers Connect                       桑野 章弘
    • 桑野章弘
      • インフラエンジニア
        • アメーバピグの運用/構築を担当
        • ピグライフの運用/構築を担当
      • Twitter
        • http:// twitter.com/kuwa_tw
      • Blog
        • http:// d.hatena.ne.jp/akuwano /
      • 著書/活動
        • 「 MySQL によるタフなサイトの作り方」
        • 勉強会( hbstudy, qpstudy ほか)などでの発表など
    自己紹介
  • おらが村
  • に NoSQL がやってきた
    • ピグライフのアーキテクチャ
    • アプリケーション
      • Node.js
      • websocket
    • データストア
      • mongoDB
    めちゃめちゃとんがっている、、、
  • に NoSQL がやってきた
    • ピグライフのアーキテクチャ
    • アプリケーション
      • Node.js
      • websocket
    • データストア
      • mongoDB
    でも、、、
  • みんな(心)の声 NoSQL なら なんでもできる。
  • みんな(心)の声 NoSQL のすごさをみてみたい。
  • みんな(心)の声 こんなの MySQL みたいなもんでしょ。
  • 、、、とおもってませんけど
    • 用途からはシャーディングの手間のない DB くらいで思ってました。
    • これから 2 つの代表的なお話をさせていただきます、、、。
  • その1 ・・・ useしたらできるDB
    • MySQL みたいに Create すればいいんでしょー、、、あれないわ。
    [kuwano_akihiro@mongo01 ~]$ /usr/local/mongodb/bin/mongo --port 27018 MongoDB shell version: 1.8.1 connecting to: 127.0.0.1:27018/test >show dbs            ← database の確認 admin (empty) local (empty) testdatabase 0.453125GB
  • その1・・・useしたらできるDB
    • あれ、、、 create ないぞ、、、ないけど入れたぞ、、、。
    [kuwano_akihiro@mongo01 ~]$ /usr/local/mongodb/bin/mongo --port 27018 MongoDB shell version: 1.8.1 connecting to: 127.0.0.1:27018/test > use newdatabase switched to db newdatabase ← なんか入れた > db.test.insert( { test:1 }) ← データのインサートしちゃった
  • その1 ・・・ useしたらできるDB
    • まさか、、、。
    • [kuwano_akihiro@mongo01 ~]$ /usr/local/mongodb/bin/mongo --port 27018
    • MongoDB shell version: 1.8.1
    • connecting to: 127.0.0.1:27018/test
    • >> db.test.insert( { test:1 }) ← データのインサート
    • show dbs
    • admin (empty)
    • local (empty)
    • newdatabase 0.203125GB            ←なんかできてる
    • testdatabase 0.453125GB
  • その1 ・・・ useしたらできるDB
    • もちろんデータベース名間違えてインサートしてもエラーなんか出ません!
    • そんなもんは NoSQL には必要ない!、、、んでしょうか、、、。
  • その2 ・・・ 勝手に同期するDB
    • 冗長化のためにレプリカセットを組みましょう
    # /usr/local/mongodb/bin/mongo --host mongo01 replSetTest001:PRIMARY> rs.status() { "set" : "replSetTest001", ( snip) { "_id" : 2, "name" : "mongo03:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "optime" : { "t" : 1305112310000, "i" : 7 }, "optimeDate" : ISODate("2011-05-11T11:11:50Z"), "self" : true } ( snip)
  • その2 ・・・ 勝手に同期するDB
    • あ、1台落ちちゃった!
    • 壊れちゃったからまっさらに作り直し
    # /usr/local/mongodb/bin/mongo --host mongo01 replSetTest001:PRIMARY> rs.status() { "set" : "replSetTest001", ( snip) { "_id" : 2, "name" : "mongo03:27017", "health" : 0, "state" : 1, "stateStr" : "PRIMARY", "optime" : { "t" : 1305112310000, "i" : 7 }, "optimeDate" : ISODate("2011-05-11T11:11:50Z"), "self" : true } ( snip)
  • その2 ・・・ 勝手に同期するDB
    • 作り直したから、 mongodb 立ち上げるよ
    # /etc/init.d/mongod start # /usr/local/mongodb/bin/mongo --host mongo01 >show dbs admin (empty) local (empty) newdatabase 0.203125GB            ←なんかできてる testdatabase 0.453125GB > use newdatabase switched to db newdatabase > db.test.find() { “_id” : ObjectId(“4dca6862374b6d50c727b8e7”), “test” : 1 } ← まだなんもしてない
  • その2 ・・・ useしたらできるDB
    • もちろん大量のデータがあっても手加減なんてしてくれませんw
    • そんなもんは NoSQL には必要ない!、、、んでしょうか、、、。
  • でも、、、
    • ほかにも
      • チャンクが移動しまくりだったり
      • デフォルトチャンクサイズが大きかったり
      • メモリの状態がわかりづらかったり
      • 勝手が違う、、、
    Mongodb 勝手が違う、、、 y 倍
  • でも、、、
    • いろんな事を自動でやってくれる
      • レプリカ復旧
      • シャーディング
      • 生死判別と冗長化
      • 負荷分散
    • アプライアンス機器を使うイメージに近い
      • でもオープンソースだから中みれるよね
    Mongodb 萌えかもしれない、、、
  • というわけで
    • mongodb としばらく付き合ってみたいと思います。続報はいろんなところでw
  • というわけで
    • ご清聴ありがとうございました!
    むにゃむにゃ、、、 またシャードが偏った、、、直さないと、、、