CAPとBASEとEventually Consistent

21,596 views

Published on

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

No Downloads
Views
Total views
21,596
On SlideShare
0
From Embeds
0
Number of Embeds
13,289
Actions
Shares
0
Downloads
128
Comments
0
Likes
25
Embeds 0
No embeds

No notes for slide

CAPとBASEとEventually Consistent

  1. 1. CAPとBASEと Eventually Consistent 2009-04-17 Yokomaha.pm 山本陽平(id:yohei)
  2. 2. 遅刻して すんません
  3. 3. 微妙なアウェイ感の中 偽TAKESAKO メソッドで お送りします
  4. 4. 自己紹介
  5. 5. 氏名: 山本陽平(id:yohei) 職業: RESTエバンジェリスト (bogusne.ws 認定)
  6. 6. 今日の話題
  7. 7. 1 私とPerl 2 CAPと(ry
  8. 8. 私とPerl
  9. 9. 出会い
  10. 10. 1995年 SunOS 4 にて (たぶん) jperl
  11. 11. CGIで訪問者リストとか
  12. 12. 初めて買った オライリーの本
  13. 13. 赤ラクダ本
  14. 14. もちろん プログラミングPerl も買った
  15. 15. 言語遍歴
  16. 16. N8x BASIC→C→ Perl → C++ → Java → XSLT → C++ → C/ Perl→Java→Java ME → Ruby( い ま こ こ)
  17. 17. 最近のPerlは よく知りません
  18. 18. 場違いで ごめんなさい
  19. 19. でもPerlプロダクトには いつもお世話になってます とくに MogileFS と Perlbal ありがとう
  20. 20. 第一部 完
  21. 21. 第二部
  22. 22. アンケート
  23. 23. 複数のサーバ上に 分散したデータを 扱っている人?
  24. 24. (予想)ほぼ全員
  25. 25. PCは高性能だし ディスクは安いし 1台のサーバでも ある程度までは 運用できる
  26. 26. でも
  27. 27. 冗長化を考えると 複数サーバが必須
  28. 28. データ量も 結局大きくなる
  29. 29. 分散重要
  30. 30. でも分散は難しい
  31. 31. データを冗長化させると 複製の遅延で性能が落ち るし、かといって全体の 可用性は落としたくない けど、データの整合性は ある程度守らないとプロ グラムを作るのが大変だ
  32. 32. このジレンマのことを CAP 定理 といいます
  33. 33. CAP定理
  34. 34. Consistency Availability Partition tolerance
  35. 35. みっつ全ては 同時に満たせない
  36. 36. Consistency 誰かがデータを更 新したら、その後 は必ず更新後の データが返る
  37. 37. Availability クライアントは 必ずデータに アクセスできる
  38. 38. Partition Tolerance データを複数 サーバに分散して 保管できる
  39. 39. みっつ全ては 同時に満たせない (CAP定理)
  40. 40. イマドキの Webサービスなら AとPは必須
  41. 41. Consistency で妥協が必要
  42. 42. どう妥協するか が肝要
  43. 43. Consistency にもいろいろ 種類がある
  44. 44. 大きく分けると 二つ
  45. 45. Strong Consistency 誰かがデータを更新し たら、次アクセスする 人は必ず新しいデータ にアクセスできる
  46. 46. Weak Consistency 誰かがデータを更新し たら、次アクセスする 人は必ず新しいデータ にアクセスできる
  47. 47. いつになったら 更新された データが取得 できるのか
  48. 48. Eventual Consistency 誰かがデータを更新し そのデータが複製される のに十分な時間が過ぎ、 その後更新が加えられて いなかったら、必ず 新しいにアクセスできる
  49. 49. 詳細は 「結果整合性」 で検索
  50. 50. 古典的な例
  51. 51. MySQL の レプリケーション
  52. 52. Master Client Slave UPDATE binlog Inconsistenc SQL Window SELECT 古いデータ 実行 SELECT 新しいデータ
  53. 53. 最近の話題
  54. 54. 構造化オーバレイ Consistent Hashing Key-value-store 遅延最適なアーキテクチャ メッセージキュー キャッシュ 局所的な状態整合 などなど
  55. 55. DBMS由来の技術と P2P由来の技術と 分散システム由来の技術
  56. 56. 最後に 注意
  57. 57. ACIDはダメ これからはBASE
  58. 58. とか
  59. 59. CAP知らなくて いいのは 小学生まで
  60. 60. とかは FUDなので 無視しよう
  61. 61. 問題に合わせて 最適な整合性モデル を採用するのが重要
  62. 62. 私も勉強中
  63. 63. 続きはWebで http://yohei-y.blogspot.com
  64. 64. おしまい

×