2012-06-26 2 views
9

Есть ли формула/оценка/чувство, которая показывает нам, какое оптимальное количество индексов в базе данных RavenDB соответствует количеству видов документов, количеству полей на документ и количеству отношений между ними?Слишком много индексов в RavenDB

Дополнительные примечания:

Как я понимаю (1-е) мы запрашиваем индексы в RavenDB, а не документы и (2-е) индексы, как материализованные представления, так что они могут стоить много. Мне нужно знать, сколько индексов повредило бы производительность RavenDB при их обновлении и задержка слишком велика, чтобы игнорировать?

As Raven/MaxNumberOfParallelIndexTasks устанавливается на количество процессоров на текущей машине, так значит ли это, что процесс индексирования для других индексов блокируется до тех пор, пока не прекратятся текущие задачи индексации? Или это частичные обновления, которые будут запускаться снова и снова?

+0

Это интересный вопрос. не уверен, что мы увидим конкретный ответ, если только создатель не появится, но стоит +1 –

+1

@marc_s Спасибо за редактирование. –

+0

@nathan gonzalez Я с нетерпением жду этого! –

ответ

3

Kaveh, В целом, мы предпочитаем меньшее количество индексов, потому что индексы имеют нетривиальную стоимость, связанную с ними. Тем не менее, они не стоят much, тем более что они строятся в фоновом режиме.

У нас есть много клиентов, которые работают с несколькими десятками индексов, и у нас есть несколько, которые работают с несколькими сотнями.

MaxNumberOfParallelIndexTasks контролирует, сколько индексов мы обновляем параллельно, но как и почему это работает: бит комплекс для объяснения. С вашей точки зрения, это действительно не так, потому что наряду с MaxNumberOfParallelIndexTasks мы также учитываем такие вещи, как текущая загрузка системы, затраты на io и т. Д. В большом количестве индексов некоторые индексы будут ждать, пока другие строят , да, но это зависит от набора ограничений, и вы вряд ли сможете увидеть это как проблему в реальных ситуациях.

Смежные вопросы