CAP && BASE

ベースキャップの原則やアイデア

 

 

 

CAPは、場の理論を配布し、

一貫性(一貫性)、同じ更新データは、すべてのデータの変更が同期されます

アベイラビリティ(可用性)、優れた応答性能

分割耐性(分割耐性)信頼性

 

定理:任意の分散システムは、アカウントに3を取ることができない、唯一の2点を満たすことができます。

アドバイス:3つの完璧なシステムを満たすために、分散設計する建築家でエネルギーを無駄にしないでください、それは選択する必要があります。

 

高可用性+一貫性を持つリレーショナルデータベースのACIDモデルは、パーティションに困難です。

原子性原子性:トランザクションのすべての操作が完了しなければならない、またはすべてが完了しません。

トランザクションの最初と最後に一貫性の一貫性、データベースは一貫した状態にする必要があります。

絶縁バリア。サービスが動作のみで、独自のデータベースは、お互いを知っていないと仮定します。

耐久性。トランザクションが完了すると、それは返すことはできません。

JTAトランザクションが2PCをサポートすることができます2PC(2フェーズ・コミット)、2PCは抗スケーラビリティパターン(パットHelland)抗スケーラブルなモデルで、JavaEEの:クロスデータベース2フェーズコミットトランザクション。2PCは、アンチパターンであるため、避けるためにBASEを使用して、2PCを使用しないようにしてください。

 

高い一貫性、信頼性や可用性の費用を取得するベースモデル抗ACIDモデル、完全に異なるACIDモデル:

利用できる基本的な基本的に利用可能。サポートパーティションが失敗した(例えばシャーディング破片データベース分割)

ソフトステートソフトステート状態できないいくつかの時間の同期、非同期のため。

最終的には一貫性の最終合意は、その上に、最終的なデータと一致し、かつ高い常に一貫性がありません。

 

主なアイデアは、BASEを実現しています

機能データベースで1

2.sharding破片

 

BASEは、あなたが高可用性は、純粋なパフォーマンスである必要があるならば、彼らはパフォーマンスのBASEのアイデアのプログラムの一貫性や寛容性を犠牲にしなければならない、基本の可用性に重点を考えて、盗聴される可能性を秘めています。

 

今NOSQLの動きがBASEのアイデアを広げる充実、特別なプログラムは、このような怠慢の一貫性、高可用性などの特定の状況に応じてカスタマイズすることができ、というように、NOSQL 2校は以下を持っている必要があります。

このよう驚かダイナモのように、三の原則傾向データベース製品に応じて異なるCAPを選択する柔軟性など1.キーと値のストレージ、。

2.ドメインモデル+ +分散キャッシュメモリ(Qi4jのNoSQLとスポーツ CAP、困難の3つの原則に基づいた柔軟な分散型のアプローチをカスタマイズすることができます彼らのプロジェクトと連携して)、。

 

共通する二つのこと:リレーショナルデータベースのSQL以外のすべてのオプション、データ配信などのロジック、すべてのモデルは、読み取りを永続化、データ処理およびデータ・ストレージ・分離を所有し、分離を書くことができ、ストレージが非同期であることができ、または同期、一貫性の程度に応じて。

 

異なる点:キー値記憶等NOSQLとリレーショナルデータベース製品は、製品ボックスの最初満たしている、そのようなPHP RUBYなどのJava以外の領域のために適切であり得る、生成物を取り出して使用することができ、分散キャッシング・ドメイン・モデル+ +ストレージは、複雑なインフラストラクチャソリューションではなく、製品であるが、このアプローチは、より柔軟であり、建築家がマスターしなければならないであるべきです。

 

 

おすすめ

転載: blog.csdn.net/anwarkanji/article/details/91914082