Contenu connexe
Similaire à Mongo dbを知ろう devlove関西 (20)
Plus de Ryuji Tamagawa (16)
Mongo dbを知ろう devlove関西
- 2. 自己紹介
• 玉川竜司
• FB: Ryuji Tamagawa
• Twitter: @tamagawa_ryuji
• 本業ソフト開発(Sky株式会社)
• 兼業翻訳者(ほぼオライリー)
- 7. NoSQLムーブメント
• Not Only SQL : SQL(RDB)以外の選択肢
• 2010年前後のビッグデータブームの立ち上がりとともに
注目を集め始めた技術/データベース/バズワード/…
• 特徴を一言で言うなら、RDBの特徴(の一部)を捨てる
ことで「データの量に対するスケーラビリティ」を大幅
に向上させたもの
- 8. RDBが抱えている(いた)課題
• データの量に対してスケーラビリティが低い
• 大きな要因は、ストレージのランダムI/Oの低速
性、テーブルの結合処理のコスト、ACID属性
• ただしこれらは、実はRDBの長所の裏返しで
もある
• 商用DBは、一般にスケールアウトのオプション
が非常に高価
https://www.youtube.com/watch?v=9eMWG3fwiEU
- 24. 物理構造の違い
RDB MongoDB
物理メモリ物理メモリ
DBエンジンが管理する
メモリバッファ
サイズを
指定できる
データファイル
メモリにマップされた
ファイルの内容
サイズを
指定できない
データファイル
(メモリマップドファイル)
- 26. 論理構造の違い
RDB MongoDB
{
_id: new ObjectId(""),
slug: "gardening-tools",
ancestors:
[{ name: "Home",
_id: new ObjectId(""),
slug: "home" },
{ name: "Outdoors",
_id: new ObjectId(“"),
slug: "outdoors"
} ],
}
- 32. oplogについて
• Capped Collection : 追記のみ、古いデー
タが自動的に削除される
• oplog : データベースの更新処理を時系
列で記録するcapped collection
• プライマリのoplogをセカンダリのoplog
が追いかけることでレプリケーションを
行う
Primary
Secondary
Secondary
- 38. 障害回復時のoplog(2)
• 障害が長く続き、現プライマリの
oplogと回復したセカンダリのoplog
がオーバーラップしなくなってしまっ
た場合
• 仕方ないので自動的にfull syncに移
行する
• こうなると時間も負荷もかかるので、
oplogの期間設定やファイルベースの
バックアップ間隔は重要
Secondary
現Primary
Secondary
- 41. レプリカセット
(誤操作、バグ対策)
Repreca-Master
(インデックスあり)
Client-App
Driver
Repreca-Slave
(インデックスあり)
指定した時間遅らせて複製。
誤操作によるデータ消去
などの対策
Repreca-Slave
(バックアップ)
書込
複製
読取
Repreca-Slave
(delayed)
- 44. シャーディング
• 書き込み負荷を1/nに
• メモリ量をn倍に
• パフォーマンスは上がる
•障害は起きやすくなる
→レプリカセットと併用
Client-App
Driver
mongos
mongod for
あかさたな
mongod for
はまやらわ
- 45. 改善継続中 - 2.6以降について少し
• 最新バージョンは2.6系
• aggregation framework - サイズの制約の緩和
• Write protocolの改善 - レイテンシの低減
• Index Intersection - 複数インデクスの同時活用のはず…
• 2.8/3.0はかなり大規模なアップデートになる模様
- 47. 今日話したこと
• 運用についてはドキュメントをきっちり読見ましょう
• この本に基本は書かれています。概要把握にどうぞ。
• 電子書籍もあります。
• http://www.oreilly.co.jp/books/
9784873115900/
• そのほかにもMongoDB関連の電子書籍があるの
で、オライリージャパンのサイトで検索を。
- 48. それはともかく
• 簡単に始められて
• かなり深く使うこともできます
• ただし落とし穴もあります
→コミュニティへどうぞ! http://www.mongodb.jp
• まずは手を動かしてみましょう!
• レプリカセットをお手軽に試せます:
• https://bitbucket.org/tamagawa_ryuji/mongodb_replicaset_playground_on_vagrant