問題タブ [consensus]
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.
concurrency - 同じコンセンサス番号を持つ並行オブジェクトは相互に実装できますか?
私の質問は少し理論的です。
まず、並行オブジェクトとコンセンサス階層の定義があります。コンセンサス階層は、コンセンサス番号で並行オブジェクトを分類します。
しかし、同じコンセンサス番号を持つオブジェクトが相互に実装できるかどうかを尋ねたいと思います。実際、私は答えが間違っていることを知っています。しかし、いくつかの例を挙げていただけますか?それとも、これはコンセンサス階層のより細かい構造を暗示していますか?
networking - 有効なリクエストの前に複数のメッセージ
2-generals 問題と TCP 全体のコンテキストでは、次の状況で、次の通信手順を実行することに利点があるかどうか疑問に思っていました。
ATM が銀行と通信して、顧客の口座から 50 ドルを差し引く状況を考えてみましょう。状況は次のようになります。
状況 1:
ATM -- 銀行
50$を差し引く ->
<- 50$ 控除
その後、ATMはお金を解放します
状況 2:
ATM -- 銀行
50ドルを差し引きたい ->
<- わかりました。よろしければ、50 ドルを差し引くように依頼してください。
50$を差し引く ->
<- 50$ 控除
その後、ATMはお金を解放します
以下の場合、メリットはありますか?最初のコミュニケーションのステップがまったく不要であることを証明できますか? それとも、2 番目の状況で、すぐに使用できる利点がありますか?
前もって感謝します
discovery - Raft でのリーダーの住所/場所
これは非常に単純な質問かもしれませんが、これに対する適切な答えをまだ見つけることができませんでした。多分誰かが私を助けることができます。
リーダーが選出されると、
- クライアントはすべてのリクエストをリーダーのみに送信します。これは正しいです?
- リーダーの場所 (すべての実用的な目的では IP アドレス) が動的であるとすると、クライアントはクラスター内のこの IP アドレスをどのように知るのでしょうか?
bioinformatics - vcf-consensus スクリプト エラー: fasta ファイルにシーケンス N が見つかりません
簡単な例でこのスクリプト ( vcf-consensus ) を使用しようとしていますが、エラーが 1 つあります: シーケンス "7" が fasta ファイルに見つかりません。
構文は次のとおりです。
私のFASTAファイルは次のとおりです。
私のVCFファイルは次のとおりです。
VCF ファイルを bgzip で圧縮し、tabix でインデックスを作成します。
そして、私は実行します:
次のエラーが表示されます: シーケンス "7" が fasta ファイルに見つかりません。
誰か知っていますか?
ありがとう。
multithreading - FIFOキューのコンセンサス数
マルチデキューアキューの正確なコンセンサス数は?
私はそれが少なくとも 2 であることを知っています:
queue.enq(1)
queue.enq(0)
スレッド A と B はそれぞれ呼び出しますqueue.deq()
。
1 を取得したスレッドは、独自の値を返します。
0 を取得したスレッドは、もう一方の値を返します。
しかし、それが正確に 2であることを証明するにはどうすればよいですか?
2 コンセンサス オブジェクトのみを使用してキューを実装する必要があると思いますが、うまくいきませんでした。
distributed-computing - paxos は、アクセプターによって送信された最大の提案番号と同期していない場合、値を更新する要求を「無視」しますか?
ここのタイトルは誤解を招く可能性があります。例を通して私の疑問を説明するために最善を尽くします。
ウィキやその他の情報源から paxos アルゴリズムについて読んでいます。
1) 値を更新するクライアントの要求 (X
以下の例) が処理される状況を想像してください。Paxos の 1 ラウンド後、値Vb
が選択されます。これは、Acceptor が Proposer に返信するときに、以前に受け入れられた Proposal 番号と対応する値が含まれているためです。以下の例では、3 つのアクセプターが、(8,Va),(9,Vb),(7,Vc)
現在 を持っているプロポーザーに送信します(10,X)
。受信(9,Vb)
した最大の提案番号であるため、値を取得(10,Vb)
し、すべてのアクセプターに値をブロードキャストして承認します。X
そのため、この Paxos のラウンド全体が処理された初期値は更新されませんでした。この場合、X への更新のクライアント トランザクションは失敗しましたか?
この後のアクセプターの最終的な状態は何ですか? それらはすべて(10,Vb)
、承認された最大の提案番号と値を持っているため、同期していますか?
2) より複雑なケースで、2 つの提案が行われますが、コンセンサスに到達しようとする時点が異なります。X
これは、リージョン A のクライアント C1 が一部のデータを変更していて、まだコンセンサスに達していない一方で、リージョン B のクライアント C2 が同じデータを変更している状況を想像してくださいX
。クライアントの要求の 1 つが拒否されましたか? C2 は C1 よりも遅く発生することに注意してください。ただし、コンセンサスにはまだ達していません。順序付けに従う場合、C1 リクエストを終了し、コンセンサスを受け入れてから、C2 リクエストを処理する必要があります。このブログの私の理解から、この場合、C1 リクエスト値が選択されます。
では、C2 リクエストは放棄されたのでしょうか。それは良い選択肢ではないかもしれません。
例 (このブログからの著作権):
この場合、v=8
が最終的に選択されますが、 request forV=5
はクライアントによって要求された最新の更新です。なぜそうなのですか?これは深刻な影響を与える可能性があります
助けてくれてありがとう、明けましておめでとう!
python - biopython でコンセンサス シーケンスを取得しようとすると、AttributeError が発生します。
試してみるとバグが発生したようです:
誰かが私を助けてくれることを願っています。
乾杯、
cassandra - Cassandra の軽量トランザクションと Paxos コンセンサス アルゴリズム
Cassandra の軽量トランザクションに実装されている Paxos アルゴリズムに関して、非常に具体的な質問があります。
2 つのノードが同じプロポーザルを同時に発行するとどうなりますか? どちらも ' [applied]: true ' になりますか?
たとえば、次の表を考えてみましょう。
そして、このクエリ:
このクエリを実行すると、次の応答が返されます。
再度実行すると、next_id != 1 であるため受け入れられません。次のようになります。
私の質問は、このクエリを 2 つのノードから並行して実行するとどうなるかということです。どちらも受かる可能性はありますか?
(私のユースケースは、このスタックオーバーフローの質問で説明されています)