問題タブ [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 投票する
1 に答える
354 参照

string - Matlab での比較のために文字列をサニタイズする

これは、ファイル記述子を手動でいじる代わりに、を考慮したthisからのフォローアップの質問です。evalc以下に、サニタイズが不十分な例を示します。末尾の文字、すべての空白、すべての改行など、通常は予期しない事態を引き起こすものを削除したいのですが、これを行うためのサニタイズコマンドはありますか?

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

cassandra - 単一ノードの Cassandra クラスターを実行し、QUORUM の一貫性でクエリを実行しますか?

アプリケーション用のシンプルで「軽量」な開発/テスト環境をセットアップしようとしています。そこでは、単一ノードの Cassandra クラスターをキー スペースで実行できます'replication_factor':'1'

しかし、QUORUM の一貫性を使用して CQL クエリを実行すると、クラスターに 2 つのノードがないというエラーが引き続き表示されます。

この 1 つのノードのセットアップでクエリが QUORUM 整合性レベルで動作できるようにする方法はありますか? または 1 つを使用する (またはクラスターに 2 つ目のノードを追加する) ためのフォールバックのみですか?

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

database - Cassandra の書き込み失敗を処理するための一般的な方法は何ですか?

ドキュメント [1] では、次のように述べられていました。

したがって、2 つのレプリカのみが更新を受信すると仮定すると、書き込みは失敗します。ただし、最終的な一貫性により、すべてのノードが最終的に更新を受け取ります。

それで、再試行する必要がありますか?それともそのまま放置?

何か戦略はありますか?

[1] http://www.datastax.com/docs/1.0/dml/about_writes

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

mongodb - Neo4J と MongoDB の組み合わせ : 一貫性

私は最近多くの実験を行っていますが、私がやりたかったことの 1 つは、Neo4j と MongoDB という 2 つの一般的な NoSQL データベースを結合することです。単純に、それらが完全に補完し合っていると感じているからです。Neo4j のファースト クラスの市民であるリレーションは、まさに MongoDB に欠けているものですが、MongoDb を使用すると、ノード プロパティに大量のデータを入れなくて済みます。

そのため、Neo4j Java REST バインディングと MongoDB Java ドライバーを使用して、Java アプリケーションで 2 つを組み合わせようとしています。すべてのドメイン エンティティには、両方のデータベースに保存する一意の識別子があります。他のデータは MongoDB に保存され、エンティティ間の関係は Neo4J に保存されます。たとえば、両方のデータベースにはユーザー ID が含まれ、MongoDB にはプロファイル情報が含まれ、Neo4J には友情関係が含まれます。私が作成したカスタム データ アクセス レイヤーを使用すると、これはまさに希望どおりに機能します。そしてそれは速いです。

しかし... ユーザーを作成したいときは、Neo4j でノードを作成し、MongoDB でドキュメントを作成する必要があります。Neo4j はトランザクション対応で、MongoDB はトランザクション対応でないことを除けば、必ずしも問題ではありません。両方がトランザクションの場合、いずれかが失敗したときに両方のトランザクションをロールバックします。しかし、MongoDB はトランザクション対応ではないため、これを行うことはできません。

ユーザーを作成するたびに、ノードとドキュメントの両方が作成されるか、どちらも作成されないことを確認するにはどうすればよいですか。一致するノードがない大量のドキュメントになってしまいたくありません。

その上、結合されたデータベース インタラクションを ACID に準拠させるだけでなく、スレッドセーフにすることも望んでいます。GraphDatabaseService と MongoClient / DB の両方がシングルトンから提供されます。

MongoDB で「トランザクション ドキュメント」を作成することについて何かを見つけましたが、そのアプローチは本当に好きではありません。私は、neo4j beginTx、tx.success、tx.failure、tx.finish セットアップのような、すてきでクリーンなものが欲しいです。理想的には、同じ try/catch/finally ブロックで実装できるものです。

トランザクショナルに見える CouchDB に切り替えるべきでしょうか?

編集:コメントに触発されてさらに調査した後、CouchDBも私の特定のニーズには適していないことに気付きました。明確にするために、Neo4j の部分は固定されています。ドキュメント ストア データベースは、Java ライブラリを持っている限りではありません。

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

mysql - mysqldbcompare ユーティリティの問題。データベースの整合性チェックが毎回失敗する

mysqldbcompare ユーティリティを使用して 2 つのローカル データベースを比較しようとしています。このチェックでは、データベースの一貫性チェックが失敗したことが常に示されます。チェックと修復コマンドを試しました。しかし、役に立たない。

次のコードを使用して取得しました

私はこの分野にかなり慣れていません。助けていただければ幸いです。

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

c - メモリ書き込みがグローバルに表示されるようになるのはいつですか?

私は C でいくつかの低レベルの同期コードを書いています。そして、問題に遭遇しました:

2 つのスレッドがThread AありThread B、x86_64 マシンで実行されているとします。Thread A時刻t1にメモリ ロケーションに書き込み、その後、このロケーションへの書き込みはありません。時刻t2Thread Bで同じメモリ位置を読み取ります。

私の質問は、t2 - t1 > deltaであるt1およびt2に対して、 deltaが存在するかどうかです。t1に書き込まれた最新の値を読み取ることが保証されています。Thread BThread A

Intel と AMD の文書を読んだことがありますが、そのような保証が存在するかどうかは言及されていませんでした。この値は、プロセッサのモデルまたはマザーボードの設計 (マルチソケット マシンの場合) に依存する可能性があることを知っています。現在利用可能な正常な x86_64 マシンでは、このレイテンシーに何らかの制限があるに違いないと思います。

ロックやメモリバリアなどの同期プリミティブを使用して、そのような動作を保証する方法を知っています。メモリアクセスがグローバルに見えるようになるために、そのような保証されたレイテンシが存在するかどうかを知る必要があるだけです.

どうもありがとう!!

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

mysql - MySQL Cluster 7.3 はどのようにして 99,999% の可用性を達成できますか? CAP定理へのアンチテーゼ

"Guide to Scaling Web Databases with MySQL Cluster"によると、MySQL Cluster 7.3 は、同期更新レプリケーションを使用しながら 99,999% の可用性を達成できます。これは、分散システムでは完全な可用性 (99,999% と見なすことができますよね?) と一貫性は達成できないと述べているCAP 定理に対するアンチテーゼです。

レプリカを担当するデータノードに到達できない場合、クラスターは更新に対してどのように反応しますか? 同期更新レプリケーションの場合、ブロックする必要があり、可用性に影響します。

ガイドには次のように記載されています。

  • データ ノード内のデータは、ノード グループ内のすべてのノードに同期的に複製されます。データ ノードに障害が発生した場合、同じ情報を格納している他のデータ ノードが少なくとも 1 つ存在します。
  • データ ノードに障害が発生した場合、MySQL サーバーまたはアプリケーション ノードは、ノード グループ内の他のデータ ノードを使用してトランザクションを実行できます。アプリケーションはトランザクションを再試行するだけで、残りのデータ ノードは要求を正常に満たします。

しかし、ノード グループが 2 つのノードで構成され、1 つのノードがクラッシュした場合 (例はこちら)、これはどのように機能するのでしょうか? 私が理解している限り、同期更新レプリケーションを使用しているときに更新を失敗させるものに更新をレプリケートするノードはありませんか?! レプリカを書き込むノードが存在しない間、レプリケーションは一時停止されていますか?