Я выполняю анализ продолжительности времени, чтобы запустить очистку couchdb с помощью java-программы. Соединения и вызовы couchdb обрабатываются с помощью ektorp. Для небольшого количества документов происходит очистка, и я получаю успешный ответ.couchdb gen_server время ожидания вызова во время очистки
Но когда я очистить ~ 10000 или больше, я получаю следующее сообщение об ошибке:
org.ektorp.DbAccessException: 500:Internal Server Error
URI: /dbname/_purge
Response Body:
{
"error" : "timeout",
"reason" : "{gen_server,call,
....
При проверке состояния дБ с помощью завивки команды, фактическая продувки состоялась. Но этот тайм-аут не позволяет мне контролировать фактическое время метода очистки в моей программе java, поскольку это создает исключение.
В некоторых исследованиях я считаю, что это связано с значением тайм-аута по умолчанию для процесса genl-сервера erlang. В любом случае, я могу это исправить?
Я попытался изменить значения тайм-аута StdHttpClient безрезультатно.
HttpClient authenticatedHttpClient = new StdHttpClient.Builder()
.url(url)
.username(Conf.COUCH_USERNAME)
.password(Conf.COUCH_PASSWORD)
.connectionTimeout(600*1000)
.socketTimeout(600*1000)
.build();
спасибо за ответ, его в основном случае удаленных данных, собранных в течение определенного периода времени. следовательно, глядя на одноразовую опцию очистки, чтобы освободить место на диске. Связанный с этим вопрос: есть ли вероятность повреждения данных путем очистки большого количества удаленных документов? – fsociety
для данных временных рядов, мы рекомендуем базу данных за каждый интервал, поэтому вы можете просто удалить предыдущие базы данных интервала. Повреждение данных: нет, все в CouchDB безопасно append_only и fsync() 'd. –