11#! /bin/bash
22
3+
34if [ -z " $ACCOUNT_ENDPOINT " ]
45then
56 echo " Missing ACCOUNT_ENDPOINT"
2425 exit -1
2526fi
2627
27- if [ -z " $TELEMETRY_ENDPOINT " ]
28- then
29- echo " Missing TELEMETRY_ENDPOINT"
30- exit -1
31- fi
32-
3328if [ -z " $INCLUDE_QUERY " ]
3429then
3530 echo " Missing INCLUDE_QUERY"
@@ -46,37 +41,78 @@ echo $COMMIT_DATE
4641echo $COMMIT_TIME
4742echo $BRANCH_NAME
4843
49- # Client telemetry disabled ReadStreamExistsV3
50- dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
51- sleep 10 # Wait
44+ MODE_FLAGS= " --isthinclientenabled= ${THINCLIENT_ENABLED :- false} \
45+ --isgatewaymodeenabled= ${GATEWAYMODE_ENABLED :- false} \
46+ --isdirectmodeenabled= ${DIRECTMODE_ENABLED :- false} "
5247
53- # Client telemetry enabled ReadStreamExistsV3. This is needed to see the impact of client telemetry.
54- dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 --WorkloadName ReadStreamExistsV3WithTelemetry --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
55- sleep 10 # Wait
48+ # ---------- 1) ALWAYS RUN THESE 10 WORKLOADS ----------
49+ for WORKLOAD_NAME in \
50+ CreateItemV3BenchmarkOperation \
51+ InsertV3BenchmarkOperation \
52+ ReadItemV3BenchmarkOperation \
53+ ReadStreamExistsV3BenchmarkOperation \
54+ ReplaceItemV3BenchmarkOperation \
55+ ReplaceItemStreamV3BenchmarkOperation \
56+ UpsertItemV3BenchmarkOperation \
57+ UpsertItemStreamV3BenchmarkOperation \
58+ DeleteItemV3BenchmarkOperation \
59+ DeleteItemStreamV3BenchmarkOperation
60+ do
61+ dotnet run -c Release \
62+ -- -n 2000000 \
63+ -w $WORKLOAD_NAME \
64+ $MODE_FLAGS \
65+ --pl $PL \
66+ -e $ACCOUNT_ENDPOINT \
67+ -k $ACCOUNT_KEY \
68+ --enablelatencypercentiles \
69+ --disablecoresdklogging \
70+ --publishresults \
71+ --resultspartitionkeyvalue $RESULTS_PK \
72+ --commitid $COMMIT_ID \
73+ --commitdate $COMMIT_DATE \
74+ --committime $COMMIT_TIME \
75+ --branchname $BRANCH_NAME \
76+ --database testdb \
77+ --container testcol \
78+ --partitionkeypath /pk
79+ sleep 10
80+ done
5681
57- # Open telemetry enabled ReadStreamExistsV3. This is needed to see the impact of distributed tracing (without listener)
58- dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 --WorkloadName ReadStreamExistsV3WithDistributedTracingWOListener --enableDistributedTracing --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
59- sleep 10 # Wait
82+ # ---------- 2) ADDITIONAL SCENARIOS DIRECT-ONLY ----------
83+ if [ " ${DIRECTMODE_ENABLED:- false} " = true ]; then
84+ # Client telemetry disabled ReadStreamExistsV3
85+ dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 $MODE_FLAGS --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
86+ sleep 10 # Wait
6087
61- # Point read operations
62- for WORKLOAD_NAME in ReadNotExistsV3 ReadTExistsV3 ReadStreamExistsWithDiagnosticsV3
63- do
64- dotnet run -c Release -- -n 2000000 -w $WORKLOAD_NAME --pl $PL --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
88+ # Client telemetry enabled ReadStreamExistsV3. This is needed to see the impact of client telemetry.
89+ dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 $MODE_FLAGS --WorkloadName ReadStreamExistsV3WithTelemetry --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
6590 sleep 10 # Wait
66- done
6791
68- # Insert operation
69- dotnet run -c Release -- -n 2000000 -w InsertV3 --pl 30 --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 1 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
70- sleep 45 # Wait
92+ # Open telemetry enabled ReadStreamExistsV3. This is needed to see the impact of distributed tracing (without listener)
93+ dotnet run -c Release -- -n 2000000 -w ReadStreamExistsV3 $MODE_FLAGS --WorkloadName ReadStreamExistsV3WithDistributedTracingWOListener --enableDistributedTracing --tcp 10 --pl $PL -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
94+ sleep 10 # Wait
7195
72- if [ " $INCLUDE_QUERY " = true ]
73- then
74- # Query operations
75- # n value is lowered to 200000 because queries are significantly slower. This prevents the runs from taking to long.
76- # pl is 16 because 18 was casuing a small amount of thorrtles.
77- for WORKLOAD_NAME in ReadFeedStreamV3 QueryTSinglePkV3 QueryTSinglePkOrderByWithPaginationV3 QueryTSinglePkOrderByFullDrainV3 QueryTCrossPkV3 QueryTCrossPkOrderByWithPaginationV3 QueryTCrossPkOrderByFullDrainV3 QueryStreamSinglePkV3 QueryStreamSinglePkOrderByWithPaginationV3 QueryStreamSinglePkOrderByFullDrainV3 QueryStreamCrossPkV3 QueryStreamCrossPkOrderByWithPaginationV3 QueryStreamCrossPkOrderByFullDrainV3
96+ # Point read operations
97+ for WORKLOAD_NAME in ReadNotExistsV3 ReadTExistsV3 ReadStreamExistsWithDiagnosticsV3
7898 do
79- dotnet run -c Release -- -n 200000 -w $WORKLOAD_NAME --pl 16 --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
99+ dotnet run -c Release -- -n 2000000 -w $WORKLOAD_NAME $MODE_FLAGS --pl $PL --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
80100 sleep 10 # Wait
81101 done
102+
103+ # Insert operation
104+ dotnet run -c Release -- -n 2000000 -w InsertV3 $MODE_FLAGS --pl 30 --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 1 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
105+ sleep 45 # Wait
106+
107+ if [ " $INCLUDE_QUERY " = true ]
108+ then
109+ # Query operations
110+ # n value is lowered to 200000 because queries are significantly slower. This prevents the runs from taking to long.
111+ # pl is 16 because 18 was casuing a small amount of thorrtles.
112+ for WORKLOAD_NAME in ReadFeedStreamV3 QueryTSinglePkV3 QueryTSinglePkOrderByWithPaginationV3 QueryTSinglePkOrderByFullDrainV3 QueryTCrossPkV3 QueryTCrossPkOrderByWithPaginationV3 QueryTCrossPkOrderByFullDrainV3 QueryStreamSinglePkV3 QueryStreamSinglePkOrderByWithPaginationV3 QueryStreamSinglePkOrderByFullDrainV3 QueryStreamCrossPkV3 QueryStreamCrossPkOrderByWithPaginationV3 QueryStreamCrossPkOrderByFullDrainV3
113+ do
114+ dotnet run -c Release -- -n 200000 -w $WORKLOAD_NAME $MODE_FLAGS --pl 16 --enableTelemetry --telemetryScheduleInSec 60 --telemetryEndpoint $TELEMETRY_ENDPOINT --tcp 10 -e $ACCOUNT_ENDPOINT -k $ACCOUNT_KEY --enablelatencypercentiles --disablecoresdklogging --publishresults --resultspartitionkeyvalue $RESULTS_PK --commitid $COMMIT_ID --commitdate $COMMIT_DATE --committime $COMMIT_TIME --branchname $BRANCH_NAME --database testdb --container testcol --partitionkeypath /pk
115+ sleep 10 # Wait
116+ done
117+ fi
82118fi
0 commit comments