2017-01-13 6 views
1

ボリュームとパフォーマンスのテストの一部として、複数のgremlinリクエスト(グラフトラバーサル)を並行して実行しようとしていますJavaスレッドを使用します。それはスレッドの細かい数を細かく処理します。 java.lang.RuntimeException:javaの私は、スレッドの数を(500と言う)を大きくするとTITAN-並列クエリ - org.apache.tinkerpop.gremlin.driver.Client.submitで現在のタイムアウト例外が発生しました

、私は次のようなエラーにスレッド "スレッド-34" で

例外java.lang.RuntimeExceptionを取得しています.util.concurrent.TimeoutException: 使用可能なホストを待機中にタイムアウトしました。 at org.apache.tinkerpop.gremlin.driver.Client.submit(Client.java:146) at com.tests.java.titan.Vertices.exists(Vertices.java:37) at com.tests.java。 (ParallelGraphTraversal.java:112) で発生しました:java.lang.RuntimeException: java.util.concurrent.TimeoutException : 利用可能なホストを待ってタイムアウトしました。 at org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:194) at org.apache.tinkerpop.gremlin.driver.Client.submitAsync(Client.java:174) at org.apache。 tinkerpop.gremlin.driver.Client.submit(Client.java:144) ... 3より

Iファイルグレムリン(8から16まで1から2とgremlinPoolにthreadPoolWorkerの値を増加させる試み-server.yaml)。しかし、私は何の違いに気付かなかった。

誰かがこの問題に直面しましたか?最大同時接続数に制限があるかどうか教えてください。

当社の環境:CDH 5.7.1、タイタン1.1.0-SNAPSHOTは、Solrの4.10.3、HBaseの 1.2.0、チタン-TP3-ドライバはグレムリンサーバへのリモート接続を作成し、

を照会するためにします

答えて

3

サーバー上のgremlinPool設定はRuntime.availableProcessors()に制限される傾向がありますので、通常はそれ以上の数値にするのは意味がありません。サーバーがサポートする要求の数は、実行するトラバーサルの種類によって多少決定されます。サーバのスクリプト処理能力を遅くするために、多くのgremlinPoolスレッドを結びつける可能性のある、より長い実行要求を送る状況を想像することができます。 Gremlin Serverは依然として要求を受け入れ、到着時に処理するためにキューに格納しますが、処理に時間がかかります。

このような状況では、このエラーは発生しませんが、ドライバのデフォルト設定は、実行しようとしているものには不十分な場合があります。ドライバには、サーバーへのメッセージの流れを制御するload of settingsがあります。特定のホストのドライバの状態がこれらの設定の範囲外にある場合、そのホストを無視して別のホストを探します。たとえば、connectionPool.maxInProcessPerConnectionが超過し、最大接続数が追加されるため追加接続を追加できない場合、そのホストはメッセージを送信する次のホストを選択するドライバの処理中に無視されます。このようにして、特定のホストにクライアントの要求が過負荷になることはありません。

状況によっては、構成に他のホストが存在しないと仮定して、要求を送信する場所が他にないため、ドライバは接続が解放されるのを待つように試みます。この例を検討すると、プロセス要求の数がconnectionPool.maxInProcessPerConnection以下になるのを待ちます。運転手はそれが起こるのをどれくらいの間待ちますか?それはconnectionPool.maxWaitForConnectionまで待つことになります。その時間を超過すると、表示されているエラーメッセージが表示されます。

+0

説明と、[Gremlin Driver Configuration](http://tinkerpop.apache.org/docs/current/reference/#_configuration)へのポインタがありがとうございました。私はdriver-settings.yamlファイルでmaxInProcessPerConnectionを500として設定し、問題を修正しました – smang

関連する問題