From 371046fe10918ba0728923b7b9a6903bca46e703 Mon Sep 17 00:00:00 2001 From: Noel Kwan Date: Tue, 4 Apr 2023 17:48:50 +0800 Subject: [PATCH 1/3] add more benchmark cases --- src/common/benches/bench_hash_key_encoding.rs | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/common/benches/bench_hash_key_encoding.rs b/src/common/benches/bench_hash_key_encoding.rs index 882e3d29442c..da2424ac6a4e 100644 --- a/src/common/benches/bench_hash_key_encoding.rs +++ b/src/common/benches/bench_hash_key_encoding.rs @@ -25,7 +25,7 @@ use risingwave_common::test_utils::rand_array::seed_rand_array_ref; use risingwave_common::types::DataType; static SEED: u64 = 998244353u64; -static CHUNK_SIZES: &[usize] = &[128, 1024]; +static CHUNK_SIZES: &[usize] = &[128, 1024, 8192]; static NULL_RATIOS: &[f64] = &[0.0, 0.01, 0.1]; trait Case: Send + 'static { @@ -82,7 +82,7 @@ struct HashKeyBenchCase { impl HashKeyBenchCase { pub fn new(id: String, input_chunk: DataChunk, data_types: Vec) -> Self { - // please check the `bench_vec_dser` and `bench_deser` method when want to bench not full + // please reference the `bench_vec_deser` and `bench_deser` method for benchmarking partial // `col_idxes` let col_idxes = (0..input_chunk.columns().len()).collect_vec(); let keys = HashKey::build(&col_idxes, &input_chunk).unwrap(); @@ -188,6 +188,10 @@ fn case_builders() -> Vec { data_types: vec![DataType::Varchar], describe: "varchar".to_string(), }, + HashKeyBenchCaseBuilder { + data_types: vec![DataType::Varchar, DataType::Varchar], + describe: "composite varchar".to_string(), + }, HashKeyBenchCaseBuilder { data_types: vec![DataType::Int32, DataType::Int32, DataType::Int32], describe: "composite fixed".to_string(), @@ -204,6 +208,30 @@ fn case_builders() -> Vec { data_types: vec![DataType::Int64, DataType::Varchar], describe: "mix fixed and not2".to_string(), }, + HashKeyBenchCaseBuilder { + data_types: vec![DataType::Int64; 8], + describe: "medium fixed".to_string(), + }, + HashKeyBenchCaseBuilder { + data_types: { + let mut v = vec![DataType::Int64; 8]; + v[7] = DataType::Varchar; + v + }, + describe: "medium mixed".to_string(), + }, + HashKeyBenchCaseBuilder { + data_types: vec![DataType::Int64; 16], + describe: "large fixed".to_string(), + }, + HashKeyBenchCaseBuilder { + data_types: { + let mut v = vec![DataType::Int64; 16]; + v[15] = DataType::Varchar; + v + }, + describe: "large mixed".to_string(), + }, ] } From 74fbeefe882bbe26720635678cb085c765d687c4 Mon Sep 17 00:00:00 2001 From: Noel Kwan Date: Tue, 4 Apr 2023 17:54:09 +0800 Subject: [PATCH 2/3] remove unrealistic chunk size --- src/common/benches/bench_hash_key_encoding.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/benches/bench_hash_key_encoding.rs b/src/common/benches/bench_hash_key_encoding.rs index da2424ac6a4e..fdb5167ce328 100644 --- a/src/common/benches/bench_hash_key_encoding.rs +++ b/src/common/benches/bench_hash_key_encoding.rs @@ -25,7 +25,7 @@ use risingwave_common::test_utils::rand_array::seed_rand_array_ref; use risingwave_common::types::DataType; static SEED: u64 = 998244353u64; -static CHUNK_SIZES: &[usize] = &[128, 1024, 8192]; +static CHUNK_SIZES: &[usize] = &[128, 1024]; static NULL_RATIOS: &[f64] = &[0.0, 0.01, 0.1]; trait Case: Send + 'static { From fa89f93f7672388f2190c3a31be7c5fec5e9454e Mon Sep 17 00:00:00 2001 From: Noel Kwan Date: Tue, 4 Apr 2023 17:55:37 +0800 Subject: [PATCH 3/3] fix phrasing --- src/common/benches/bench_hash_key_encoding.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/common/benches/bench_hash_key_encoding.rs b/src/common/benches/bench_hash_key_encoding.rs index fdb5167ce328..a9c8bffc9e77 100644 --- a/src/common/benches/bench_hash_key_encoding.rs +++ b/src/common/benches/bench_hash_key_encoding.rs @@ -202,11 +202,11 @@ fn case_builders() -> Vec { }, HashKeyBenchCaseBuilder { data_types: vec![DataType::Int32, DataType::Varchar], - describe: "mix fixed and not1".to_string(), + describe: "mix fixed and not fixed, case 1".to_string(), }, HashKeyBenchCaseBuilder { data_types: vec![DataType::Int64, DataType::Varchar], - describe: "mix fixed and not2".to_string(), + describe: "mix fixed and not fixed, case 2".to_string(), }, HashKeyBenchCaseBuilder { data_types: vec![DataType::Int64; 8],