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ę:

A tak wygląda wykorzystanie sieci podczas replikacji:

replication_not_throttled

Replikacja z limitami

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

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 email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.