mirror of
https://github.com/nosqlbench/nosqlbench.git
synced 2025-01-12 08:52:03 -06:00
151 lines
28 KiB
XML
151 lines
28 KiB
XML
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!--
|
||
|
- Copyright (c) 2022 nosqlbench
|
||
|
-
|
||
|
- Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
- you may not use this file except in compliance with the License.
|
||
|
- You may obtain a copy of the License at
|
||
|
-
|
||
|
- http://www.apache.org/licenses/LICENSE-2.0
|
||
|
-
|
||
|
- Unless required by applicable law or agreed to in writing, software
|
||
|
- distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
- See the License for the specific language governing permissions and
|
||
|
- limitations under the License.
|
||
|
-->
|
||
|
|
||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="2667.6px" preserveAspectRatio="none" style="width:1455px;height:2667px;background:#FFFFFF;" version="1.1" viewBox="0 0 1455 2667" width="1455.4px" zoomAndPan="magnify"><defs/><g><rect fill="none" height="55.229" id="_title" style="stroke:none;stroke-width:1.8999999999999997;" width="298.3" x="570.95" y="19"/><text fill="#000000" font-family="sans-serif" font-size="26.6" font-weight="bold" lengthAdjust="spacing" textLength="279.3" x="580.45" y="56.9353">Lifecycle of Scenarios</text><rect fill="#FFFFFF" height="60.2414" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="221.35" y="1775.9961"/><rect fill="#FFFFFF" height="455.89" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="562.4" y="2043.5618"/><rect fill="#FFFFFF" height="143.9705" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="1060.2" y="1220.4895"/><rect fill="#FFFFFF" height="26.6" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="1060.2" y="2214.7861"/><rect fill="#FFFFFF" height="60.2414" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="1238.8" y="2365.669"/><rect fill="#FFFFFF" height="180.7243" style="stroke:#181818;stroke-width:1.8999999999999997;" width="19" x="1367.05" y="1715.7547"/><rect fill="none" height="124.2829" style="stroke:#000000;stroke-width:2.8499999999999996;" width="664.05" x="485.45" y="2132.3033"/><rect fill="none" height="157.9243" style="stroke:#000000;stroke-width:2.8499999999999996;" width="835.05" x="485.45" y="2283.1861"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="53.2" x2="53.2" y1="218.8871" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="230.85" x2="230.85" y1="923.934" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="415.15" x2="415.15" y1="1058.0775" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="570.95" x2="570.95" y1="333.0162" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="754.3" x2="754.3" y1="485.2743" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="921.5" x2="921.5" y1="637.5323" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="1069.7" x2="1069.7" y1="789.7904" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="1248.3" x2="1248.3" y1="1296.554" y2="2533.6519"/><line style="stroke:#181818;stroke-width:0.9499999999999998;stroke-dasharray:5.0,5.0;" x1="1375.6" x2="1375.6" y1="1587.6073" y2="2533.6519"/><text fill="#000000" font-family="sans-serif" font-size="26.6" lengthAdjust="spacing" textLength="77.9" x="9.5" y="211.0934">NBCLI</text><ellipse cx="54.15" cy="152.2581" fill="#E2E2F0" rx="22.8" ry="22.8" style="stroke:#181818;stroke-width:0.9499999999999998;"/><polygon fill="#181818" points="46.55,129.4581,57.95,119.9581,54.15,129.4581,57.95,138.9581,46.55,129.4581" style="stroke:#181818;stroke-width:1.8999999999999997;"/><text fill="#000000" font-family="sans-serif" font-size="26.6" lengthAdjust="spacing" textLength="77.9" x="9.5" y="2560.1871">NBCLI</text><ellipse cx="54.15" cy="2598.3809" fill="#E2E2F0" rx="22.8" ry="22.8" style="stroke:#181818;stroke-width:0.9499999999999998;"/><polygon fill="#181818" points="46.55,2575.5809,57.95,2566.0809,54.15,2575.5809,57.95,2585.0809,46.55,2575.5809" style="stroke:#181818;stroke-width:1.8999999999999997;"/><text fill="#000000" font-family="sans-serif" font-size="26.6" lengthAdjust="spacing" textLength="110.2" x="170.05" y="2560.1871">Scenario</text><ellipse cx="230.85" cy="2598.3809" fill="#E2E2F0" rx="22.8" ry="22.8" style="stroke:#181818;stroke-width:0.9499999999999998;"/><polygon fill="#181818" points="223.25,2575
|
||
|
@startuml
|
||
|
'https://plantuml.com/sequence-diagram
|
||
|
|
||
|
title Lifecycle of Scenarios
|
||
|
|
||
|
control "NBCLI" as nbcli
|
||
|
control "Scenario" as s
|
||
|
control "Scenario\nController" as sc
|
||
|
control "Scenarios\nExecutor" as se
|
||
|
control "Exception\nHandler" as seh
|
||
|
control "Thread\nFactory" as stf
|
||
|
control "Executor\nService" as ses
|
||
|
|
||
|
nbcli -> se** : create
|
||
|
se -> seh** : create
|
||
|
se -> stf** : create ThreadFactory\n(w/ ExceptionHandler)
|
||
|
se -> ses** : create ExecutorService\n(w/ ThreadFactory)
|
||
|
|
||
|
nbcli -> s** : create
|
||
|
s -> sc** : create
|
||
|
nbcli - -> se : execute(Scenario)
|
||
|
se - -> ses: submit(<Callable> Scenario)
|
||
|
activate ses
|
||
|
ses -> future**: create
|
||
|
se <- - ses: <Future<ScenarioResult>>
|
||
|
deactivate ses
|
||
|
|
||
|
== [async] on thread from thread factory ==
|
||
|
ses -> stf: get()
|
||
|
stf -> thread**: create
|
||
|
ses <- stf: <thread>
|
||
|
ses -> thread: run task
|
||
|
activate thread
|
||
|
thread -> s: call()
|
||
|
activate s
|
||
|
thread <- s: ScenarioResult
|
||
|
deactivate s
|
||
|
thread -> future: result
|
||
|
deactivate thread
|
||
|
|
||
|
== [async] on NBCLI thread ==
|
||
|
|
||
|
nbcli -> se: awaitAllResults();
|
||
|
activate se
|
||
|
se -> ses: shutdown
|
||
|
loop timeout
|
||
|
se -> ses: awaitTermination(timeout)
|
||
|
activate ses
|
||
|
se <- ses
|
||
|
deactivate ses
|
||
|
end loop
|
||
|
loop each future
|
||
|
se -> future: get()
|
||
|
activate future
|
||
|
se <- future: ScenarioResult
|
||
|
deactivate future
|
||
|
end loop
|
||
|
|
||
|
nbcli <- se: <ScenariosResults>
|
||
|
deactivate se
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
@startuml
|
||
|
|
||
|
title Lifecycle of Scenarios
|
||
|
|
||
|
control "NBCLI" as nbcli
|
||
|
control "Scenario" as s
|
||
|
control "Scenario\nController" as sc
|
||
|
control "Scenarios\nExecutor" as se
|
||
|
control "Exception\nHandler" as seh
|
||
|
control "Thread\nFactory" as stf
|
||
|
control "Executor\nService" as ses
|
||
|
|
||
|
nbcli -> se** : create
|
||
|
se -> seh** : create
|
||
|
se -> stf** : create ThreadFactory\n(w/ ExceptionHandler)
|
||
|
se -> ses** : create ExecutorService\n(w/ ThreadFactory)
|
||
|
|
||
|
nbcli -> s** : create
|
||
|
s -> sc** : create
|
||
|
nbcli - -> se : execute(Scenario)
|
||
|
se - -> ses: submit(<Callable> Scenario)
|
||
|
activate ses
|
||
|
ses -> future**: create
|
||
|
se <- - ses: <Future<ScenarioResult>>
|
||
|
deactivate ses
|
||
|
|
||
|
== [async] on thread from thread factory ==
|
||
|
ses -> stf: get()
|
||
|
stf -> thread**: create
|
||
|
ses <- stf: <thread>
|
||
|
ses -> thread: run task
|
||
|
activate thread
|
||
|
thread -> s: call()
|
||
|
activate s
|
||
|
thread <- s: ScenarioResult
|
||
|
deactivate s
|
||
|
thread -> future: result
|
||
|
deactivate thread
|
||
|
|
||
|
== [async] on NBCLI thread ==
|
||
|
|
||
|
nbcli -> se: awaitAllResults();
|
||
|
activate se
|
||
|
se -> ses: shutdown
|
||
|
loop timeout
|
||
|
se -> ses: awaitTermination(timeout)
|
||
|
activate ses
|
||
|
se <- ses
|
||
|
deactivate ses
|
||
|
end loop
|
||
|
loop each future
|
||
|
se -> future: get()
|
||
|
activate future
|
||
|
se <- future: ScenarioResult
|
||
|
deactivate future
|
||
|
end loop
|
||
|
|
||
|
nbcli <- se: <ScenariosResults>
|
||
|
deactivate se
|
||
|
|
||
|
@enduml
|
||
|
|
||
|
PlantUML version 1.2022.12(Sun Oct 23 13:12:26 CDT 2022)
|
||
|
(GPL source distribution)
|
||
|
Java Runtime: OpenJDK Runtime Environment
|
||
|
JVM: OpenJDK 64-Bit Server VM
|
||
|
Default Encoding: UTF-8
|
||
|
Language: en
|
||
|
Country: US
|
||
|
--></g></svg>
|