0
なぜRiakが良いのか
@saisa6153
冗長性

{k:’v’}

どこに書き込んでも
データは複製されて
同じ値を読み出せる

{k:’v’}
耐障害性/高可用性

{k:’v’}

NW/HW障害が発生しても
他ノードが機能を代替して
生存ノードから読み出せる

{k:’v’}
更新可能性

{k:’w’}

変更を書き込んでも
更新内容は伝搬して
最新の値を読み出す

{k:’w’}
実際の使用例
インターネット/外部システム
外部アクセスのバランシング
アプリケーションサーバ

LB
web

内部アクセスのバランシング
Riakクラスタ

SW

Riak

web
LB
Riak

Riak
実際の使用例

LB
web

web
LB

マシンが壊れても

Riak

Riak

Riak
実際の使用例

LB
web

web
LB

NW障害が発生しても
Riak

Riak

Riak
実際の使用例

LB
残り2台が頑張る!
web
\ここは俺達に任せて(ry/
____________________
    <○√    <○√
      ∥       ∥
     くく     くく

web
LB
Riak

R...
実際の使用例

LB
web
翌朝マシンを追加すれば...
Riak

web
LB
Riak

Riak
Node1

Node2

Node3

欠けていた間の差分を自動で送信
実際の使用例

もとどおり!!
システムも止まらない!!

LB
web

web
LB

Riak

Riak

Riak
データベースといえば
これがMySQLだと

ここらへんは一緒

LB
web

書き込みはMasterに
Masterへの書き込みはSlaveに複製
読み出しはSlaveに

Master

web

Slave
これがMySQLだと

LB
web

Masterが死んだら...

web

Master

Slave
これがMySQLだと

LB
web

Slaveが死んだら...

web

Master

Slave
そうだ冗長化しよう!!
冗長化しよう!!
LB
変更を書き込むSlaveを
複数に設定
↓
Slaveが一台壊れても
大丈夫

web

web
LB

Master

Slave
Slave
冗長化しy...
LB
web

web
LB

Master

Slave
Slave
冗長化した...
<Active-Standby構成>
・普段はMaster:Aが
 アクセスを受ける
・AとSは相互に死活監視
・Aからの応答がない場合、
 MasterのIPをSに振る
・以後、Master:Sが
 Masterとして振る舞...
LB

LB
web

web

web

LB
Master:A
Riak

Riak

Riak
Master:S

web
LB
Slave
Slave

Riak簡単!!台数も少ない!!
もちろんRiakにも不得意分野がある
● 強い整合性が求められるデータ
○ 課金情報

● 応答速度を求められるデータ
○ セッション情報

→こういった分野は別のDBを用いるべき
むしろRiakは他のDB製品に比べて
● 実績が少ない
● ユ...
しかし現実は非情
「一体いつから---  データ量が増えないと錯覚していた?」

「DBサーバ追加...だと..?」
「一体いつから---  webサーバは故障しないと錯覚していた?」

「再設定...だと..?」
オペミスなどによって
システムが停止すると
鳴り止まない、電

話

第
参
話
稼働後のシステムは
止められない
変わるトポロジ
変えられないサービス
日々増大する複雑さと
莫大なトラフィック/データに
立ち向かう
運用
運用者に優しいDB
おしまい
Riakはなぜ良いのか
Upcoming SlideShare
Loading in...5
×

Riakはなぜ良いのか

2,195

Published on

Riak Advent Calendar 2013 day4

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

No Downloads
Views
Total Views
2,195
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Transcript of "Riakはなぜ良いのか"

  1. 1. なぜRiakが良いのか @saisa6153
  2. 2. 冗長性 {k:’v’} どこに書き込んでも データは複製されて 同じ値を読み出せる {k:’v’}
  3. 3. 耐障害性/高可用性 {k:’v’} NW/HW障害が発生しても 他ノードが機能を代替して 生存ノードから読み出せる {k:’v’}
  4. 4. 更新可能性 {k:’w’} 変更を書き込んでも 更新内容は伝搬して 最新の値を読み出す {k:’w’}
  5. 5. 実際の使用例 インターネット/外部システム 外部アクセスのバランシング アプリケーションサーバ LB web 内部アクセスのバランシング Riakクラスタ SW Riak web LB Riak Riak
  6. 6. 実際の使用例 LB web web LB マシンが壊れても Riak Riak Riak
  7. 7. 実際の使用例 LB web web LB NW障害が発生しても Riak Riak Riak
  8. 8. 実際の使用例 LB 残り2台が頑張る! web \ここは俺達に任せて(ry/ ____________________     <○√    <○√       ∥       ∥      くく     くく web LB Riak Riak
  9. 9. 実際の使用例 LB web 翌朝マシンを追加すれば... Riak web LB Riak Riak
  10. 10. Node1 Node2 Node3 欠けていた間の差分を自動で送信
  11. 11. 実際の使用例 もとどおり!! システムも止まらない!! LB web web LB Riak Riak Riak
  12. 12. データベースといえば
  13. 13. これがMySQLだと ここらへんは一緒 LB web 書き込みはMasterに Masterへの書き込みはSlaveに複製 読み出しはSlaveに Master web Slave
  14. 14. これがMySQLだと LB web Masterが死んだら... web Master Slave
  15. 15. これがMySQLだと LB web Slaveが死んだら... web Master Slave
  16. 16. そうだ冗長化しよう!!
  17. 17. 冗長化しよう!! LB 変更を書き込むSlaveを 複数に設定 ↓ Slaveが一台壊れても 大丈夫 web web LB Master Slave Slave
  18. 18. 冗長化しy... LB web web LB Master Slave Slave
  19. 19. 冗長化した... <Active-Standby構成> ・普段はMaster:Aが  アクセスを受ける ・AとSは相互に死活監視 ・Aからの応答がない場合、  MasterのIPをSに振る ・以後、Master:Sが  Masterとして振る舞う LB web Master:A web LB Slave Master:S Slave
  20. 20. LB LB web web web LB Master:A Riak Riak Riak Master:S web LB Slave Slave Riak簡単!!台数も少ない!!
  21. 21. もちろんRiakにも不得意分野がある ● 強い整合性が求められるデータ ○ 課金情報 ● 応答速度を求められるデータ ○ セッション情報 →こういった分野は別のDBを用いるべき むしろRiakは他のDB製品に比べて ● 実績が少ない ● ユーザが少ない ● 使いはじめるまでが簡単ではない
  22. 22. しかし現実は非情
  23. 23. 「一体いつから---  データ量が増えないと錯覚していた?」 「DBサーバ追加...だと..?」
  24. 24. 「一体いつから---  webサーバは故障しないと錯覚していた?」 「再設定...だと..?」
  25. 25. オペミスなどによって システムが停止すると
  26. 26. 鳴り止まない、電 話 第 参 話
  27. 27. 稼働後のシステムは 止められない
  28. 28. 変わるトポロジ 変えられないサービス
  29. 29. 日々増大する複雑さと 莫大なトラフィック/データに 立ち向かう
  30. 30. 運用
  31. 31. 運用者に優しいDB
  32. 32. おしまい
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×