Your SlideShare is downloading. ×
0
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

RDB経験者に送るMongoDBの勘所(db tech showcase tokyo 2013)

2,855

Published on

RDBとの比較でMongoDBの特徴を紹介しています。

RDBとの比較でMongoDBの特徴を紹介しています。

Published in: Technology
0 Comments
16 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,855
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
43
Comments
0
Likes
16
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. RDB経験者に送る MongoDBの勘所 ! 玉川竜司
  • 2. 自己紹介 • 玉川竜司 • FB: Ryuji Tamagawa • Twitter: tamagawa_ryuji • 本業ソフト開発(Sky株式会社) • 兼業翻訳者(ほぼオライリー)
  • 3. もうすぐ出ます
  • 4. 今日のお題は MongoDB
  • 5. MongoDBのいいところ • 一言で言うなら「お手軽」 ­ いい意味で • Webアプリケーションで求められる機能が手っ取り早く使える • 多目的の高性能「オートマ車」 • インストーラやパッケージですぐ動きます • クラウド上で実績多数 • 多くの言語で、仕様がある程度統一されているドライバが利用可能
  • 6. ただし • 集計は(今のところ)苦手 • (ほんとの)ビッグデータはちょっと難しいかも • 基本的に、オンメモリでいけるかどうかが問題 • そういえば、でかいメモリのインスタンス、AWSでもAzureで もさくらでも増えましたね・・・
  • 7. RDBとの違い • 物理構造の違い • 論理構造の違い • トレードオフの柔軟性 • レプリカセット • シャーディング
  • 8. 物理構造の違い RDB エンジンが管理する (物理)メモリバッファ データファイル MongoDB OSが管理するメモリ データ(メモリマップドファイル)
  • 9. 物理構造の違い(2) • とにかく、「ホット」なデータが物理メモリに収まるかが肝心 • RDBほど細かなメモリのチューニングはできない • データが大きいなら、RAMを増やすか、シャーディングでスケール アウト
  • 10. 論理構造の違い RDB MongoDB { _id: new ObjectId("6a5b1476238d3b4dd5000048"), slug: "gardening-tools", ancestors: [{ name: "Home", _id: new ObjectId("8b87fb1476238d3b4dd500003"), slug: "home" }, { name: "Outdoors",
 _id: new ObjectId( 9a9fb1476238d3b4dd5000001"), slug: "outdoors" } ], parent_id: new ObjectId("9a9fb1476238d3b4dd5000001"), name: "Gardening Tools", description: "Gardening gadgets galore!",
  • 11. 論理構造の違い(2) • スキーマの自由度は高い(特に変更に強い) • ドキュメントを超えたアトミック性はない • 設計上のトレードオフが生じる • 一つのドキュメントで閉じない場合はIDで参照 • そうなると、処理をプログラムで書く必要が出てくる
  • 12. トレードオフの柔軟性 RDB MongoDB 書き込み保証 する?しない? しなけりゃ高速 書いたら がっつり 永続化 トランザクション はデフォルト WAL使う? いくつのレプリ カへ書けたら成功 したことにする?
  • 13. トレードオフの柔軟性(2) • 書き込みの確実性とパフォーマンスはトレードオフ • 大量のログの記録などでは、多少こぼれるリスクを抱えてもコストダウ ンしたいこともある • 逆に、データセンター間で複製できていることを保証したいこともある • 書き込み保証(Write Concern)、WAL、レプリカへの書き込み、タ ギングなどで、多彩な調整が可能
  • 14. レプリカセットとシャーディングについて ちょっと注釈 • これらについては、「技術的には」RDBとの対立概念ではない • ただし、商用RDBではコストが跳ね上がる(ですよね?)機能 • MongoDBでは最初から組み込まれて、非常にお手軽 & 便利
  • 15. レプリカセット Client-App Driver 書込 読取 Repreca-Slave 複製 Repreca-Master Repreca-Slave
  • 16. レプリカセット(マスター交代) Client-App Driver 読取 書込 Repreca-Slave 複製 Repreca-Master Repreca-Master
  • 17. レプリカセット (パフォーマンストレードオフ) Client-App Driver 書込 読取 Repreca-Slave Repreca-Master (バックアップ) 複製 (インデックスあり) Repreca-Slave (インデックスあり) バックアップ用のインスタン スにはインデックスを付けず、 非力なマシンで済ませる
  • 18. レプリカセット(DC間での分散) Client-App Driver 書込 Repreca-Master 複製 読取 Repreca-Slave Repreca-Slave DC-1 DC-2
  • 19. レプリカセットのまとめ • 読み取り負荷の分散 • 耐障害性 • 自動フェイルオーバー & リカバリ • 多彩なトレードオフ
  • 20. シャーディング Client-App • • mongod for mongod for あかさたな はまやらわ パフォーマンスは上がる • mongos メモリ量をn倍に • Driver 書き込み負荷を1/nに 障害は起きやすくなる
 →レプリカセットと併用
  • 21. シャーディング(意味なしパターン) Client-App Driver • ホットになるのは最新のシャードばかり • 順序づけできるシャードキーは要注意 • キーにはハッシュ的なデータが向く • 場合によっては複合キーを使う mongos mongod for mongod for mongod for 2013/9 2013/10 2013/11
  • 22. シャーディングのまとめ • 「わりとビッグ」なデータに対応するための仕組み
  →どのくらいビッグかはハードによるが、期待しすぎは禁物 • キーの選択がキモ • 耐障害性はシャーディングと組み合わせて担保
  • 23. RDBに似ているところは? 柔軟なインデックス!
  • 24. 柔軟なインデックス • NoSQLエンジンは、インデックスが限定的なものが多い • MongoDBは、BSONデータのどこにでもインデックスを張れる • 複合キーも張れる • いくつでも張れる • クエリオプティマイザがキーの有無を(ある程度)ちゃんと見てくれる
  • 25. まとめ
  • 26. 今日話したこと • この本に事細かに書かれています。 • 電子書籍もあります。 • http://www.oreilly.co.jp/ books/9784873115900/ • そのほかにもMongoDB関連の電子 書籍があるので、オライリージャパ ンのサイトで検索を。
  • 27. それはともかく • 簡単に始められて • かなり深く使うこともできます • ただし落とし穴もあります
 →コミュニティへどうぞ! http://www.mongodb.jp • まずは手を動かしてみましょう!
  • 28. 最後に告知 • MongoDB Tokyo 2013 開催 • • • 日時:12/12(木) 申し込みサイト:http://atnd.org/event/mongodbtokyo2013 MongoDB University 日本語講座:第2弾開催 • 日時:11/25 • 申し込みサイト:https://education.mongodb.com/courses/10gen/M101P/2013_November/about
  • 29. ご清聴ありがとうございました。

×