問題タブ [citus]
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.
database - Citus 分散テーブルの非分散列での結合の使用
いくつかのワーカー ノードを含む Citus クラスターを正常に作成しました。分散テーブルを使用してクエリを実行すると問題が発生します。
これは、実行したい指示クエリの非常に単純化されたバージョンです。
commuting_data は約 2,000 万行で構成され、各行には出発地と目的地のコードが含まれています。geography_data は約 10 万行で構成され、commuting_data テーブルに含まれる各地理コードに関する情報が含まれています。
geography_data の sequence_id 列は、起点と終点の列と一致し、これらの空間ポイントに関するラベルやその他の情報を提供します。commuting_data を起点と終点の両方の列で geography_data テーブルに結合したいと考えています。これは単一ノードの PostgreSQL データベースで簡単に実行できますが、クエリを完了するには時間がかかります。
私の問題は、Citus がテーブルごとに 1 つの分布列しかサポートしていないことです。したがって、テーブル commuting_data のディストリビューション列を「origin」または「destination」に設定すると、「complex joins only supported when all distributed tables are co-location and join on their distribution columns」というエラーが表示されます。
この問題を克服し、Citus が提供できるデータベース シャーディングのすべての機能を利用して、上記のクエリから得られた結果を生成するにはどうすればよいでしょうか?
Ubuntu 20.04 で PostgreSQL 12.4 と Citus 9.4 を使用しています。
postgresql - パスワード付きのpg_autofailoverセットアップ
1 つのプライマリ ノードと 1 つのセカンダリ ノードで pg_auto フェイルオーバーを使用して postgres を作成しました。このリンクをたどっています。https://www.citusdata.com/blog/2019/05/30/introducing-pg-auto-failover/ --auth タグなしで、モニターと postgres ノードでフェイルオーバーとレプリケーションをテストしました。認証なしで正常に動作します。ここにコマンドがあります
2 番目のノード
--auth md5 として監視ノードに認証を追加し、このリンクに従って pg_auto_failover データベースの autoctl_node のパスワードを変更しましたhttps://pg-auto-failover.readthedocs.io/en/latest/security.html監視ノードも正常に動作します. しかし、プライマリ node_a と node_b に --auth md5 を追加すると、ノードは待機と追いつきでスタックします。
プライマリ node_a のログ
セカンダリ node_b のログ