Время ожидания вызова couchdb gen_server во время очистки
Я провожу анализ продолжительности времени для запуска очистки couchdb с помощью Java-программы. Соединения и вызовы couchdb обрабатываются с помощью ektorp. Для небольшого количества документов происходит очистка, и я получаю успешный ответ.
Но когда я очищаю ~ 10000 или больше, я получаю следующую ошибку:
org.ektorp.DbAccessException: 500:Internal Server Error
URI: /dbname/_purge
Response Body:
{
"error" : "timeout",
"reason" : "{gen_server,call,
....
При проверке состояния БД с помощью команды curl была произведена фактическая очистка. Но этот тайм-аут не позволяет мне контролировать фактическое время метода очистки в моей 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 здесь. Вы не должны использовать чистку с большим количеством документов. Это необходимо для удаления случайно добавленных данных из БД, таких как номера кредитных карт или номеров социального страхования. Это не предназначено для общих операций.
Следовательно, вы не можете поднять это gen_server
тайм-аут:)