diff --git a/doc/graphviz/cache_fetch.dot b/doc/graphviz/cache_fetch.dot index 96c0967a049..8c093452a16 100644 --- a/doc/graphviz/cache_fetch.dot +++ b/doc/graphviz/cache_fetch.dot @@ -43,9 +43,27 @@ digraph cache_fetch { ] v_b_f:error:s -> v_b_e v_b_f:fetch:s -> v_b_hdrs [style=bold] + RETRY_FETCH [shape=plaintext] + RETRY_FETCH -> v_b_hdrs [style=bold] v_b_hdrs [ label="send bereq,\nread beresp (headers)"] - v_b_hdrs -> v_b_r [style=bold] + v_b_hdrs -> v_b_r [label="\"no stale object\""] [style=bold] v_b_hdrs -> v_b_e + v_b_hdrs -> v_b_refresh [label="\"stale object\""] [style=bold] + + v_b_refresh [ + shape=record + label="{vbf_stp_startfetch:|{vcl_backend_refresh\{\}|{bereq.*|beresp.*}}|{error|fail|{retry|{max?|ok?}}|{retry(fetch)|{max?|ok?}}|abandon|merge|obj_stale|beresp}}" + ] + v_b_refresh:error:s -> v_b_e + v_b_refresh:retry -> v_b_r_retry [color=purple] + v_b_refresh:rf_retry -> v_b_r_retry_fetch [color=purple] + v_b_refresh:rf_max -> v_b_e + v_b_refresh:max -> v_b_e + + v_b_refresh:merge -> v_b_r + v_b_refresh:beresp -> v_b_r + v_b_refresh:stale -> v_b_r + v_b_r [ shape=record label="{vbf_stp_startfetch:|{vcl_backend_response\{\}|{bereq.*|beresp.*}}|{error|fail|{retry|{max?|ok?}}|abandon|{deliver or pass|{304?|other?}}}}" @@ -57,6 +75,8 @@ digraph cache_fetch { v_b_r:non_304:s -> vbf_stp_fetch v_b_r_retry [label="RETRY",shape=plaintext] + + v_b_r_retry_fetch [label="RETRY_FETCH",shape=plaintext] vbf_stp_fetchbody [ shape=record diff --git a/doc/graphviz/cache_fetch.svg b/doc/graphviz/cache_fetch.svg index fa09e056e73..0fad71a0410 100644 --- a/doc/graphviz/cache_fetch.svg +++ b/doc/graphviz/cache_fetch.svg @@ -1,338 +1,446 @@ - - - + + cache_fetch - + cluster_backend - + RETRY -RETRY +RETRY v_b_f - -vbf_stp_startfetch: - -vcl_backend_fetch{} - -bereq.* - -error - -fail - -abandon - -fetch + +vbf_stp_startfetch: + +vcl_backend_fetch{} + +bereq.* + +error + +fail + +abandon + +fetch RETRY->v_b_f - - + + v_b_f_BGFETCH - -BGFETCH + +BGFETCH v_b_f_BGFETCH->v_b_f - - + + v_b_f_FETCH - -FETCH + +FETCH v_b_f_FETCH->v_b_f - - + + v_b_f_FETCH->v_b_f - - + + v_b_e - -vbf_stp_error: - -vcl_backend_error{} - -bereq.* - -beresp.* - -retry - -fail - -max? - -ok? - -abandon - -deliver + +vbf_stp_error: + +vcl_backend_error{} + +bereq.* + +beresp.* + +retry + +fail + +max? + +ok? + +abandon + +deliver v_b_f:s->v_b_e - - + + v_b_hdrs - -send bereq, -read beresp (headers) + +send bereq, +read beresp (headers) v_b_f:s->v_b_hdrs - - + + - + FETCH_DONE - -FETCH_DONE + +FETCH_DONE - + v_b_e:deliver->FETCH_DONE - - -"backend synth" + + +"backend synth" - + FETCH_FAIL - -FETCH_FAIL + +FETCH_FAIL - + v_b_e:s->FETCH_FAIL - - + + - + v_b_e_retry -RETRY +RETRY - + v_b_e:retry->v_b_e_retry - - + + - + v_b_hdrs->v_b_e - - + + - + v_b_r - -vbf_stp_startfetch: - -vcl_backend_response{} - -bereq.* - -beresp.* - -error - -fail - -retry - -max? - -ok? - -abandon - -deliver or pass - -304? - -other? + +vbf_stp_startfetch: + +vcl_backend_response{} + +bereq.* + +beresp.* + +error + +fail + +retry + +max? + +ok? + +abandon + +deliver or pass + +304? + +other? - + v_b_hdrs->v_b_r - - + + +"no stale object" + + + +v_b_refresh + +vbf_stp_startfetch: + +vcl_backend_refresh{} + +bereq.* + +beresp.* + +error + +fail + +retry + +max? + +ok? + +retry(fetch) + +max? + +ok? + +abandon + +merge + +obj_stale + +beresp + + + +v_b_hdrs->v_b_refresh + + +"stale object" + + + +RETRY_FETCH +RETRY_FETCH + + + +RETRY_FETCH->v_b_hdrs + + - + v_b_r:s->v_b_e - - + + - + v_b_r:max->v_b_e - - + + - + v_b_r_retry -RETRY +RETRY - + v_b_r:retry->v_b_r_retry - - + + - + vbf_stp_condfetch - -vbf_stp_condfetch: - -copy obj attr - -steal body - -fetch_fail? - -ok? + +vbf_stp_condfetch: + +copy obj attr + +steal body + +fetch_fail? + +ok? - + v_b_r:s->vbf_stp_condfetch - - + + - + vbf_stp_fetch - -vbf_stp_fetch: - -setup VFPs - -get object - -error? - -body? + +vbf_stp_fetch: + +setup VFPs + +get object + +error? + +body? - + v_b_r:s->vbf_stp_fetch - - + + + + + +v_b_refresh:s->v_b_e + + + + + +v_b_refresh:rf_max->v_b_e + + + + + +v_b_refresh:max->v_b_e + + + + + +v_b_refresh:merge->v_b_r + + + + + +v_b_refresh:beresp->v_b_r + + + + + +v_b_refresh:stale->v_b_r + + + + + +v_b_refresh:retry->v_b_r_retry + + + + + +v_b_r_retry_fetch +RETRY_FETCH + + + +v_b_refresh:rf_retry->v_b_r_retry_fetch + + - + vbf_stp_fetchend - -vbf_stp_fetchend: - -finalize object and director - -done + +vbf_stp_fetchend: + +finalize object and director + +done - + vbf_stp_condfetch:s->vbf_stp_fetchend - - + + - + vbf_stp_fetchbody - -vbf_stp_fetchbody: - -get storage - -read body, run VFPs - -fetch_fail? - -error? - -ok? + +vbf_stp_fetchbody: + +get storage + +read body, run VFPs + +fetch_fail? + +error? + +ok? - + vbf_stp_fetch:s->vbf_stp_fetchbody - - + + - + vbf_stp_fetch:s->vbf_stp_fetchend - - + + - + vbf_stp_fetchbody:s->vbf_stp_fetchend - - + + - + vbf_stp_fetchend:s->FETCH_DONE - - + + - + fail -fail +fail - + fail->FETCH_FAIL - - + + - + abandon -abandon +abandon - + abandon->FETCH_FAIL - - + +