このトピックでは、PolarDBが提供するPolarProxyに関するよくある質問 (FAQ) に対する回答を提供します。
読み書き分離
レコードを挿入した直後にレコードを取得できないのはなぜですか?
読み取り /書き込み分割アーキテクチャでは、データがプライマリノードと読み取り専用ノードの間で複製されているときに遅延が発生します。 PolarDBはセッションの一貫性をサポートしており、セッション内で更新をクエリできるようにします。 レプリケーションの完了後、挿入されたレコードを取得できます。 詳細については、一貫性レベルの「セッションの整合性」セクションをご参照ください。
PolarDBに書き込まれた直後にデータを読み取ることはできますか?
いいえ、データがPolarDBに書き込まれた直後にデータを読み取ることはできません。 PolarDBクラスターのプライマリノードと読み取り専用ノードの負荷が重くない場合でも、読み書き分離が有効になっているエンドポイントを使用してデータを読み取ると、数ミリ秒の遅延が発生します。 この遅延を解消するには、プライマリエンドポイントを使用してPolarDBクラスターに接続します。 このようにして、読み取りおよび書き込み要求がプライマリノードに送信されます。 プライマリエンドポイントの表示方法の詳細については、「エンドポイントとポートの表示」をご参照ください。
プライマリノードの負荷が高いのに、読み取り専用ノードに低い負荷が存在するのはなぜですか。
デフォルトでは、トランザクションのリクエストはプライマリノードにのみルーティングされます。 プライマリノードと読み取り専用ノード間で負荷を分散するには、次のソリューションを使用できます。
Sysbenchを使用してストレステストを実行する場合、Sysbenchのバージョンが0.5の場合はコードで
-- oltp-skip-trx=on
を、Sysbenchのバージョンが1.0の場合は-- skip-trx=on
を指定します。 この方法では、BEGINおよびCOMMITステートメントを実行する必要はありません。トランザクションの数が多いとプライマリノードに大きな負荷がかかる場合は、トランザクション分割機能を有効にしてプライマリノードの負荷を軽減できます。 詳細については、「トランザクション分割」をご参照ください。
特定のノードが他のノードよりも多くのリクエストを受け取るのはなぜですか?
要求は、負荷に基づいて各ノードに分配される。 より軽い負荷が存在するノードは、より多くの要求を受け取る。
新しい読み取り専用ノードは自動的に読み取り要求を受信しますか?
これは、読み取り専用ノードを追加した後に読み書き分離をサポートするセッションが作成されるかどうかによって異なります。 はいの場合、リクエストは自動的に読み取り専用ノードに転送されます。 いいえの場合、読み取り要求は読み取り専用ノードに転送されません。 この場合、接続を閉じてから、クラスターに再接続できます。 このようにして、接続を介して送信された読み取り要求は読み取り専用ノードに転送されます。 たとえば、アプリケーションを再起動して新しい接続を確立できます。
クラスターエンドポイント
クラスターに作成できるシングルノードクラスターエンドポイントの最大数はいくつですか。
クラスターに最大3つのカスタムクラスターエンドポイントを作成できます。 カスタムクラスタエンドポイントは、単一ノードクラスタエンドポイントにすることができます。 シングルノードのクラスターエンドポイントを作成する方法の詳細については、「カスタムクラスターエンドポイントの作成と変更」をご参照ください。
警告読み取り専用ノードのシングルノードクラスターエンドポイントを作成し、読み取り専用ノードが期待どおりに実行されない場合、シングルノードクラスターエンドポイントは最大1時間使用できない可能性があります。 運用環境では、シングルノードのクラスターエンドポイントを作成しないことを推奨します。
読み取り専用ノード用に単一ノードのクラスターエンドポイントが作成されている場合、フェールオーバー後に読み取り専用ノードを新しいプライマリノードとして使用できますか?
シングルノードクラスターエンドポイントが作成される読み取り専用ノードは、フェールオーバー後に新しいプライマリノードとして自動的に使用することはできません。 ただし、読み取り専用ノードを新しいプライマリノードとして手動で昇格させることはできます。 詳細については、「自動フェールオーバーと手動フェールオーバー」をご参照ください。
クラスターに作成できるクラスターエンドポイントの最大数はいくつですか。
クラスターには、最大4つのクラスターエンドポイントを含めることができます。 1つのクラスターエンドポイントはデフォルトのクラスターエンドポイントで、他のエンドポイントはカスタムクラスターエンドポイントです。
クラスターエンドポイントを変更できますか。
はい。デフォルトのクラスターエンドポイントとカスタムクラスターエンドポイントを変更できます。 詳細については、「カスタムクラスターエンドポイントの変更」をご参照ください。
クラスターエンドポイントを削除できますか。
はい、削除できるのはカスタムクラスターエンドポイントのみです。 デフォルトのクラスターエンドポイントは削除できません。 詳細については、「カスタムクラスターエンドポイントの削除」をご参照ください。