This is an automated email from the ASF dual-hosted git repository.

alexey pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git

commit 4bee886c2cb092531a7af0f49420471a2203af2b
Author: Alexey Serbin <[email protected]>
AuthorDate: Mon Jul 27 19:12:12 2020 -0700

    [benchmarks] add GetTableLocations scenarios
    
    Added a few benchmarks for GetTableLocationsBenchmark-based scenarios
    from table_locations-itest.
    
    Change-Id: Ifeaaadf2a30f15c7ad0b8cd99fe22d06fb225ebc
    Reviewed-on: http://gerrit.cloudera.org:8080/16245
    Tested-by: Kudu Jenkins
    Reviewed-by: Grant Henke <[email protected]>
---
 src/kudu/scripts/benchmarks.sh | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/src/kudu/scripts/benchmarks.sh b/src/kudu/scripts/benchmarks.sh
index 25468c4..bd63a36 100755
--- a/src/kudu/scripts/benchmarks.sh
+++ b/src/kudu/scripts/benchmarks.sh
@@ -65,6 +65,9 @@ BLOCKING_QUEUE_NON_SYMMETRIC_TEST=BlockingQueueNonSymmetric
 GET_TABLE_SCHEMA_RPC=GetTableSchemaTestRpc
 GET_TABLE_SCHEMA_DIRECT_CALL=GetTableSchemaTestDirectCall
 
+GET_TABLE_LOCATIONS_RPC=GetTableLocationsTestRpc
+GET_TABLE_LOCATIONS_DIRECT_CALL=GetTableLocationsTestDirectCall
+
 LOG_DIR_NAME=build/latest/bench-logs
 OUT_DIR_NAME=build/latest/bench-out
 HTML_FILE="benchmarks.html"
@@ -323,6 +326,29 @@ run_benchmarks() {
       --gtest_filter='*/ConcurrentGetTableSchemaTest.DirectMethodCall/*' \
       &> $LOGDIR/${GET_TABLE_SCHEMA_DIRECT_CALL}$i.log
   done
+
+  # Run GetTableLocationsBenchmark, with and without cache.
+  for capacity_mb in 0 32 do ;
+    for i in $(seq 1 $NUM_SAMPLES) ; do
+      KUDU_ALLOW_SLOW_TESTS=true ./build/latest/bin/table_locations-itest \
+        --gtest_filter=TableLocationsTest.GetTableLocationsBenchmark \
+        --rpc_num_service_threads=8 \
+        --benchmark_num_threads=12 \
+        --table_locations_cache_capacity_mb=$capacity_mb \
+        &> $LOGDIR/${GET_TABLE_LOCATIONS_RPC}_${capacity_mb}_$i.log
+    done
+  done
+
+  # Run GetTableLocationsBenchmarkFunctionCall, with and without cache.
+  for capacity_mb in 0 32 do ;
+    for i in $(seq 1 $NUM_SAMPLES) ; do
+      KUDU_ALLOW_SLOW_TESTS=true ./build/latest/bin/table_locations-itest \
+        
--gtest_filter=TableLocationsTest.GetTableLocationsBenchmarkFunctionCall \
+        --benchmark_num_threads=12 \
+        --table_locations_cache_capacity_mb=$capacity_mb \
+        &> $LOGDIR/${GET_TABLE_LOCATIONS_DIRECT_CALL}_${capacity_mb}_$i.log
+    done
+  done
 }
 
 parse_and_record_all_results() {
@@ -529,6 +555,19 @@ parse_and_record_all_results() {
     record_result $BUILD_IDENTIFIER 
${GET_TABLE_SCHEMA_DIRECT_CALL}_authz_req_rate $i $rate
   done
 
+  # Parse out request rate and record the results for 
GetTableLocationsBenchmark{FunctionCall}.
+  for capacity_mb in 0 32 ; do
+    for i in $(seq 1 $NUM_SAMPLES); do
+      local log=$LOGDIR/${GET_TABLE_LOCATIONS_RPC}_${capacity_mb}_${i}.log
+      rate=$(grep -o 'GetTableLocations RPC: .* req/sec' $log | awk '{print 
$3}')
+      record_result $BUILD_IDENTIFIER 
${GET_TABLE_LOCATIONS_RPC}_${capacity_mb}_req_rate $i $rate
+
+      local 
log=$LOGDIR/${GET_TABLE_LOCATIONS_DIRECT_CALL}_${capacity_mb}_${i}.log
+      rate=$(grep -o 'GetTableLocations function call: .* req/sec' $log | awk 
'{print $4}')
+      record_result $BUILD_IDENTIFIER 
${GET_TABLE_LOCATIONS_DIRECT_CALL}_${capacity_mb}_req_rate $i $rate
+    done
+  done
+
   popd
   popd
   popd
@@ -616,6 +655,9 @@ load_stats_and_generate_plots() {
   load_and_generate_plot "${GET_TABLE_SCHEMA_DIRECT_CALL}_authz_req_rate" 
get-table-schema-dc-authz
   load_and_generate_plot "${GET_TABLE_SCHEMA_DIRECT_CALL}_no_authz_req_rate" 
get-table-schema-dc-no-authz
 
+  load_and_generate_plot "${GET_TABLE_LOCATIONS_RPC}%_req_rate" 
get-table-locations-rpc
+  load_and_generate_plot "${GET_TABLE_LOCATIONS_DIRECT_CALL}%_req_rate" 
get-table-locations-dc
+
   # Generate all the pngs for all the mt-tablet tests
   for i in $(seq 0 $NUM_MT_TABLET_TESTS); do
     cat $LOGDIR/${MT_TABLET_TEST}.log | ./graph-metrics.py 
MultiThreadedTabletTest/$i > $OUTDIR/test$i.tsv

Reply via email to