2017-10-26 5 views
3

Wir wollen Cluster von 4 Knoten einrichten, um Daten zu hosten. Und der Cluster hostet nur einen Index, um in allen 4 Knoten einen ähnlichen Datentyp zu haben.Wie konfiguriere ich Shards in der Vespa?

Unser Ziel ist es, Daten sharded auf den Knoten zu haben. Sagen wir zwei Splitter und zwei Repliken. (insgesamt 4 Knoten zum Hosten dieser 4 Datenpartition)

Dokumentmodus ist "Index" und global ist "wahr".

<redundancy>2</redundancy> 

    <nodes> 
     <node hostalias="node1" distribution-key="0"/> 
     <node hostalias="node2" distribution-key="1"/> 
     <node hostalias="node3" distribution-key="2"/> 
     <node hostalias="node4" distribution-key="3"/> 
    </nodes>   

    <engine> 
     <proton> 
     <searchable-copies>2</searchable-copies> 
     <flush-on-shutdown>true</flush-on-shutdown> 
     </proton> 
    </engine> 

Oberhalb config in services.xml ist nicht erlaubt. es fragt Redundanz mindestens gleiche Anzahl wie Knoten zu sein, und wir brauchen,

<redundancy>4</redundancy> 

und

<searchable-copies>4</searchable-copies> 

konfigurieren für eine gültige Konfiguration zu übernehmen.

Und das ist die Konfiguration aller 4 Knoten, um alle Daten zu haben und jeder würde Kopie der Daten enthalten. Nach http://docs.vespa.ai/documentation/content/data-placement.html - wir brauchen global = wahr. Und bemerkt:

Hinweis: Die globale Dokumentfeature befindet sich in der Entwicklung. Es ist derzeit nur für Setups verfügbar, wo alle Dokumente bereits inhärent auf allen Knoten sind, d. H. N Gruppen, die jeweils einen einzelnen Knoten enthalten.

Wie verteilt man Daten in Shards? Können wir machen, dass node1 und node2 verteilte Daten haben und node3 und node4 ihre Kopie mit Redundanz 2 haben können?

Antwort

3

Danke für die Frage - ich sehe die Dokumentation von global = True ist ein bisschen verwirrend.

In Ihrem Fall möchten Sie shard, d. H. Verteilen Sie 2 Replikate jedes Dokuments über 4 Knoten (korrigieren Sie mich, wenn ich falsch liege).

global normal wie in http://docs.vespa.ai/documentation/search-definitions.html#document-references für Stammdokumente verwendet - in Ihrem Fall, dass Sie nur Dokumenttyp haben (ich nehme an), also keine Eltern, so verwenden Sie keine globale

Die globale Funktion verteilen 4 Replikate über 4 Knoten (falls dies gewünscht ist, bitte Redundanz = 4 setzen). aber keine Notwendigkeit, auch hier global zu verwenden.

+0

wenn ich global = true zu global = false im Dokument ändere - müssen wir den Index neu füttern? oder einfach erneut bereitstellen ist genug? – enator

+1

Ich glaube, eine erneute Bereitstellung wird ausreichen, da nur die Eimer mit den Dokumenten neu verteilt werden. plmk, wenn Sie neu zuführen müssen. Vielen Dank! –

Verwandte Themen