問題タブ [master-slave]
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.
mysql - MYSQL レプリケーションを使用してスキーマの変更とテーブルの最適化を高速化する
多くの人がマスターとスレーブの配置を使用すると、レプリケーションを使用して新しい一時的なマスターをセットアップし、再配置を停止してから役割を交換してから、スキーマを変更する際の時間を短縮できると聞きます。スタック オーバーフローで見つかった例 (以下) を見つけました。
- スレーブの設定
- レプリケーションを停止します。
- スレーブで ALTER を作成する
- スレーブがマスターに追いつくようにする
- マスターとスレーブを交換することで、スレーブは構造が変更され、ダウンタイムが最小化された本番サーバーになります
これはすべて非常にうまくいっていますが、ステップ4がわかりません。
どなたか手順をわかりやすく説明していただけないでしょうか。
mysql - MySQL レプリケーションとマスター サーバーのクラッシュ リカバリ
シナリオ:
さまざまな目的で使用されている 5 つのスレーブ [部分] を備えた mySQL マスター DB [30 GB] があります。先日、innodb がクラッシュしました。書き込み操作のたびにサーバーが再びクラッシュするため、自動クラッシュ回復は機能しませんでした。そのため、innodb_force_recovery 4 でサーバーを起動し、DB 全体のダンプを取得してから、新しいデータベース サーバーに復元しました。データの復元が非常に遅かったため、このプロセス全体に 5 時間以上かかりました。
質問:
今、回復時間が最も速い解決策を探しています。マスターとのレプリケーションで別のサーバーを使用できますが、マスターがクラッシュした場合にマスターの代わりにそれを置き換える方法がわかりません。
お時間をいただき、ありがとうございました。
database - master_slave モードで pgpool を構成すると、バックエンドに対する認証に失敗する
Rails アプリなどもある 2 つ以上の Web サーバーで pgpool を実行しようとしています。また、クエリをレプリカに分散し、Web サーバー接続をプールするのもよいでしょうが、重要なことは、master_slave とフェイルオーバーを機能させることです。
Ubuntu 10.04 LTS の apt パッケージから pgpool バージョン 3.4.1(lainihi) をインストールしました。db01 はマスターであり、slony を介して db02 に複製されます。私の pgpool.conf は次のようになります。
現在「生モード」で動作していますが、master_slave で多くのことが得られるのだろうか? とにかく、 master_slave=true のコメントを外すと、接続時に次のようになります。
pgpool ログに次のように表示されます
pgpool はバックエンドで認証できないようですが、psql を使用して各クライアントから各バックエンド サーバーに接続できます。また、pgpool は「raw モード」で動作します。
pgpool を構成するためのヘルプをいただければ幸いです。素晴らしいソリューションのように見えますが、セットアップは予想以上に困難でした。
ティア、
デニス
algorithm - リーダー選出アルゴリズム
私はクラスターコンピューティングのさまざまなアーキテクチャを調査しています。人気のあるもののいくつかは次のとおりです。
- マスタースレーブ。
- RPC
- ..。
マスタースレーブでは、通常の方法は、1台のマシンをマスターとして設定し、多数のマシンをマスターによって制御されるスレーブとして設定することです。ここのある特定のアルゴは私に興味を持った。これはリーダー選出アルゴと呼ばれ、どのマシンがマスターになるかを選択する際に一定のランダム性があります。
私の質問は-なぜ誰もがこの方法でマスターマシンを選びたいのでしょうか?このアプローチは、マシンをマスターとして手動で選択する場合と比較して、どのような利点がありますか?
parallel-processing - MPIでのノンブロッキング送信とブロッキング受信の使用法は?
マスターワーカープログラムを実装しようとしています。
私の主人は労働者がやろうとしている仕事を持っています。労働者が仕事を完了するたびに、彼はマスターに新しい仕事を要求し、マスターはそれを彼に送ります。ワーカーは最小限のパスを計算しています。作業者は、取得したグローバル最小値よりも優れた最小値を見つけると、マスターを含むすべての人に送信します。
ワーカーとマスターがを使用してデータを送信することを計画していますMPI_ISEND
。また、受信はブロックする必要があると思います。マスターは、誰も仕事を求めていないか、最良の結果を更新していない場合は何の関係もないので、受信を待つことをブロックする必要があります。また、各労働者は、仕事を終えた後、新しいものを入手するためにレシーブを待つ必要があります。
それでも、非ブロッキング非同期送信を使用し、同期受信をブロッキングすることの影響についてはよくわかりません。
別の方法としてはを使用していると思いますがMPI_IPROBE
、これで最適化できるかどうかはわかりません。
私がしていることが正しいかどうかを理解するのを手伝ってください。これは正しい解決策ですか?
c - MPI で master-worker を使用すると、どのサイズのチャンクが最高のパフォーマンスを発揮しますか?
MPI を使用して、メトリック TSP 問題を解決しようとしているプログラムを並列処理しています。P 個のプロセッサーと N 個の都市を渡す必要があります。
各スレッドはマスターに作業を依頼し、チャンクを受け取ります。チャンクは、チェックする必要がある順列の範囲であり、その中で最小のものを計算します。事前に悪いルートを剪定することでこれを最適化しています。
合計(N-1)あります!計算するルート。各ワーカーは、チェックする必要がある最初のルートと最後のルートを表す番号を持つチャンクを取得します。さらに、マスターは既知の最新の最良の結果を彼に送信するため、残りの下限を使用して、事前に悪いルートを簡単に作成できます。
ワーカーが global よりも優れた結果を見つけるたびに、ワーカーはそれを他のすべてのワーカーとマスターに非同期で送信します。
より良い解決策を探しているわけではありません。どのチャンクサイズが最適かを判断しようとしているだけです。
これまでに見つけた最適なチャンク サイズは (n!)/(n/2)! です。、しかし、それほど良い結果は得られません。
ここでどのチャンクサイズが最適かを理解するのを手伝ってください。計算量と通信量のバランスをとろうとしています ありがとう
mysql - 2つの大きなテーブルが同一であるかどうかを確認するにはどうすればよいですか?
2台のサーバーが1台をマスターとして、もう1台をスレーブとして実行しています。天気をチェックしたいのですが、両方のテーブルのデータが同じです。これを確認して確認するにはどうすればよいですか?テーブルには2300万行以上あります。
また、最初のステップとして私は実行しようとしました
CHECKSUM TABLE tbl;
しかし、60秒後にこのエラーが発生します。
ERROR 2013 (HY000): Lost connection to MySQL server during query
ご意見をお聞かせください。
master-slave - マスタースレーブパターン : ジョブ分散
マスター/スレーブ パターンでスレーブ間で作業を分散するための標準アルゴリズムはありますか? 今のところ、キューを介してスレーブ間でジョブを分散するマスターがあります。しかし、ジョブの優先度を図に入れなければならない場合、どのようなデータ構造/アルゴリズムを使用できますか?
いくつかの提案を探しています。
前もって感謝します、
ビベク・ダワディ
mysql - mysql プロキシ r/w レプリケーションと一時テーブル
MySQL5.1 でマスター/スレーブ レプリケーションを実行しており、mysql プロキシ 0.8.x で r/w 分割を行っています。
一時テーブルを除いて正常に動作します。MySQL は、一時テーブルが存在しないというエラーをスローします。
これは、マスター サーバーのクエリ ログです。
これは、スレーブのクエリ ログです。
これは mysql エラー メッセージです。
マスターに直接クエリを実行すると (php db 接続を mysql-proxy ではなくマスターに変更する)、問題なく動作します。
私はこのmysqlプロキシ設定を使用しています:
それを修正する方法について誰か考えがありますか?助けてくれてありがとう!
// 翌日編集
これが機能しない理由を知っていると思います:
MySQL Proxy は create tmp および insert select ステートメントをマスターに送信し、マスターはコマンドを正しくスレーブにレプリケートし、次のステップで select がスレーブに送信されます。残念ながら、MySQL では、tmp テーブルはそれを発行した接続に対してのみ有効です。したがって、レプリケーションによって作成された tmp テーブルは、スレーブ上の mysql プロキシによって発行された 2 番目の接続に対しては有効ではありません。
私は現在、アプリケーションを変更し、マスターに直接 tmp テーブルを使用して接続を発行することで、これを解決しようとしています。
より良い解決策があると思われる場合はお知らせください。