nosqlbench/sort_docs/eb_metrics_full.puml

110 lines
2.3 KiB
Plaintext
Raw Normal View History

2021-04-02 10:34:07 -05:00
@startuml
2021-04-06 16:14:25 -05:00
title: Metrics Types and Scopes in SyncAction
2021-04-02 10:34:07 -05:00
Participant Input as i
Participant Thread as t
Participant Action as a
Participant Activity as at
Participant "Native\nDriver" as d
== acquire input ==
group TIMER read-input
t -> i : get segment(stride)
activate i
t <- i : <cycle segment>[stride]
deactivate i
end
group BLOCK striderate
t -> t: block until\nunthrottled
end
group TIMER strides
loop over cycle values in segment
group BLOCK cyclerate
t -> t: block until\nunthrottled
end
group TIMER cycle
t -> a : runCycle(cycle)
activate a
group TIMER bind
a -> at: bind
activate at
at -> d: ... [if needed]
at <- d: ...
a <- at: op
deactivate at
end
group HISTOGRAM tries
loop over tries
2021-04-06 16:14:25 -05:00
== for blocking APIs ==
2021-04-02 10:34:07 -05:00
2021-04-06 16:14:25 -05:00
group TIMERS\nexecute\nresult\nresult-success[result-success\nwhen no error]
a -> d: execute
2021-04-02 10:34:07 -05:00
activate d
2021-04-06 16:14:25 -05:00
a <- d: result
2021-04-02 10:34:07 -05:00
deactivate d
end
2021-04-06 16:14:25 -05:00
note right
When the underlying native
driver does not expose an async
API, execute and result must be updated
with the same measurements.
result-success contains the
same measurements as result,
but ONLY for non-exceptional
native driver results.
end note
2021-04-02 10:34:07 -05:00
2021-04-06 16:14:25 -05:00
== for async APIs ==
group TIMER execute
2021-04-02 10:34:07 -05:00
a -> d: execute
activate d
2021-04-06 16:14:25 -05:00
d -> future **: create
2021-04-02 10:34:07 -05:00
a <- d: future
deactivate d
end
2021-04-06 16:14:25 -05:00
note right
When the underlying native
driver DOES expose an async
API, execute measures
submission of an op to the
native driver, while result
measures the completion
of the op.
result-success contains the
same measurements as result,
but ONLY for non-exceptional
native driver results.
end note
group TIMERS\nresult\nresult-success[result-success\nwhen no error]
a -> future: get
activate future
a <- future: result
deactivate future
end
2021-04-02 10:34:07 -05:00
end
t <- a : result
deactivate a
end
end
end
end # strides
@enduml