MongoDBJP 納涼もんご祭り
MongoDBJP
2013納涼祭
About me
{
名前: 窪田博昭
会社: 楽天(株)
肩書: MongoDBJP代表
趣味: Golf,フットサル
悩み: 30代は体が・・・
twitter:@crumbjp
github: github.com/crumbjp
}
MongoDBJP 納涼もんご祭り
MongoDBJP 納涼もんご祭り
MongoDB ?
MongoDBJP 納涼もんご祭り
MongoDBの哲学(優先順位)
1.Read性能 >>> 全て
2.データ一貫性
3.システム堅牢性
4.データ更新性能
書き込み << 読み込み
なシステムに
最適!!
WEBシステムって
大体そうだよね!
今日のお題は・・・
MongoDBJP 納涼もんご祭り
嘘・・・
じゃないよ~!
選挙だ!
わかっちゃった人は
ニヤリw
これは何?
2/3
3/5
4/7
過半数とは
全体の半分よりも多い数
ニヤリ?
MongoDB
replica-set
-22 -
replica-set
Primary
Secondary SecondarySecondarySecondary
Primary: 書き込み可能ノード
Secondary: 読み取り専用ノード
全てのノードは同じデータを持っている
同期
-23 -
replica-set
Secondary SecondarySecondarySecondary
MongoDBはPrimaryノードを
選挙で選ぶ。
下の例では得票数5/5で当選!
Secondary
投票
-24 -
replica-set
Secondary SecondarySecondarySecondary
MongoDBはPrimaryノードを
選挙で選ぶ。
下の例では得票数5/5で当選!
Secondary Primary
昇格
-25 -
replica-set
Secondary SecondarySecondarySecondary
Primaryノードが死んだ場合も
残ったノードで選挙を行う。
下の例では得票数4/5で当選!
Primary
投票
-26 -
replica-set
Secondary SecondarySecondaryPrimary
Primaryノードが死んだ場合も
残ったノードで選挙を行う。
下の例では得票数4/5で当選!
Primary
となると、、、
-28 -
replica-set
SecondarySecondary
構成ノードが死に過ぎると
選挙で過半数割れが起きる。
こうなるとPrimaryノード不在となる
Primary
Primary Primary
投票
-29 -
replica-set
Primaryは書き込みを行うノード
replica-setは書き込み不能となる
データの更新は当然!
replica-setの構成変更も不可!!
致命的!!
これは何?
2/3
3/5
4/7
デッドライン
生存数 / 全数
2/3
3/5
4/7
そもそも何でこんな
難儀な仕組み
になってんの?
1ノードでも
生きてれば良いじゃん!
そうは行かない!
-35 -
replica-set
Primary
Secondary SecondarySecondarySecondary
常時同期
選挙に行かないとをやらないと
大変な事に!!
負荷や
ネットワークトラブル等で
ノード間通信が途切れる
と・・・
-37 -
replica-set
Primary
Secondary SecondarySecondarySecondary
もしネットワークが分断したら?
分断
常時同期
-38 -
replica-set
Primary
Secondary SecondaryPrimarySecondary
Primary
常時同期
分断
なんと
Primaryが2つ
に!!
こうなると当然
左右双方に別々の更新が走り
データがズレるぜ!
Primary
Secondary SecondaryPrimarySecondary
Primary
常時同期
分断
replica-set
データ更新 データ更新
あ”ー
データ破壊。。
これが分散システムの
Split brain
データの一貫性が
意味的に破壊されるので
修復できない
ちなみに、、
split brainが起きる様なケースでは
高負荷やトラブルが起きている。
大抵は1ノード毎バラバラになるし
データ修復どころか大量のログから
現象を追う事すら困難。。。
-43 -
replica-set
Primary
Primary
こんな風に・・・
Primary 分断
Primary Primary Primary
今回の運用対象
http://www.mongodb.jp
www.mongodb.jp
httpd
PHP
mongosmemcached
mongod
secondary
host B
mongod
primary
host C
mongod
secondary
hidden
slaveDelay
replica-set
www.mongodb.jp
httpd
PHP
mongosmemcached
mongod
secondary
host B
mongod
primary
host C
mongod
secondary
hidden
slaveDelay
replica-set
・負荷的に余裕なので基本はAll in one
・基本secondaryから読み、書込みは極少ない
・host C はバックアップと非常時のリカバリ
www.mongodb.jpさえ無事なら
大きな障害にはならない
なので思い切って
ヤル!!

