SlideShare a Scribd company logo
CAPとBASE、ACIDの呪縛荒浪一城http://d.hatena.ne.jp/kazuki-aranami/@kimtea
自己紹介荒浪一城(アラナミカズキ)1983年生まれ、静岡県島田市出身http://twitter.com/kimtea404 ないわー (・∀・)キムティ♪ Not Foundの日記http://d.hatena.ne.jp/kazuki-aranami/
このセッションの対象となる方々次の言葉を見聞きして、どうも気になる方CAP定理と聞いて(ガラッKVS(キー・バリュー型データストア)において分散されたノード間でのトランザクションどのように何千台ものノード間でトランザクションを実行して、コミットするの?何千台ものノードにトランザクションがはしっている間、ACID特性を保って結果が待っているの?\・∀・ \BASE特性で何でも解決するよ
そもそもトランザクションとは?トランザクションとは、「取引」を意味する相手とのやりとりを通じて、最終的に「合意」に至るまでの一連のプロセス(処理単位)を指し示す合意
オールオアナッシング成功または失敗のどちらか一方で終わるトランザクションは、そのプロセスがやりとりする範囲(処理単位)が、成功または失敗のどちらか一方で終わる、というオールオアナッシングの考えに基づいている成功失敗or
トランザクションモデルローカルトランザクションフラットトランザクショングローバルトランザクション入れ子トランザクション(ネステドトランザクション)分散トランザクション厳密な定義は、ジム・グレイの「トランザクション処理 概念と技法」上下巻を参照のこと。トランザクションモデルは、上巻189ページへ
ローカルとグローバルの違いローカルトランザクション単一のリソースマネージャー内部のみグローバルトランザクション複数のリソースマネージャーにまたがるリソースマネージャー = DBMS (X/Open DTP)SQL ServerOracle
フラットトランザクションACID特性を持つトランザクションAtomicity:原子性Consistency:一貫性Isolation:分離性Durability:持続性厳密な定義は、ジム・グレイの「トランザクション処理 概念と技法」上下巻を参照のこと。フラットトランザクションは、上巻197ページより
グローバルトランザクション入れ子トランザクショントランザクションが木構造になっている航空機のチケットとホテルの部屋を同時に予約した場合に、航空会社とホテルのそれぞれデータベースへ、サブトランザクションがはしることになるOracleDB2航空会社ホテル
グローバルトランザクション分散トランザクション分散環境で実行されるフラットトランザクションデータがどこにあるかに依存し、ネットワーク中の複数のノードを訪問する必要があるBigTableBigTableBigTableBigTableBigTableBigTable
入れ子と分散トランザクションの違い入れ子:アプリケーションの機能的な分解、つまりはアプリケーションが何を制御領域としているかによって決められる分散:ネットワーク中のデータの分散に依存する分散トランザクションの問題データのロック、トランザクション全体のコミット、そして分散相互排他アルゴリズムが必要となる点である分散相互排他アルゴリズムの例Paxos(GoogleApp Engine)、Zab(Zookeeper)
CAP conjecture(CAP経験則)Eric BrewerのCAP定理Consistency(一貫性、コンシステンシー)Availability(可用性、アベイラビリティー)Partition-tolerance(分割耐性、パーティショントレランス)数学的に証明された「定理(theorem) 」ではないことに注意。この定理は、ACIDな共有システムでのみ有効である正しくは、「CAP conjecture (推測・推定) 」個人的には、ACID特性に基づく「CAP経験則」という呼び方を提唱したい
BASEEric BrewerのBASEBasically Available(ベイシカリーアベイラブル)基本的には可用性があるSoft-state(ソフトステイト)限られた時間のみ状態を保持するHard-stateと対比する形で、RFCなどのプロトコルを起源とするが、分散システムの世界では、 Soft-stateのみが用いられるEventual Consistency(イベンチュアルコンシステンシー)一時的に古い状態が見えることもある、結果整合性BASEの概念は、2000年のACMPODCでの発表より以前の1997年、ACM SOSPにおける論文「Cluster-Based Scalable Network Services」の1.4 BASESemanticsで詳細に述べられている
なぜACIDの呪縛に我々は捕らわれたのか?典型的なトランザクションは、リレーショナルデータベースにおける銀行口座の入出金やオークションの入札などフラットトランザクションモデルの事例であるこれらは、即時応答性の要求されるタイプのトランザクションであり、ACID特性を持つフラットトランザクションでは有効だが、DNSやインターネットの商取引モデルなどBASE特性を持つトランザクションを描くには限界があるショッピングサイトでの買い物も「取引」であり、最終的に商品が消費者の手元に到着するまで数日かかるという「合意」に至るまでの、一連のプロセスもまたトランザクションである
まとめトランザクションとは「取引」のことトランザクションモデルローカルトランザクションフラットトランザクショングローバルトランザクション入れ子トランザクション分散トランザクションCAP conjecture(CAP経験則)ACID特性が満たされる共有システムで鉄則BASE特性ACID特性から呪縛をほどいてくれるもの
参考文献トランザクション処理 概念と技法 上下巻分散システム 原理とパラダイム 第一版分散システム 原理とパラダイム 第ニ版Principle of TRANSACTION PROCESSING SECOND EDITIONDistributed Transaction Processing:The XA Specification(X/Open DTP)

More Related Content

PDF
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
PDF
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
PDF
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
PPTX
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
PPT
Cassandraのしくみ データの読み書き編
PDF
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
PDF
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
PDF
開発速度が速い #とは(LayerX社内資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
リクルートのビッグデータ活用基盤とビッグデータ活用のためのメタデータ管理Webのご紹介
Dapr × Kubernetes ではじめるポータブルなマイクロサービス(CloudNative Days Tokyo 2020講演資料)
モノリスからマイクロサービスへの移行 ~ストラングラーパターンの検証~(Spring Fest 2020講演資料)
Cassandraのしくみ データの読み書き編
YugabyteDBを使ってみよう(NewSQL/分散SQLデータベースよろず勉強会 #1 発表資料)
[CTO Night & Day 2019] AWS で構築するデータレイク基盤と amazon.com での導入事例 #ctonight
開発速度が速い #とは(LayerX社内資料)

What's hot (20)

PDF
Akkaとは。アクターモデル とは。
PPTX
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
PPTX
イベント・ソーシングを知る
PPTX
事例で学ぶApache Cassandra
PDF
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
PDF
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
PDF
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
PDF
Dockerfile を書くためのベストプラクティス解説編
PDF
ナレッジグラフ入門
PPTX
初心者向けMongoDBのキホン!
PDF
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
PPTX
マイクロサービスにおける 結果整合性との戦い
PDF
リクルート式 自然言語処理技術の適応事例紹介
PDF
GraphQL入門 (AWS AppSync)
PPTX
検索評価ツールキットNTCIREVALを用いた様々な情報アクセス技術の評価方法
PDF
20200630 AWS Black Belt Online Seminar Amazon Cognito
PPTX
[社内勉強会]ELBとALBと数万スパイク負荷テスト
PDF
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
PDF
AWS Black Belt Online Seminar - Amazon Lightsail
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
Akkaとは。アクターモデル とは。
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
イベント・ソーシングを知る
事例で学ぶApache Cassandra
アプリ開発者、DB 管理者視点での Cloud Spanner 活用方法 | 第 10 回 Google Cloud INSIDE Games & App...
Kinesis + Elasticsearchでつくるさいきょうのログ分析基盤
AWS Black Belt Online Seminar 2018 Amazon DynamoDB Advanced Design Pattern
Dockerfile を書くためのベストプラクティス解説編
ナレッジグラフ入門
初心者向けMongoDBのキホン!
40分でわかるHadoop徹底入門 (Cloudera World Tokyo 2014 講演資料)
マイクロサービスにおける 結果整合性との戦い
リクルート式 自然言語処理技術の適応事例紹介
GraphQL入門 (AWS AppSync)
検索評価ツールキットNTCIREVALを用いた様々な情報アクセス技術の評価方法
20200630 AWS Black Belt Online Seminar Amazon Cognito
[社内勉強会]ELBとALBと数万スパイク負荷テスト
心理的安全性の構造 デブサミ2019夏 structure of psychological safety
AWS Black Belt Online Seminar - Amazon Lightsail
継続的なモデルモニタリングを実現するKubernetes Operator
Ad

Viewers also liked (20)

PDF
CAPとBASEとEventually Consistent
PDF
Cassandraとh baseの比較して入門するno sql
PDF
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
PDF
データベースシステム論13 - データベースの運用
PDF
データベースシステム論15 - 関係データモデル以外のデータベース
PDF
Eight meets AWS
PPT
Rest 勝利宣言
PDF
NoSQLとビックデータ入門編Update版
PPTX
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
PPTX
Wikipedia解析
PDF
普通の人でもわかる Paxos
PDF
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
PDF
XMLデータベースについて
PDF
Chefを利用した運用省力化とDevOpsの取り組みについて
PDF
Riak: 本物の高可用性を実現する仕組みとは?
PDF
VMware的インフラ仮想化の世界
PPTX
NoSQL勉強会
PPTX
NoSQLに関するまとめ
CAPとBASEとEventually Consistent
Cassandraとh baseの比較して入門するno sql
RDB技術者のためのNoSQLガイド NoSQLの必要性と位置づけ
データベースシステム論13 - データベースの運用
データベースシステム論15 - 関係データモデル以外のデータベース
Eight meets AWS
Rest 勝利宣言
NoSQLとビックデータ入門編Update版
[OCPJ PoCWG Engineering Workshop] Zabbixを用いたOCPベアメタル監視環境の自動構築
Wikipedia解析
普通の人でもわかる Paxos
「クラウド本気で始めました」なSIerのChef活用と実践~Chefアンチパターンとの戦い~
XMLデータベースについて
Chefを利用した運用省力化とDevOpsの取り組みについて
Riak: 本物の高可用性を実現する仕組みとは?
VMware的インフラ仮想化の世界
NoSQL勉強会
NoSQLに関するまとめ
Ad

More from Kazuki Aranami (17)

PPTX
ソフトウェア開発法3
PPTX
ソフトウェア開発法2
PPTX
Project erp
DOCX
Project erp
PPTX
Ns総合演習 ソフトウェア開発概論
DOCX
ERP FAS DESIGN
PPTX
分散システムにおけるUUID(汎用一意識別子)の利用拡大
PPTX
法学入門 資金決済法
PPTX
法学入門 日本経済新聞電子版 免責規定編
PDF
クラウドカンファレンスIn静岡 r cloud
PPTX
20110924静岡イベント
PDF
20110926 クラウドカンファレンス静岡
PPTX
20110924 shizuoka azure-forsharing
PPTX
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
PPTX
複雑ネットワークとP2Pネットワーク
PDF
クラウドの原理とパラダイム 第一章
PDF
Cloud principles and paradigms kimtea-2010-04-24
ソフトウェア開発法3
ソフトウェア開発法2
Project erp
Project erp
Ns総合演習 ソフトウェア開発概論
ERP FAS DESIGN
分散システムにおけるUUID(汎用一意識別子)の利用拡大
法学入門 資金決済法
法学入門 日本経済新聞電子版 免責規定編
クラウドカンファレンスIn静岡 r cloud
20110924静岡イベント
20110926 クラウドカンファレンス静岡
20110924 shizuoka azure-forsharing
情報処理の高度化等に対処するための刑法等の一部を改正する法律案
複雑ネットワークとP2Pネットワーク
クラウドの原理とパラダイム 第一章
Cloud principles and paradigms kimtea-2010-04-24

CAPとBASE、ACIDの呪縛