0

Mac のローカル CouchDB データベースで ~13,000 のドキュメントを日付順に並べ替えようとしていますが、毎回ドキュメント 5407 でハングアップします。Futon のタイムアウト許容値を上げてみましたが、効果がありませんでした。これは私が得ているエラーメッセージです:

db.view('index15/by_date_time', startkey=start, endkey=end) の行の場合: ファイル "/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/client.py "、984行目、反復中 ファイル "/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/client.py"、行 1003、行 ファイル "/Library/Python/2.6/site-packages/CouchDB- 0.8-py2.6.egg/couchdb/client.py"、990 行目、_fetch ファイル内 "/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/client.py"、行 880、_exec ファイル「/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/http.py」、行 393、get_json ファイル「/Library/Python/2.6/site」 -packages/CouchDB-0.8-py2.6.egg/couchdb/http.py"、374 行目、get File "/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/ http.py"、419 行目、_request ファイル内"/Library/Python/2.6/site-packages/CouchDB-0.8-py2.6.egg/couchdb/http.py"、239 行目、リクエスト ファイル内"/Library/ Python/2.6/site-packages/CouchDB-0.8-py2.6.Egg/couchdb/http.py"、205 行目、_try_request_with_retries socket.error: 54

ちなみに、これはスクリプトにタイプミスがあるときに表示されるエラー メッセージと同じです。

次のように、couchpy を使用してビューを作成しています。

def dateTimeToDocMapper(ドキュメント):

from dateutil.parser import parse
from datetime import datetime as dt
if doc.get('Date'):
    # [year, month, day, hour, min, sec]
    _date = list(dt.timetuple(parse(doc['Date']))[:-3])
    yield (_date, doc)

これが実行されている間、私は Python シェルを開くことができ、server.tasks() を使用して、インデックス作成が実際に行われていることを確認できます。

>>> サーバー.タスク()

[{u'status': u'Processed 75 of 13567 changes (0%)', u'pid': u'<0.451.0>', u'task': u'gmail2 _design/index11', u'type ': u'View Group Indexer'}]

しかし、プロセス 5407/13567 でスタックするたびに変化します (ここまで到達するのに約 8 分かかります)。文書 5407 と思われるものを調査しましたが、異常ではないようです。

ちなみに、プロセスが停止した後にプロセスを再起動しようとすると、server.tasks() からこの応答が返されます。

>>> サーバー.タスク()

[{u'status': u'Processed 0 of 8160 changes (0%)', u'pid': u'<0.1224.0>', u'task': u'gmail2 _design/index11', u'type ': u'View Group Indexer'}]

つまり、couchDB は 13567 の変更のうち最初の 5407 を処理済みで、現在は 8160 しか残っていないことを認識しているようです。

しかし、その後すぐに終了し、同じ socket.error: 54 が表示されます

私は過去数時間インターネットを検索していましたが、役に立ちませんでした。Futon など、他の場所からインデックス作成を開始しようとしました。前述したように、私のエラーの 1 つは OS タイムアウト エラーであり、Futon の構成で time_out しきい値を増やすと、それが改善されたようです。

誰かがこの問題に光を当てることができれば、私は非常に感謝しています. 既にインデックスが作成された 5407 ドキュメントのプロセスを再起動する方法があるかどうか、または最初からプロセスの 3 分の 1 を終了しないようにする方法があるかどうかを考えています。

本当にありがとう。

4

1 に答える 1

0

私が収集した情報によると、CouchDB は、すべてのドキュメントをそのドキュメントで Python コードを実行する、couchpy ビュー サーバーに送信することによってビュー コンテンツを構築します。そのコードが何らかの理由で失敗した場合、CouchDB は問題が発生したことを通知され、ビュー コンテンツの更新が停止します。

したがって、ドキュメント 5408 には、Python コードの誤動作を引き起こす何か問題があります。さらにサポートが必要な場合は、そのドキュメントをここに投稿することをお勧めします。または、couchpy ビュー サーバーのログを調べてください。ログには、コードがどのように失敗したかに関する情報が含まれている場合があります。

于 2011-08-06T08:45:14.467 に答える