More Related Content
Similar to NoSQLに関するまとめ (20)
More from Gosuke Miyashita
More from Gosuke Miyashita (20)
NoSQLに関するまとめ
- 2. NoSQLとは?
• Not Only SQLの略
– 元々は本当に「No SQL」だったみたいだけ
ど、印象悪いのでこうなったらしい
• SQLを使わない非リレーショナルなデータ
ベースの総称
– おおざっぱに言うとMySQLとかPostgreSQL以外
• どんなものがあるか
– kumofs, redis, Amazon
SimpleDB, hBase, Cassandra, memcachedb, Couch
DB, MongoDB, ...
- 5. ACIDからBASEへ
• ACID: データベースのトランザクション特性
– Atomicity - トランザクションに含まれるタスクが
全て実行されるか、あるいは全く実行されないこ
とを保証する性質
– Consistency -トランザクション開始と終了時にあ
らかじめ与えられた整合性を満たすことを保証す
る性質
– Isolation -トランザクション中に行われる操作の過
程が他の操作から隠蔽されることを指す
– Durability -トランザクション操作の完了通知を
ユーザが受けた時点で、その操作は永続的とな
り、結果が失われないことを指す。
- 7. BASE
• Basically Available
– いつでもデータにアクセスできることが重要
• Soft-state
– ゆるい状態管理/データ管理
– 高負荷時の耐性が高い
• Eventual consistency
– 結果整合性。途中でデータに不整合が起きて
も、結果的に整合性がとれてればOK
- 9. ACID対BASE
ACID
• Strong Consistency
• Isolation
• Focus on “commit”
• Nested transactions
• Availability?
• Conservative(pessimistic)
• Difficult evolution(e.g.
schema)
BASE
• Weak consistency – stale
data ok
• Availability first
• Best effor
• Approximate answers OK
• Aggressive(optimistic)
• Simpler!
• Faster
• Easier evolution
- 11. CAP定理
• スケーラビリティや整合性に関する定理
• Consitency
– 誰かがデータを更新したら、その後は必ず更新後の
データが返る
• Availability
– クライアントは必ずデータにアクセスできる
• Partition tolerance
– 耐ネットワーク分断性
– データを複数サーバに分散して保存できる、と読み
替えても良い
• この3つのうち、2つまでしか同時に満たせない、
というのがCAP定理
- 13. CAP定理の適用
• AvailabilityとPartition torelance
– データは分散され、いつでもデータにアクセスでき
る
– データ複製中は不整合な状態になりえる
– DNSなんかはその例
• 大規模分散システムにはこのAとPを満たすことが
重要
• Cはある程度妥協する(Eventual Consistency)
• ただし、VerticaはNoSQLながらもStrong Consitency
らしい
• CとAを満たすものがRDB。CとPやAとPを満たすも
のがNoSQL
- 21. データモデルで分類したソフト
ウェア
• Key-Value
– Tokyo Cabinet, Dynamo, Redis, Kai, kumofs
• 列指向
– Cassndra, hBase, HyperTable, BigTable, Vertica
• ドキュメント指向
– CouchDB, SimpleDB, MongoDB, Terrastore
- 31. 参考リンク
• NoSQL登場の背景、CAP定理、データモデルの分類
– http://www.publickey1.jp/blog/10/nosqlcap.html
• クラウド上のリレーショナルデータベースはなぜ難しいの
か? BASEとCAP定理について
– http://www.publickey1.jp/blog/09/_basecap.html
• CAP と BASE について調べたこと
– http://yohei-y.blogspot.com/2009/03/cap-base.html
• CAPのCとACIDのC
– http://yohei-y.blogspot.com/2009/04/yokohamapm-eventually-
consistent.html
• 分散環境でのデータ管理におけるソフトステートのロバスト
性の評価
– http://www-imase.ist.osaka-u.ac.jp/paper/Yamaguchi05_IN12-J.pdf
• この辺から辿れるところを読んでおけば大体把握できるかと