More Related Content

ODP
Mozilla コアハッカー育成計画
PDF
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
PDF
Groongaドキュメント読書会3の進め方
PDF
冴えないデータセットの育て方
PDF
ベンチマークより力比べしたくない?
PPTX
20170218 lt
PDF
Webサービス:koding
ODP
LT 2014 - 1
Mozilla コアハッカー育成計画
gcoreでプロセスメモリダンプ -mysqlプロセスメモリを見てみる-
Groongaドキュメント読書会3の進め方
冴えないデータセットの育て方
ベンチマークより力比べしたくない?
20170218 lt
Webサービス:koding
LT 2014 - 1

What's hot (9)

PDF
Oscの沼にはまった
PPTX
Don't need docker
PPTX
Gentoo for Pythonista
PDF
Groongaドキュメント読書会4の進め方
PPTX
Gentoo is painful_but_useful
PDF
Http2入門の入門
PDF
フロントエンド開発の3ステップ(npm事始め)
ODP
20100729.atlassian
ODP
Lt
Oscの沼にはまった
Don't need docker
Gentoo for Pythonista
Groongaドキュメント読書会4の進め方
Gentoo is painful_but_useful
Http2入門の入門
フロントエンド開発の3ステップ(npm事始め)
20100729.atlassian
Lt
Ad

Viewers also liked (20)

PPTX
No sql for sql professionals
PDF
2300.10.133 rev a
PPTX
Drupal7 Blockでサイト構築しよう@Drupal cafe
PPSX
L’aparell digestiu
PDF
2015 multilatinas brochure
PPT
PPT
презентация элективного курса по русскому языку
PDF
Model day
PPSX
Broan nutone canada green initiatives 2006 2010
PPTX
Аавтоматизация. Что и зачем
PPTX
Html5 fun@Tokyo Bootstrap Tips
PPT
Hist 140 hoover dam
DOC
Formatofduediligence 020608
PDF
Relatório de monitoramento do plano nacional de cidadania
PDF
Optimal management presentation for investors about supply chains optimization
PDF
AdMore Introduction
PPTX
My Favorite Movie
PPTX
Team 4 Chp 4 & 5
DOCX
Creating A Sample Libary Assigment Brief
PDF
Html5fun@東京 Bootstrapにアニメーションを付けよう
No sql for sql professionals
2300.10.133 rev a
Drupal7 Blockでサイト構築しよう@Drupal cafe
L’aparell digestiu
2015 multilatinas brochure
презентация элективного курса по русскому языку
Model day
Broan nutone canada green initiatives 2006 2010
Аавтоматизация. Что и зачем
Html5 fun@Tokyo Bootstrap Tips
Hist 140 hoover dam
Formatofduediligence 020608
Relatório de monitoramento do plano nacional de cidadania
Optimal management presentation for investors about supply chains optimization
AdMore Introduction
My Favorite Movie
Team 4 Chp 4 & 5
Creating A Sample Libary Assigment Brief
Html5fun@東京 Bootstrapにアニメーションを付けよう
Ad

More from Hiroaki Kubota (10)

PDF
Db tech showcase2015 how to replicate between clusters
PDF
DB tech showcase: 噂のMongoDBその用途は?
PDF
MongoDBで自然言語処理
PDF
Why mincore() returns different value of stat ?
PDF
Mongo ghostsync and slaveDelay (Japanease)
PDF
Mongo ghostsync and slaveDelay
PDF
C10K on Mongo's sharding
PPT
Cockatoo
PPT
MongoTokyo
PPT
Albatross
Db tech showcase2015 how to replicate between clusters
DB tech showcase: 噂のMongoDBその用途は?
MongoDBで自然言語処理
Why mincore() returns different value of stat ?
Mongo ghostsync and slaveDelay (Japanease)
Mongo ghostsync and slaveDelay
C10K on Mongo's sharding
Cockatoo
MongoTokyo
Albatross

MongoDBJP 納涼もんご祭り