問題タブ [consistency]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
2060 参照

testing - 組み込みシステムでヒープとスタックのRAMの整合性を確認する方法

LEON2プロセッサ(Sparc V8)を使用してプロジェクトに取り組んでいます。プロセッサは8MバイトのRAMを使用しており、ブートのセルフテスト中に整合性をチェックする必要があります。私の問題は、私のブートがヒープ/ BSS /スタックにRAMのごく一部を使用していることです。これは、アプリケーションをクラッシュさせずに変更することはできません。私のRAMテストは非常に簡単です。すべてのRAMアドレスに特定の値を書き込んでから、それらを読み戻して、RAMチップをアドレス指定できることを確認します。

この方法は、使用可能なほとんどのRAMに使用できますが、残りのRAMの整合性を安全に確認するにはどうすればよいですか?

0 投票する
2 に答える
6014 参照

cassandra - Cassandra での読み取りと書き込みの一貫性

読み取り-自分-書き込みの一貫性は、いわゆる結果的一貫性から大幅に改善されています。プロフィール写真を変更した場合、1 分後に他の人が変更を確認するかどうかは気にしませんが、ページのリロード後にまだ表示される場合は奇妙に見えます。古いもの。

複数のノードで完全な読み取りチェックを行うことなく、Cassandra でこれを実現できますか?

ConsistencyLevel.QUORUM不特定のデータを読み込みながら使用しても問題なく、実際に n>1 ノードが読み込まれています。ただし、クライアントが書き込みと同じノードから読み取る場合 (実際には同じ接続を使用する場合) は、無駄になる可能性があります。この場合、一部のデータベースは、以前に書き込まれた (私の) データが返され、古いデータではなく常に返されることを保証します。を使用ConsistencyLevel.ONEしてもこれは保証され、競合状態につながると想定されます。いくつかのテストでこれが示されました:

このシナリオの私の仮定のセットアップは、2 つのノード、レプリケーション ファクター 2、読み取りレベル 1、書き込みレベル 1 です。

私の意見では、RF=3、RL=quorum、WL=quorum の 3 つのノードを使用すると、「自分の」データのみで一貫性を保つだけで十分な場合、無駄な読み取り要求が発生します。

// seo: 別名: セッションの一貫性、read-after-my-write の一貫性

0 投票する
3 に答える
443 参照

mysql - 顧客がオンラインで注文しているときに DB で価格変更を処理するにはどうすればよいですか?

Product、、、などの列を持つデータベース テーブルproduct_idがありpriceますinventory_count

ユーザーがクリックして、特定の商品を特定の価格で購入します。私のプログラムは、製品と価格を一覧表示する確認ページを生成します。すべて問題なく、ユーザーは「確認」をクリックします。私のプログラムはその製品の を更新inventory_countし、製品の に記載されている金額をユーザーのクレジット カードに請求しますprice

ただし、確認ページが生成されてから、ユーザーが [確認] をクリックするまでの間、その商品の価格は変更されています。したがって、ユーザーは確認ページで 10 ドルの価格を見たかもしれませんが、[確認] をクリックするpriceと、製品テーブルの価格はすでに 11 ドルに変更されており、それが請求されます。

このような状況を処理する最善の方法は何ですか? 関連する場合は、MySQL と Python を使用しています。

0 投票する
1 に答える
801 参照

amazon-s3 - 結果整合性とメッセージング

私はこの問題に遭遇しましたが、これまでのところ、唯一の解決策はより強力な一貫性モデルのようです。サービスは、結果整合性を提供する Amazon S3 です。BLOB ストレージのバックエンドとして使用します。

問題は、アプリケーションにメッセージング パターンを導入したことです。そのメリットに疑いの余地はありません。ただし、より強い整合性が求められるようです。シナリオ:

  1. サブシステムはユーザーからデータを取得します
  2. データはS3に保存されます
  3. メッセージが送信されます
  4. メッセージは別のサブシステムによって受信されます
  5. データはS3から読み込まれます
  6. ...コオロギ。これは古いデータですか?時々そうです。

そう。S3からの一貫性のない読み取りを避けるために、メッセージでデータを送信することは明らかです。メッセージが不必要に大きくなり、レシーバーがビジー状態またはダウン状態になり、新しいデータが既に利用可能であるにもかかわらず遅れてメッセージを受信すると、メッセージは失敗します。

これに対する解決策はありますか? それとも、RDBMS や MongoDB のようなより一貫性のあるバックエンドのために S3 をダンプする必要があるのでしょうか?

0 投票する
2 に答える
42 参照

php - データベースの予期しないことを回避してログに記録する方法は?

たとえば、ユーザーが製品を作成し、それをカテゴリに割り当てます。

カテゴリには、いくつかの記録があります。

ユーザーが製品を作成し、製品にカテゴリを割り当てる必要があり、ユーザーは次のようにします。

そして、フローは次のようになります。

しかし、ステップ 1 のチェックを終えて、2b が開始される前にチャンスはありますか。管理者は電話カテゴリを削除します。これが発生した場合、データベースは cat id watch を持たないレコードを挿入します。データベースには次のようなものがあります。

しかし、次のような記録があります。

これを行う機会がある場合、どうすればこれを回避できますか? ありがとうございました。

