You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/configuration.md
+8-1Lines changed: 8 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,10 @@
33
33
| MetricScrapingPeriodSeconds | int | > 0 | 15 | Period of Prometheus metrics scrapping |
34
34
| GRPCConnectionTimeoutSeconds | int | > 0 | 60 | Timeout for establishing a gRPC connection |
35
35
| GRPCFunctionTimeoutSeconds | int | > 0 | 90 | Maximum time given to function to execute[^5]|
36
-
| DAGMode | bool | true/false | false | Sequential invocation of all functions one after another |
36
+
| DAGMode | bool | true/false | false | Generates DAG workflows iteratively with functions in TracePath [^8]. Frequency and IAT of the DAG follows their respective entry function, while Duration and Memory of each function will follow their respective values in TracePath. |
37
+
| EnableDAGDataset | bool | true/false | true | Generate width and depth from dag_structure.csv in TracePath[^9]|
[^7] It is recommended that the first 10% of cold starts are discarded from the experiment results for low cold start RPS.
59
62
63
+
[^8]: The generated DAGs consist of unique functions. The shape of each DAG is determined either ```Width,Depth``` or calculated based on ```EnableDAGDAtaset```.
64
+
65
+
[^9]: A [data sample](https://github.com/icanforce/Orion-OSDI22/blob/main/Public_Dataset/dag_structure.xlsx) of DAG structures has been created based on past Microsoft Azure traces. Width and Depth are determined based on probabilities of this sample.
66
+
60
67
---
61
68
62
69
InVitro can cause failure on cluster manager components. To do so, please configure the `cmd/failure.json`. Make sure
Copy file name to clipboardExpand all lines: docs/loader.md
+47-1Lines changed: 47 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -179,6 +179,53 @@ For more options, please see the `Makefile`.
179
179
180
180
For instructions on how to use the loader with OpenWhisk go to `openwhisk_setup/README.md`.
181
181
182
+
## Workflow Invocation
183
+
Generation of a Directed Acyclic Graph (DAG) workflow is supported by setting `"DAGMode: true"` in `cmd/config_knative_trace.json` (as specified in [`docs/configuration.md`](../docs/configuration.md)).
184
+
185
+
Before invocation, DAGs will be iteratively generated based on the parameters: `width`,`depth`,`EnableDAGDataset`, until the remaining functions are insufficient to maintain the desired DAG structure. The remaining functions will be unused for the rest of the experiment.
186
+
187
+
An example of the generated workflow can be seen here:
188
+
189
+
```bash
190
+
Functions available: 20
191
+
Width: 3
192
+
Depth: 4
193
+
EnableDAGDataset: false
194
+
195
+
DAG 1: f(0) -> f(1) -> f(3) -> f(5)
196
+
\
197
+
\ -> f(2) -> f(4) -> f(6)
198
+
\
199
+
\ -> f(7)
200
+
201
+
DAG 2: f(8) -> f(9) -> f(12) -> f(15)
202
+
\
203
+
\ -> f(10) -> f(13) -> f(16)
204
+
\
205
+
\-> f(11) -> f(14) -> f(17)
206
+
```
207
+
In the example, a single invocation of DAG 1 will result in 8 total functions invoked, with parallel invocations per branch. Invocation Frequency and IAT of DAGs 1 and 2 will depend on entry functions f(0) and f(8) respectively.
208
+
209
+
To obtain [reference traces](https://github.com/vhive-serverless/invitro/blob/main/docs/sampler.md#reference-traces) for DAG execution, use the following command:
210
+
```bash
211
+
git lfs pull
212
+
tar -xzf data/traces/reference/sampled_150.tar.gz -C data/traces
213
+
```
214
+
Microsoft has publicly released Microsoft Azure traces of function invocations from 10/18/2021 to 10/31/2021. From this trace, a [data sample](https://github.com/icanforce/Orion-OSDI22/blob/main/Public_Dataset) of DAG structures, representing the cumulative distribution of width and depth of DAGs during that period, was generated. Probabilities were applied to the data to derive the shape of the DAGs. The file `data/traces/example/dag_structure.csv` provides a simplified sample of the publicly released traces.
215
+
216
+
By default, the shape of the DAGs are automatically calculated at every iteration using the above mentioned cumulative distribution.
217
+
To manually set the shape of the DAGs, change the following parameters in `cmd/config_knative_trace.json`. Note that the number of functions in `TracePath` must be large enough to support the maximum size of the DAG. This ensures all DAGs generated will have the same width and depth.
218
+
```bash
219
+
"EnableDAGDataset": false,
220
+
"Width": <width>,
221
+
"Depth": <depth>
222
+
```
223
+
224
+
Lastly, start the experiment. This invokes all the generated DAGs with their respective frequencies.
225
+
```bash
226
+
go run cmd/loader.go --config cmd/config_knative_trace.json
227
+
```
228
+
182
229
## Running on Cloud Using Serverless Framework
183
230
184
231
**Currently supported vendors:** AWS
@@ -204,7 +251,6 @@ For instructions on how to use the loader with OpenWhisk go to `openwhisk_setup/
204
251
```bash
205
252
go run cmd/loader.go --config cmd/config_knative_trace.json
0 commit comments