Сколько времени занимает создание представления CouchDB? - PullRequest
2 голосов
/ 29 января 2010

Я видел в нескольких местах упоминание о том, что для создания представления при первом обращении к нему в couchDB требуется некоторое время, но я не нашел какой-либо оценки того, сколько времени это займет.Точнее говоря, я пытаюсь протестировать созданное мной представление, и загрузка занимает так много времени, что я не могу сказать, испортил ли я представление или просто слишком нетерпелив, чтобы позволить генерации представления завершиться.Функция карты для представления довольно проста:

function(doc){
  emit(doc.name, null);
}

Я знаю, что у всех документов есть поле имени, потому что я проверил некоторую проверку перед их импортом, и функция сокращения отсутствует.В базе данных около 11 000 документов, и я хочу отсортировать их по имени.

Я перешел на страницу просмотра в футоне прошлой ночью и позволил ей работать около 30 минут, не видя никаких результатов.Кажется довольно странным, что это займет даже так много времени, поскольку результат обнаруживается относительно быстро, когда вышеуказанная функция используется для временного просмотра.Должно ли это занять много времени, чтобы создать представление в CouchDB?Если нет, то что может привести к такой ситуации?

1 Ответ

2 голосов
/ 30 января 2010

Оказалось, что с функцией map проблем не было, но виновником на самом деле была функция Reduce. Я создал представление с помощью couchapp, и функция уменьшения по умолчанию была следующей:

function(key, values, rereduce){

}

Обратите внимание, что на самом деле ничего не возвращается. Без возвращаемого значения CouchDB, по-видимому, снова и снова запускал цикл отображения / уменьшения и фактически никогда не останавливался. Удаление функции уменьшения из вида решило проблему.

И чтобы ответить на исходный вопрос, создание представления не заняло много времени. На моем компьютере это заняло ~ 20 секунд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...