From e120935a6182d7271e921871be8f00d87d918796 Mon Sep 17 00:00:00 2001 From: Dom Dwyer Date: Tue, 29 Aug 2023 20:04:15 +0200 Subject: [PATCH] fix(bench): reuse same namespace cache And add another thread for the hashing to happen on now there's two async tasks to run. --- router/benches/namespace_schema_cache.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/router/benches/namespace_schema_cache.rs b/router/benches/namespace_schema_cache.rs index 494603680a..80a014a57c 100644 --- a/router/benches/namespace_schema_cache.rs +++ b/router/benches/namespace_schema_cache.rs @@ -25,17 +25,15 @@ fn init_ns_cache( let metrics = Arc::new(metric::Registry::default()); let catalog: Arc = Arc::new(MemCatalog::new(Arc::clone(&metrics))); - let cache = Arc::new(ReadThroughCache::new( - Arc::new(ShardedCache::new( - iter::repeat_with(|| Arc::new(MemoryNamespaceCache::default())).take(10), - )), - Arc::clone(&catalog), + let cache = Arc::new(ShardedCache::new( + iter::repeat_with(|| Arc::new(MemoryNamespaceCache::default())).take(10), )); - let (actor, handle) = AntiEntropyActor::new(Arc::new(MemoryNamespaceCache::default())); + let (actor, handle) = AntiEntropyActor::new(Arc::clone(&cache)); rt.spawn(actor.run()); let cache = MerkleTree::new(cache, handle); + let cache = Arc::new(ReadThroughCache::new(cache, Arc::clone(&catalog))); for (name, schema) in initial_schema { cache.put_schema(name, schema); @@ -73,7 +71,10 @@ fn bench_add_new_tables_with_columns( let initial_schema = generate_namespace_schema(INITIAL_TABLE_COUNT, columns_per_table); let schema_update = generate_namespace_schema(INITIAL_TABLE_COUNT + tables, columns_per_table); - let rt = tokio::runtime::Runtime::new().unwrap(); + let rt = tokio::runtime::Builder::new_multi_thread() + .worker_threads(4) + .build() + .unwrap(); group.throughput(Throughput::Elements((tables * columns_per_table) as _)); group.bench_function(format!("{tables}x{columns_per_table}"), |b| {