Solr 5: Ograniczenie wykorzystania sieci przez replikację

W sytuacji, kiedy nasz indeks jest duży (lub jest ich kilka) w chwili, kiedy konieczna jest pełna replikacja Solr potrafi wykorzystać całą dostępną przepustowość łącza (o ile dyski dadzą radę). W pewnych sytuacjach jest to pożądane, w innych nie. Podczas gdy inne kolekcje serwują zapytania, nie chcielibyśmy, aby jedna z nich wykorzystała całą przepustowość sieci. Na szczęście wraz z premierą Solr 5.0 dostajemy w nasze ręce możliwość ograniczenia wykorzystania sieci przez replikację Solr.

Do pokazania, jak działa nowa funkcjonalność Solr porównajmy dwie sytuacje – kopiowanie indeksu bez żadnych limitów oraz kopiowanie indeksu podczas ustawionego limitu. W tym celu weźmiemy indeks mający około 2GB i zobaczymy jak wygląda wykorzystanie sieci podczas domyślnej konfiguracji replikacji oraz wtedy, kiedy mamy ustawione limity. Do tego celu wykorzystamy wdrożenie oparte o SolrCloud. Należy jednak pamiętać, iż sposób ten działa także we wdrożeniach opartych o architekturę master – slave.

Replikacja bez limitów

Do replikacji bez limitów wykorzystujemy następującą konfigurację:

<requestHandler name="/replication" class="solr.ReplicationHandler">
</requestHandler>

A tak wygląda wykorzystanie sieci podczas replikacji:

replication_not_throttled

Replikacja z limitami

Do replikacji z limitami wykorzystujemy następującą konfigurację:

<requestHandler name="/replication" class="solr.ReplicationHandler">
 <lst name="defaults">
  <str name="maxWriteMBPerSec">0.1</str>
 </lst>
</requestHandler>

Wykorzystanie sieci w chwili replikacji wygląda następująco:

replication_throttledJak widać różnica pomiędzy dwoma scenariuszami jest znaczna.

Podsumowanie

Jak widać sama konfiguracja jest banalna i działa. Oczywiście działa nie tylko w przypadku wdrożenia opartego o SolrCloud, ale także w bardziej tradycyjnym master – slave. Jedyne czego mi teraz brakuje, to możliwości kontroli za pomocą dedykowanego API, ale to może w przyszłości 🙂

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners. View more
Cookies settings
Accept
Privacy & Cookie policy
Privacy & Cookies policy
Cookie name Active
Save settings
Cookies settings