2017-01-18 12 views
0

私は、javaプログラムを使用してcouchdbパージを実行するための分析を実行しています。 couchdb接続と呼び出しは、ektorpを使用して処理されます。少数の文書ではパージが行われ、成功応答が返されます。couchdb gen_serverパージ中のコールタイムアウト

しかし、私は〜10000以上をパージするとき、私は次のエラーを取得:curlコマンドを使用してDBの状態を確認するには

org.ektorp.DbAccessException: 500:Internal Server Error 
    URI: /dbname/_purge 
    Response Body: 
    { 
     "error" : "timeout", 
     "reason" : "{gen_server,call, 
.... 

を、実際のパージが行われました。しかし、このタイムアウトでは、例外がスローされるので、私のJavaプログラムでパージメソッドの実際の時刻を監視することはできません。

これは、erlang gen_serverプロセスのデフォルトのタイムアウト値によるものだと私は思っています。とにかくこれを修正するために私にはありますか?

StdHttpClientのタイムアウト値を無駄に変更しようとしました。

HttpClient authenticatedHttpClient = new StdHttpClient.Builder() 
        .url(url) 
        .username(Conf.COUCH_USERNAME) 
        .password(Conf.COUCH_PASSWORD) 
        .connectionTimeout(600*1000) 
        .socketTimeout(600*1000) 
        .build(); 

答えて

1

ここではCouchDB Devです。多数の文書でパージを使用することは想定されていません。これは、クレジットカード番号や社会保障番号など、DBから誤って追加されたデータを削除するためです。これは一般的な操作ではありません。

その結果、あなたはそのgen_serverタイムアウト:)

+0

を上げることができないその基本的に、応答時間の期間にわたって収集削除されたデータの場合をありがとうございました。ディスクスペースを解放するための一度だけパージオプションを検討しています。 関連する質問:多数の削除されたドキュメントをパージしてデータが破損する可能性はありますか? – fsociety

+1

時系列データの場合は、$間隔ごとのデータベースをお勧めします。したがって、以前の間隔のデータベースを単純に削除することができます。 データ破損:いいえ、CouchDBのすべてがappend_onlyとfsync()で安全です。 –

関連する問題