(codeigniter で php と mysql を使用)

0 投票する
1 に答える
849 参照

cassandra - Cassandraデータモデルとのトランザクション

CAP理論によると、Cassandraは結果整合性しか持てません。さらに悪いことに、適切な処理を行わずに1つの要求中に複数の読み取りと書き込みが行われると、論理的な一貫性が失われる可能性があります。言い換えれば、私たちが物事を速く行うならば、私たちはそれを間違って行うかもしれません。

一方、Cassandraのデータモデルを設計するためのベストプラクティスは、実行するクエリについて考え、それにCFを追加することです。このように、1つのエンティティを追加/更新するということは、多くの場合、多くのビュー/CFを更新することを意味します。アトミックトランザクション機能がなければ、それを正しく行うことは困難です。しかし、それで、AとPの部分が再び失われます。

これは多くの人に関係しているとは思わないので、なぜだろうと思います。

  • これは、1回のセッションで複数の読み取りと書き込みを行わないようにデータモデルを設計する方法を常に見つけることができるためですか?
  • これは、「正しい」部分を無視できるからですか?
  • 実際には、ACID機能は常に中間のどこかにありますか?アプリケーション層に実装するのか、それを処理するミドルウェアを追加するのか。
0 投票する
2 に答える
5109 参照

mongodb - NoSQL: MongoDB または BigTable が常に「利用可能」ではないということはどういう意味ですか

Nathan Hurst のVisual Guide to NoSQL Systems を読んで、彼はCAP三角形を含めました。

  • C一貫性
  • A有効性
  • Pアーティショントレランス

ここに画像の説明を入力

SQL Server がACシステムであり、MongoDB がCPシステムです。

これらの定義は、カリフォルニア大学バークレー校の Eric Brewer 教授と、PODC 2000 (分散コンピューティングの原則) での彼の講演に由来します。

可用性

可用性とは、サービスが利用可能であることを意味します (上記のように完全に動作するかどうか)。本を購入するとき、ウェブサイトが通信不能であるというブラウザのメッセージではなく、応答を得たいと考えています。Gilbert と Lynch は、CAP 定理の証明で、最も必要なときに可用性が失われることがよくあることを適切に指摘しています。利用可能であるがアクセスされていないサービスは、誰にとっても何のメリットもありません。

MongoDB または BigTable のコンテキストで、システムが「利用できない」とはどういう意味ですか?

接続しようとしましたが (TCP/IP などで)、サーバーが応答しませんか? クエリを実行しようとしましたが、クエリが返されませんか、またはエラーが返されますか?

利用できないとはどういう意味ですか?

0 投票する
1 に答える
46 参照

database - 同時に実行された場合、トランザクション (私にとっては MySQL) はどのように動作しますか?

これが私のシナリオです:

テーブル A には 4 行 (id、col1、col2、col3) があり、最後の 3 行には UNIQUE インデックスが配置されています (id は主キー)。ユーザー Foo とユーザー Bar の 2 人のユーザーがいるとします。Foo と Bar の両方がテーブル A に多くの行を挿入するトランザクションを開始し、同時にトランザクションをコミットした場合、テーブルで UNIQUE インデックスの不整合が発生する可能性はありますか?

言い換えれば、トランザクションがアトミックである場合 (そしてアトミックである場合)、それが実行されている限り、最初のトランザクションの一貫性にリスクをもたらす可能性のある他のトランザクションは実行されないということですか?

前もって感謝します!

0 投票する
3 に答える
304 参照

html - CSS: ブラウザ間で一貫性がなく、正しい方法でフォーマットされた水平メニューを取得しようとしています

水平メニューをきれいに見せようとしています。
これは、私の HTML がどのように見えるかの例です。

これは私の CSS のスニペットです。Firefox では機能しますが、IE では機能しません。

css を変更して IE で正しく動作させることはできますが、FireFox では動作しません! 各ブラウザでレンダリングされた上記のコードのスクリーンショットを次に示します。

ファイアフォックス:こちら

Internet Explorer:こちら

0 投票する
4 に答える
3116 参照

caching - memcached と MySQL のような rdbms を使用する場合のキャッシュの一貫性

私は今学期にデータベースの授業を受けており、RDBMS と memcached などのキャッシュ サーバーとの間でキャッシュの一貫性を維持する方法について勉強しています。競合状態が発生すると、一貫性の問題が発生します。例えば:

  1. キャッシュからを実行しget(key)、キャッシュ ミスが発生したとします。キャッシュ ミスが発生したため、データベースからデータを取得put(key,value)し、キャッシュに対して a を実行します。
  2. しかし、競合状態が発生する可能性があり、データベースから取得したデータを他のユーザーが削除する可能性があります。putこの削除は、キャッシュを行う前に発生する可能性があります。

したがって、理想的にはput、データがデータベースに長く存在するため、キャッシュへの挿入は発生しないはずです。

キャッシュ エントリに TTL がある場合、キャッシュ内のエントリの有効期限が切れる可能性があります。それでも、キャッシュ内のデータがデータベースと一致しないウィンドウがあります。

この種の問題について語っている記事/研究論文を探しています。しかし、有用なリソースは見つかりませんでした。