リトライ・ポリシー

リトライ・ポリシーにより、DataStaxドライバーは特定のタイプのサーバー・エラーが発生したときに、要求を自動的に再試行できます。

リトライ・ポリシーにより、DataStaxドライバーは特定のタイプのサーバー・エラーが発生したときに、要求を自動的に再試行できます。 これらのシナリオでは、ロード・バランス・ポリシーによって要求のコーディネーターになるノードが指定されます。コーディネーターは、要求をレプリカにルーティングし、応答をドライバーに返します。

各DataStaxドライバーは、デフォルトのリトライ・ポリシーを実装しています。

1. ドライバー用のリトライ・ポリシー
C/C++ C# Java Node.js PHP Python Ruby

ドライバーに含まれているリトライ・ポリシーに加えて、一部のドライバーでは、リトライ・ポリシー拡張を使用して、読み取りタイムアウト、書き込みタイムアウト、利用できない例外、要求エラーに基づいたカスタム動作を実装できます。

デフォルトのリトライ・ポリシー

デフォルトのリトライ・ポリシーは、元の要求の整合性レベルを維持しながら安全に実行できる場合、要求を再試行します。ほとんどのデプロイで、このポリシーを使用してください。

読み取りタイムアウト

応答するレプリカの数が整合性レベルごとに必要な応答の数以上である場合、デフォルトのリトライ・ポリシーは要求を再試行します。それ以外の場合は、すべてエラーを返します。

1. 読み取りタイムアウト

読み取りタイムアウト

書き込みタイムアウト

要求が、ログに記録されるバッチ要求であり、バッチ・ログへの書き込みに失敗した場合、デフォルトのリトライ・ポリシーは要求を再試行します。それ以外の場合は、すべてエラーを返します。

2. 書き込みタイムアウト

書き込みタイムアウト

Unavailableエラー

要求でUnavailableエラーが発生した場合、デフォルトのリトライ・ポリシーは、ロード・バランス・ポリシー内の次のホストを使用して要求を再試行します。

3. Unavailableエラー

Unavailable

無視リトライ・ポリシー

無視リトライ・ポリシーは、要求が失敗しても再試行せずに、無視します。無視リトライ・ポリシーは、すべての場合にエラーを返します。このポリシーは、要求の再試行を処理する独自のビジネス・ロジックを実装する必要があるアプリケーションに使用します。

4. 無視リトライ

無視リトライ

ロギング・リトライ・ポリシー

ロギング・リトライ・ポリシーは、別のリトライ・ポリシー実装の親ポリシーになることを目的としており、その子ポリシーによって行われたリトライ決定のみをログに記録します。このポリシーは通常、ドライバーのリトライ動作をデバッグするために使用されます。

5. ロギング・リトライ・ポリシー

ロギング・リトライ