2011-01-31 8 views
11

Mam kilka pytań dotyczących klastrów kwarcu, w szczególności o tym, jak wyzwalają uruchamianie ognia/zadań w klastrze.Wybierz węzeł w kwarcowym klastrze, aby wykonać zadanie.

  1. Czy kwarc daje jakieś preferencje węzłom podczas wykonywania zadań? Tak jak zawsze lub nigdy węzeł, który wykonywał to samo zadanie po raz ostatni, czy jest to po prostu którykolwiek węzeł, który dostaje się do pracy w pierwszej kolejności?

  2. Czy jest możliwe określenie węzła, który ma wykonać zadanie?

Odpowiedz

9

Odpowiedź na to pytanie będzie "zależna".

Dla kwarcu 1.x odpowiedź brzmi, że wykonanie zadania jest zawsze (tylko) na mniej lub bardziej losowym węźle. Gdzie "przypadkowość" jest tak naprawdę oparta na tym, który węzeł dostanie się do niego jako pierwszy. W przypadku "zajętych" programów planujących (w których zawsze jest dużo zadań do wykonania), to kończy się dając ładunek całkiem zrównoważony w węzłach klastra. W przypadku niezaawansowanego programu planującego (tylko sporadyczne zadanie do uruchomienia) może się czasem wydawać, że pojedynczy węzeł uruchamia wszystkie zadania (ponieważ program planujący wyszukuje następne zadanie, które ma zostać uruchomione po zakończeniu wykonywania zadania, aby węzeł właśnie zakończył wykonywanie dąży do znalezienia następnego zadania do wykonania).

Z kwarcem 2.0 (który jest w wersji beta) odpowiedź jest taka sama jak powyżej, dla standardowego kwarcu. Jednak użytkownicy Terracotta zbudowali edycję Enterprise swojego TerracottaJobStore, która zapewnia bardziej złożone sterowanie klastrami - podczas planowania zadań można określić, które węzły klastra są prawidłowe do wykonania zadania, lub można określić cechy/wymagania węzła, takie jak jako "węzeł z co najmniej 100 MB dostępnej pamięci RAM". Działa to również razem z ehcache, dzięki czemu można określić zadanie do uruchomienia "w węźle, w którym dane z kluczem X są lokalne".

+0

dzięki za info. – ButterflyCoder