個人財務 NoSQLで整合性メソッドを適用する - ダミー

NoSQLで整合性メソッドを適用する - ダミー

目次:

Anonim

データベースの 整合性 プロパティは、データがデータベースに正常に書き込まれると、それに続くクエリはデータにアクセスしてデータの一貫したビューを取得できます。実際には、これは、レコードをデータベースに書き込んですぐにそのレコードを要求すると、そのレコードが確実に表示されることを意味します。 Amazonの注文や銀行振込などの場合に特に便利です。

<! - 一 - >

一貫性はスライディングスケールですが、ここでカバーするには深すぎるテーマです。ただし、NoSQLの世界では、一貫性は一般的に次の2つのキャンプのいずれかになります。

  • ACID一貫性(ACIDは原子性、一貫性、分離、耐久性の略です):ACIDは、データが書き込まれると、読む。 最終的な一貫性(BASE):

  • BASEは、データが書き込まれると、最終的には読み上げられるようになることを意味します。 <!データベースの強固な一貫性が必要ではないと信じている人と、絶対に信じる人の間で闘争が激しさを増しています(999人を

    NoSQL企業に

'マーケティング部門! )。 現実はどこかにある。誰かのFacebookの投稿が彼の友達全員に5分間見られないことは重要ですか?いいえ、おそらくそうではありません。しかし、「Facebookの投稿」を「10億ドルの金融取引」に変更すると、あなたの態度は急速に変わります!どの一貫性アプローチを選択するかは、状況によって異なります。しかし、私の経験では、ミッションクリティカルなエンタープライズシステムの状況では常に強い一貫性が選択されています。 <! ACIDは、トランザクションシステムの一般的な原則であり、リレーショナルシステムだけにリンクされたものではなく、単にデータベースであっても、よく知っておく価値があります。 ACIDは、基本的には「 このデータベースには、すべてのデータベースに対して指定されていないデータの破損または喪失を防止する機能があります。実際、NoSQLデータベースの大部分はACID保証を提供していません。

Foundation DB、MarkLogic、Neo4jは注目に値する例外です。一部のNoSQLデータベースは、トランザクションの完了を許可する前に他の誰かが文書を変更したかどうかを確認する

確認と設定

という低品質保証を提供します。この動作は、単一レコード単位で実装される傾向があるため、通常は限定されています。

MongoDBは、チェックとセットの機能を提供する注目すべきデータベースです。 MongoDBでは、更新中にノード全体のデータをロックすることができるため、操作が完了するまですべての読み取り操作とすべての書き込み操作ができなくなります。しかし、同社はこの制限を取り除くために取り組んでいる。 BASE BASEは、ACID保証を行うのではなく、データベースが一貫性とデータ可用性の調整可能なバランスを持っていることを意味します。これは、通常、特定のデータベースクラスタのノードがデータベースの一部のプライマリマネージャとして機能し、他のノードが読み取り専用のレプリカを保持する場合です。

すべてのクライアントがすべての更新を確実に見るためには、データを保持するプライマリノードへの書き込みは、すべての読み取り複製が最新になるまでロックする必要があります。これは、 2つの -

フェーズコミット

と呼ばれます。変更はローカルに行われますが、他のすべてのノードが更新されたときにのみ適用され、クライアントに確認されます。

BASEはこの要件を緩和し、トランザクションが成功するためには、同じデータを保持するノードのサブセットのみを更新する必要がある。トランザクションがコミットされた後、読み取り専用レプリカが更新されます。

このアプローチの利点は、トランザクションがより迅速にコミットされることです。読み取り可能なライブレプリカを持つことは、データの読み込み負荷を分散して、読み込みをより迅速に行うことも可能になります。欠点は、読み取り複製物の一部に接続しているクライアントが、指定されていない期間の古い情報を参照する可能性があることです。いくつかのシナリオでは、この状態は正常です。あなたがFacebookに新しいメッセージを投稿し、あなたの友人の何人かが数分間それを見ないなら、それは大きな損失ではありません。ただし、銀行に支払い注文を送信した場合は、即時取引が必要な場合があります。読取り専用レプリカに対する別のアプローチは、クラスタ上の1つのノードのみが常にデータベースの特定の部分にサービスを提供する - 何もない クラスタを有することである。 共有は何もあなたが複製を失うことを意味しません。この方法を採用しているデータベースは、通常、別のプライマリノード(複数可)のセカンダリ領域にデータをレプリケートしますが、読み取りと書き込みのマスターはいつでも1つのみです。共有されていないクラスタは、より単純な整合性モデルの利点がありますが、レプリカには2フェーズコミットが必要です。この事実は、すべてのレプリカが更新されている間にトランザクションがロックされることを意味します。 (内部ロックと他のノードのロックにより、2つのフェーズが得られます)。非共有レプリカ・データ領域には読取り要求が受信されないため、通常、読取り専用レプリカを持つ共有データ・クラスタよりも影響が少なくなりますデータベースの一部。したがって、2フェーズ・コミットは、シェアード・ナッシング・クラスタでは、読み取り可能なレプリカを持つクラスタよりも高速です。

ACIDまたはBASEを選択しますか?

予想通り、NoSQLベンダーは異なる独自のアプローチを主張することで、競合他社と差別化できるからです。しかし、ロードマップにACID準拠のNoSQLベンダーが多数いることは興味深いことです。

いくつかのNoSQLデータベースは、BIDを支持しているにもかかわらず、ロードマップにACID準拠を持っています。これは、ACID保証が企業、ミッションクリティカルなシステムにどの程度関連しているかを示しています。

多くの企業ではアイデアをテストする際にBASE一貫性のある製品を使用しています。これは無料なので、ミッションクリティカルなシステムで稼動させたい場合はACID準拠の有料データベースに移行します。 あなたがACIDを必要としているかどうかを判断する最も簡単な方法は、人と他のシステムがあなたのデータと持つ相互作用を考慮することです。たとえば、データを追加または更新する場合は、次のクエリで変更を確認することが重要ですか?言い換えれば、データベースの現在の状態に重要な決定が下されていますか?期限切れになっているデータが少しだけ古いことが判明すれば、その決定に致命的な欠陥が生じる可能性がありますか? 金融サービスでは、一貫性の必要性が明らかです。トレーダーが在庫を購入すると考えてください。彼らは取引前に現金残高をチェックして、取引をカバーするための資金を確保する必要があります。彼らは正しいバランスが見えない場合、別の取引にお金を使うことにします。彼らが照会しているデータベースが最終的に一貫しているだけであれば、十分な資金が不足しているとは見られず、組織は財務リスクにさらされます。ヘルスケア、防衛、知能、その他の分野において、ACIDのBASEに対する同様のケースを構築することができる。しかし、それはすべてデータにまでこだわっており、適時性とデータセキュリティの両方の重要性があります。

NoSQLで整合性メソッドを適用する - ダミー

エディタの選択

SketchUpのステータスバー - ダミー

SketchUpのステータスバー - ダミー

SketchUpのステータスバーには、モデリング中に使用するコンテキスト情報が含まれています。モデリングウィンドウの下の狭い情報には、情報の良さが満載されています。コンテキスト固有の指示:ほとんどの場合、ここでは何をしているのかを確認するためにここでチェックします。モディファイアキー(組み合わせて使用​​するキーボードストローク)

スケッチツールにインテリジェントに反応するよう設計されたダミー

スケッチツールにインテリジェントに反応するよう設計されたダミー

ダイナミックコンポーネント(DC) SketchUpが提供する真の魔法に最も近いもの。あなたがそれらを拡大縮小するときに、伸ばしたり歪んだりするのではなく、寸法を変更するはずの部品は、他の部分はしません。

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpのサーフェスには、このメソッドの代わりはありません。地形の塊は、複雑な曲面の良い例です - 凹凸、ねじれ、波紋、多方向。扱っているカーブが単純な押し出しよりも複雑な場合は、この画像マッピングテクニックを使用する必要があります。キー...

エディタの選択

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

販売税の対象となる商品を販売する場合、QuickBooks 2013請求書には、これらの売上税を請求して追跡する広告申込情報も含まれます。これを行うには、売上税明細を登録します。販売税項目を登録するには、新規項目ウィンドウを表示し、タイプ...から販売税項目を選択します。

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012でサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

エディタの選択

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressユーザーページには、あなたのブログのすべてのユーザーが表示されます。各ユーザーのユーザー名、名前、電子メールアドレス、ブログの役割、およびブログに投稿された投稿の数が表示されます。フォロワー:このデフォルトロールは、...

WordPress Permalinkをサーバーと連携させる方法 - ダミー

WordPress Permalinkをサーバーと連携させる方法 - ダミー

デフォルト以外のオプションを使用してWordPressサイトのパーマリンクの場合、WordPressは特定のルールまたはディレクティブを.txtファイルに書き込みます。あなたのWebサーバー上のhtaccessファイル。 permalinkによると、htaccessファイルはあなたのWebサーバーと交信して、パーマリンクをどのように提供すべきかを示します。

WordPressブログを修正する方法 - ダミー

WordPressブログを修正する方法 - ダミー

WordPressブログをインストールした後、それがリンクされているウェブサイトに合ったブログ。既存のテーマ(スキン)を変更したり、WordPressをインストールした後に使用できる代替語句を選択することができます。選択したテンプレートがメインWebサイトに似ていることを確認してください。ただし、WordPressは...