2012-06-26 10 views
9

Gibt es eine Formel/Schätzung/Gefühl, die uns zeigt, wie die optimale Anzahl von Indizes in einer RavenDB-Datenbank ist nach Anzahl der Dokumentarten, Anzahl der Felder pro Dokument und Anzahl der Beziehungen zwischen ihnen?Zu viele Indizes in RavenDB

Zusätzliche Hinweise:

Wie ich (1.) verstehen wir abfragen Indizes in RavenDB, nicht Dokumente und (2.) Indizes sind wie materialisierte Ansichten, so können sie viel kosten. Ich muss wissen, wie viele Indizes die Leistung von RavenDB bei der Aktualisierung beeinträchtigen und die Latenz zu groß machen, um sie zu ignorieren.

Da Raven/MaxNumberOfParallelIndexTasks auf die Anzahl der Prozessoren in der aktuellen Maschine eingestellt ist, bedeutet dies, dass der Indizierungsprozess für andere Indizes blockiert wird, bis die aktuellen Indizierungsaufgaben enden? Oder sind es Teilupdates, die immer wieder laufen würden?

+0

das ist eine interessante Frage. nicht sicher, wir werden eine konkrete Antwort sehen, wenn der Schöpfer kommt, aber eine +1 –

+1

@ marc_s wert Vielen Dank für die Bearbeitung. –

+0

@nathan gonzalez Ich freue mich darauf! –

Antwort

3

Kaveh, Im Allgemeinen bevorzugen wir eine kleinere Anzahl von Indizes, weil Indizes mit nicht trivialen Kosten verbunden sind. Das heißt, sie kosten nicht much, vor allem, da sie im Hintergrund gebaut werden.

Wir haben viele Kunden, die mit mehreren Dutzend Indizes laufen, und wir haben einige, die mit ein paar hundert laufen.

Die MaxNumberOfParallelIndexTasks steuern, wie viele Indizes wir parallel aktualisieren, aber wie und warum es funktioniert, ist ein Bit Komplex zu erklären. Aus Ihrer Sicht, es gilt nicht wirklich, denn zusammen mit MaxNumberOfParallelIndexTasks, berücksichtigen wir auch Dinge wie aktuelle Systembelastung, io Kosten, etc. In einer großen Anzahl von Indizes würden einige Indizes warten, während andere bauen Ja, aber das unterliegt einer Reihe von Grenzen, und Sie werden es wahrscheinlich nicht als ein Problem in realen Situationen sehen können.