2013-05-08 8 views
13

Próbowałem udokumentować znaczenie wszystkich danych Storm dla mojego bieżącego projektu.Interfejs Storm: Różnica między czasem wykonania i opóźnieniami procesu

Podczas tego procesu zebrałem dane z odpowiedzi tej grupy, a także github.

Podczas gdy niektóre dane są dość wymowne, bardzo mnie pomylono z niektórymi metrykami śrub.

Na przykład jaka jest różnica między opóźnieniem procesu a opóźnieniem wykonania?

Z postów na tym grupie Google I zostały zebrane następujące informacje:

  • Lista przetwarzanie poz latency = timestamp kiedy ACK nazywa - znacznik czasu kiedy wykonać przepuszcza krotka

  • element listy wykonać latencji = znacznika czasu wykonywania funkcji kończy - znacznika czasu wYKONAJ przekazywane krotkę (źródło: http://goo.gl/3KRAl)

i

  • Lista poz Proces opóźnienia jest czas do krotka jest potwierdzony, wykonać opóźnienie jest czas spędzony w wykonać za krotki (źródło: http://goo.gl/m0fTC)

podstawie tego, co widzę w moim burzy UI, moje opóźnienie wykonania jest prawie zawsze większe niż opóźnienie procesu. Jak to możliwe? Czy ktoś może mi pomóc z dokładną definicją obu latencji?

Z góry dziękuję!

+0

Przykro mi, że jestem nowy na sztorm i mylące numery, które otrzymałem po nadejściu topologii. Czy opóźnienie powinno być większe niż opóźnienie procesu przez cały czas? Kiedy dostałem kilka śrub vica versa. – user1

Odpowiedz

5

Ack jest wywoływane w funkcji execute executora lub w skrócie zostanie wywołane przed wykonaniem metody zakończenia śruby. Więc opóźnienie wykonania jest większe. Ten fragment będzie dokonać rzeczy oczywiste (zaczerpnięte z here jak jest):

public void execute(Tuple tuple) { 
    String sentence = tuple.getString(0); 
    for(String word: sentence.split(" ")) { 
    _collector.emit(tuple, new Values(word)); 
    } 
    _collector.ack(tuple); 
} 

Mam nadzieję, że to pomaga.

0

Zgodnie z twoją definicją, opóźnienie wykonania powinno być zawsze większe niż opóźnienie procesu, ponieważ ack jest wywoływane wewnątrz metody execute, o czym wspomniał również Abhijeet.

Jeśli zauważysz poważną różnicę, prawdopodobnie masz kod po potwierdzeniu krotki.

Powiązane problemy