2013-05-08 12 views
13

Ho cercato di documentare il significato di tutte le metriche di tempesta per il mio progetto corrente.UI tempesta: Differenza tra latenze di esecuzione e di processo

Durante questo processo ho raccolto dati da queste risposte di gruppo e da github.

Mentre alcune metriche sono piuttosto auto-esplicative, mi sono davvero confuso con alcune delle metriche di bulloni.

Ad esempio, qual è la differenza tra Latenza del processo e Latenza di esecuzione?

Dai messaggi su questo gruppo Google ho raccolto le seguenti informazioni:

  • Lista latenza di elaborazione voce = timestamp quando ACK viene chiamato - timestamp quando eseguire viene passato tuple

  • voce dell'Elenco eseguire latenza = timestamp quando eseguire funzione termina - timestamp tupla quando execute viene passato (fonte: http://goo.gl/3KRAl)

e

  • Lista elemento del processo di latenza è tempo fino tupla è acked, eseguire la latenza è il tempo trascorso in esecuzione per una tupla (fonte: http://goo.gl/m0fTC)

In base a quello che vedo nella mia tempesta Interfaccia utente, la mia latenza di esecuzione è quasi sempre più grande della latenza di processo. Come potrebbe essere? Qualcuno potrebbe aiutarmi con la definizione esatta di entrambe le latenze?

Grazie in anticipo!

+0

Scusa se sono nuovo di tempesta e confuso sui numeri che ho ricevuto dopo la topologia inviata. la latenza dovrebbe essere maggiore della latenza di processo per tutto il tempo? Come ho ottenuto in alcuni bulloni vica versa. – user1

risposta

5

Ack viene chiamato nella funzione di esecuzione dell'esecutore o in breve verrà chiamato prima del metodo di esecuzione di un bullone termina. Quindi, eseguire la latenza è più. Questo frammento farà le cose in chiaro (tratto da here come è):

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

Spero che questo aiuta.

0

In base alla tua definizione, la latenza di esecuzione deve essere sempre maggiore della latenza del processo, poiché ack viene chiamato all'interno del metodo di esecuzione come anche Abhijeet menziona.

Se noti un'importante differenza, probabilmente avrai del codice dopo aver chiamato una tupla.

Problemi correlati