CAPとBASEとEventually Consistent

Yohei Yamamoto
Yohei YamamotoGeneral Manager at RICOH Company Limited à RICOH Company Limited
CAPとBASEと
Eventually Consistent



2009-04-17 Yokomaha.pm
    山本陽平(id:yohei)
遅刻して
すんません
微妙なアウェイ感の中
 偽TAKESAKO
  メソッドで
  お送りします
自己紹介
氏名: 山本陽平(id:yohei)
職業: RESTエバンジェリスト
    (bogusne.ws 認定)
今日の話題
1 私とPerl
2 CAPと(ry
私とPerl
出会い
1995年
SunOS 4 にて
(たぶん) jperl
CGIで訪問者リストとか
初めて買った
オライリーの本
赤ラクダ本
もちろん
プログラミングPerl
   も買った
言語遍歴
N8x BASIC→C→
Perl → C++ → Java
→ XSLT → C++ → C/
Perl→Java→Java
ME → Ruby( い ま こ
こ)
最近のPerlは
よく知りません
場違いで
ごめんなさい
でもPerlプロダクトには
いつもお世話になってます


 とくに MogileFS と
 Perlbal ありがとう
第一部

完
第二部
アンケート
複数のサーバ上に
分散したデータを
扱っている人?
(予想)ほぼ全員
PCは高性能だし
ディスクは安いし
1台のサーバでも
ある程度までは
  運用できる
でも
冗長化を考えると
複数サーバが必須
データ量も
結局大きくなる
分散重要
でも分散は難しい
データを冗長化させると
複製の遅延で性能が落ち
るし、かといって全体の
可用性は落としたくない
けど、データの整合性は
ある程度守らないとプロ
グラムを作るのが大変だ
このジレンマのことを

CAP 定理
  といいます
CAP定理
Consistency
Availability
Partition tolerance
みっつ全ては
同時に満たせない
Consistency
誰かがデータを更
新したら、その後
は必ず更新後の
データが返る
Availability
クライアントは
必ずデータに
アクセスできる
Partition
Tolerance
データを複数
サーバに分散して
保管できる
みっつ全ては
同時に満たせない
 (CAP定理)
イマドキの
Webサービスなら
  AとPは必須
Consistency
で妥協が必要
どう妥協するか
  が肝要
Consistency
にもいろいろ
 種類がある
大きく分けると
  二つ
Strong Consistency

誰かがデータを更新し
たら、次アクセスする
人は必ず新しいデータ
にアクセスできる
Weak Consistency

誰かがデータを更新し
たら、次アクセスする
人は必ず新しいデータ
にアクセスできる
いつになったら
 更新された
 データが取得
 できるのか
Eventual Consistency

誰かがデータを更新し
そのデータが複製される
のに十分な時間が過ぎ、
その後更新が加えられて
いなかったら、必ず
新しいにアクセスできる
詳細は
「結果整合性」
  で検索
古典的な例
MySQL の
レプリケーション
Master
    Client                 Slave

         UPDATE
                      binlog
                                   Inconsistenc
                               SQL Window
         SELECT
古いデータ                          実行


         SELECT
新しいデータ
最近の話題
構造化オーバレイ
Consistent Hashing
Key-value-store
遅延最適なアーキテクチャ
メッセージキュー
キャッシュ
局所的な状態整合
などなど
DBMS由来の技術と
  P2P由来の技術と
分散システム由来の技術
最後に
 注意
ACIDはダメ
これからはBASE
とか
CAP知らなくて
  いいのは
 小学生まで
とかは
FUDなので
無視しよう
問題に合わせて
最適な整合性モデル
を採用するのが重要
私も勉強中
続きはWebで

http://yohei-y.blogspot.com
おしまい
1 sur 64

Recommandé

HowtousenetbossHowtousenetboss
Howtousenetbosskumee
270 vues10 diapositives
イケテルRuby開発環境イケテルRuby開発環境
イケテルRuby開発環境mokada
506 vues10 diapositives
Ohp Seijoen H20 08 JfreechartOhp Seijoen H20 08 Jfreechart
Ohp Seijoen H20 08 Jfreechartsesejun
518 vues22 diapositives
WebDAV as Web APIWebDAV as Web API
WebDAV as Web APIMasaki Komagata
3.3K vues32 diapositives

Contenu connexe

Tendances(20)

1000speakers-sendai1000speakers-sendai
1000speakers-sendai
勝信 今井1.3K vues
Windows Mobile de Hello World Windows Mobile de Hello World
Windows Mobile de Hello World
Kenji Wada430 vues
090501Homework 구글090501Homework 구글
090501Homework 구글
parkpaul347 vues
20090513 Cmsnight20090513 Cmsnight
20090513 Cmsnight
Yusuke Ando974 vues
Candycane overviewCandycane overview
Candycane overview
Yusuke Ando2.5K vues
CalendarCalendar
Calendar
kumee419 vues
Mac玩家特區X目錄Mac玩家特區X目錄
Mac玩家特區X目錄
MengSheng Huang856 vues
Solutions@ Web Slides (Chinese)Solutions@ Web Slides (Chinese)
Solutions@ Web Slides (Chinese)
webbssolutionsasia57 vues
Ppt PdfPpt Pdf
Ppt Pdf
kumee357 vues
PilotPilot
Pilot
Shunyo Ogawa361 vues
Bado2 Sa 026Bado2 Sa 026
Bado2 Sa 026
HungYu Su289 vues
Error.pmの簡単な紹介Error.pmの簡単な紹介
Error.pmの簡単な紹介
bingo_nakanishi1.6K vues
Developers[Media]Summit 2009Developers[Media]Summit 2009
Developers[Media]Summit 2009
Akiko Iwakiri1.8K vues

En vedette(20)

CAPとBASE、ACIDの呪縛CAPとBASE、ACIDの呪縛
CAPとBASE、ACIDの呪縛
Kazuki Aranami3.5K vues
PaxosPaxos
Paxos
Preferred Networks36.1K vues
冬のLock free祭り safe冬のLock free祭り safe
冬のLock free祭り safe
Kumazaki Hiroki27K vues
3 Dセンサーの活用3 Dセンサーの活用
3 Dセンサーの活用
Hirotaka Niisato6.1K vues
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
Volker Hirsch902.1K vues

Plus de Yohei Yamamoto(8)

WebAPIのこれまでとこれからWebAPIのこれまでとこれから
WebAPIのこれまでとこれから
Yohei Yamamoto29.6K vues
私の考えるドキュメント指向私の考えるドキュメント指向
私の考えるドキュメント指向
Yohei Yamamoto1.5K vues
良い Xml の見分け方 2007良い Xml の見分け方 2007
良い Xml の見分け方 2007
Yohei Yamamoto1.6K vues
Rest 勝利宣言Rest 勝利宣言
Rest 勝利宣言
Yohei Yamamoto1.7K vues
イントロイントロ
イントロ
Yohei Yamamoto1.1K vues
REST 入門REST 入門
REST 入門
Yohei Yamamoto6.2K vues

CAPとBASEとEventually Consistent