[〜#〜] base [〜#〜]頭字語は、特定のデータベース、通常はNoSQLデータベースのプロパティを説明するために使用されます。 [〜#〜] acid [〜#〜] の逆と呼ばれることがよくあります。
BASEの詳細に触れる記事はほとんどありませんが、ACIDには、原子性、一貫性、分離、および耐久性の各プロパティについて詳しく説明した記事がたくさんあります。ウィキペディアは、用語にのみ捧げます 数行 。
これにより、定義に関するいくつかの質問が残ります:
Bそっと A利用可能、 S多くの場合、 E腹部一貫性
この記事 と私の想像を使用して、これらのプロパティを次のように解釈しました。
基本的に利用可能は、データの利用可能性を認識している可能性があります。単一のノードに障害が発生した場合、データの一部は利用できませんが、データレイヤー全体は動作し続けます。
ソフト状態:私が見つけたのは、データを定期的に更新する必要があるという概念だけでした。更新しないと、データは期限切れになるか削除されます。
最終的な一貫性は、十分な時間を与えられた場合、更新が最終的にすべてのサーバーに波及することを意味します。
誰かがこれらのプロパティを詳細に説明できますか?
それとも、化学で見られる酸と塩基の概念を指す、とてつもなくフェッチされた無意味な頭字語ですか?
BASEの頭字語は Eric Brewer で定義されていました。これは CAP定理 の定式化でも知られています。
CAP定理は、分散コンピューターシステムが次の3つのプロパティのすべてを同時に保証することはできないと述べています。
BASEシステムは一貫性をあきらめます。
ブリューワーは 頭字語が考案されている :
私はその年の初めに彼らのオフィスで生徒たちと[BASE]の頭字語を思いつきました。私はそれが少し工夫されていることに同意しますが、「ACID」もそうです-人々が気づいているよりもはるかに多いので、私たちはそれが十分であると考えました。
[〜#〜] base [〜#〜] と関係があります:BASEジャンパーの種類は常にSoftly状態で(新しい関係に)基本的に使用可能です(彼の関係はどれも非常に長く続きません) )と最終的に整合性(1日彼will結婚します)。
基本可用性:ほとんどの場合、データベースは動作しているように見えます。
ソフトステート:常にストアが書き込み整合性または相互に整合している必要はありません。
最終的な一貫性:データの一貫性は、任意の数の変更がどのように実行されるかに関して常に必要です。
ACIDは物質が示す一連のプロパティであり(化学で)、BASEはそれらを補完するセットであるため、頭字語が作成されてから「基本的に使用可能」な2つのコントラストを示すだけである可能性がありますソフト状態の最終的な整合性」は完全な形式であると判断されました。
ACIDとBASEは、それぞれRDBMSとNoSQLの一貫性モデルです。 ACIDトランザクションははるかに悲観的です。つまり、データの安全性がより心配されます。 NoSQLデータベースの世界では、ACIDトランザクションはファッショナブルではありません。一部のデータベースは、スケーラビリティや復元力などのその他の利点を得るために、即時の一貫性、データの新鮮さ、正確さの要件を緩和しているためです。
BASEの略-
したがって、BASEは一貫性を緩和して、システムが一貫性のない状態であっても要求を処理できるようにします。
例:ソーシャルネットワーク内でツイートが短期間一貫していない場合、誰も気にしません。ユーザー情報の一貫した状態を保持するよりも、即座に応答することが重要です。
他の答えに追加するために、頭字語は、2つの用語間のスケールを示して、RDMSとビッグデータのトランザクションまたはリクエストの信頼性を区別するために派生したと思います。
この記事から 酸vs塩基
化学では、pHは水溶液(水中の溶媒)の相対的な塩基性と酸性度を測定します。 pHスケールは0(バッテリーの酸などの高酸性物質)から14(嘘のような高アルカリ性物質)の範囲です。 77°F(25°C)の純水はpH 7で中性です。
データエンジニアは、化学者から酸と塩基を巧みに借用し、その意味は正確ではありませんが、トランザクション処理の信頼性を議論する際に特定のデータベースシステム内で何が起こっているかを表す適切な頭字語を作成しました。
もう1つのポイントは、Elasticsearchを使用してビッグデータを扱うからです。明確にするために、Elasticsearchのインスタンスはノードであり、ノードのグループがクラスターを形成します。
実用的な観点から私にとって、このコンテキストでのBA(Basically Available)は、Elasticsearchクラスターとその操作を処理する複数のマスターノードのアイデアを持っています。
3つのマスターノードがあり、現在のディレクティングマスターノードがダウンすると、システムは効率の悪い状態ではあるがアップのままになり、別のマスターノードがメインのディレクティングマスターノードとして代わります。 2つのマスターノードがダウンした場合、システムは引き続きアップのままで、最後のマスターノードが引き継ぎます。