From df1aed01c49771a31123f233ce96365d46b136bc Mon Sep 17 00:00:00 2001
From: Svyatoslav Nikolsky <svyatonik@gmail.com>
Date: Thu, 22 Dec 2022 08:53:26 +0300
Subject: [PATCH] Updated db weights and some experiments (#1732)

* updated weights

* also fix off-by-one in benchmarks
---
 bridges/modules/grandpa/src/weights.rs        | 18 ++++----
 bridges/modules/messages/src/weights.rs       | 42 +++++++++----------
 .../modules/parachains/src/benchmarking.rs    |  7 +++-
 bridges/modules/parachains/src/weights.rs     | 30 ++++++-------
 bridges/modules/relayers/src/weights.rs       |  6 +--
 5 files changed, 52 insertions(+), 51 deletions(-)

diff --git a/bridges/modules/grandpa/src/weights.rs b/bridges/modules/grandpa/src/weights.rs
index 6997713face..d6c3d596d88 100644
--- a/bridges/modules/grandpa/src/weights.rs
+++ b/bridges/modules/grandpa/src/weights.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_bridge_grandpa`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20
+//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20
 //! LOW RANGE: [], HIGH RANGE: []
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled
 //! CHAIN: Some("dev"), DB CACHE: 1024
@@ -59,10 +59,10 @@ pub trait WeightInfo {
 pub struct BridgeWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 	fn submit_finality_proof(p: u32, v: u32) -> Weight {
-		Weight::from_ref_time(198_274_668 as u64)
-			.saturating_add(Weight::from_ref_time(39_830_948 as u64).saturating_mul(p as u64))
-			.saturating_add(Weight::from_ref_time(1_535_681 as u64).saturating_mul(v as u64))
-			.saturating_add(T::DbWeight::get().reads(7 as u64))
+		Weight::from_ref_time(192_130_822 as u64)
+			.saturating_add(Weight::from_ref_time(39_781_096 as u64).saturating_mul(p as u64))
+			.saturating_add(Weight::from_ref_time(1_365_108 as u64).saturating_mul(v as u64))
+			.saturating_add(T::DbWeight::get().reads(6 as u64))
 			.saturating_add(T::DbWeight::get().writes(6 as u64))
 	}
 }
@@ -70,10 +70,10 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 // For backwards compatibility and tests
 impl WeightInfo for () {
 	fn submit_finality_proof(p: u32, v: u32) -> Weight {
-		Weight::from_ref_time(198_274_668 as u64)
-			.saturating_add(Weight::from_ref_time(39_830_948 as u64).saturating_mul(p as u64))
-			.saturating_add(Weight::from_ref_time(1_535_681 as u64).saturating_mul(v as u64))
-			.saturating_add(RocksDbWeight::get().reads(7 as u64))
+		Weight::from_ref_time(192_130_822 as u64)
+			.saturating_add(Weight::from_ref_time(39_781_096 as u64).saturating_mul(p as u64))
+			.saturating_add(Weight::from_ref_time(1_365_108 as u64).saturating_mul(v as u64))
+			.saturating_add(RocksDbWeight::get().reads(6 as u64))
 			.saturating_add(RocksDbWeight::get().writes(6 as u64))
 	}
 }
diff --git a/bridges/modules/messages/src/weights.rs b/bridges/modules/messages/src/weights.rs
index 834e0d1f3d6..69fad6051d5 100644
--- a/bridges/modules/messages/src/weights.rs
+++ b/bridges/modules/messages/src/weights.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_bridge_messages`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20
+//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20
 //! LOW RANGE: [], HIGH RANGE: []
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled
 //! CHAIN: Some("dev"), DB CACHE: 1024
@@ -66,87 +66,87 @@ pub trait WeightInfo {
 pub struct BridgeWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 	fn receive_single_message_proof() -> Weight {
-		Weight::from_ref_time(50_596_000 as u64)
+		Weight::from_ref_time(60_148_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 	fn receive_two_messages_proof() -> Weight {
-		Weight::from_ref_time(77_041_000 as u64)
+		Weight::from_ref_time(71_836_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 	fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
-		Weight::from_ref_time(58_331_000 as u64)
+		Weight::from_ref_time(66_845_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 	fn receive_single_message_proof_1_kb() -> Weight {
-		Weight::from_ref_time(48_061_000 as u64)
+		Weight::from_ref_time(69_696_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(3 as u64))
 			.saturating_add(T::DbWeight::get().writes(1 as u64))
 	}
 	fn receive_single_message_proof_16_kb() -> Weight {
-		Weight::from_ref_time(101_601_000 as u64)
+		Weight::from_ref_time(123_646_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(3 as u64))
 			.saturating_add(T::DbWeight::get().writes(1 as u64))
 	}
 	fn receive_delivery_proof_for_single_message() -> Weight {
-		Weight::from_ref_time(55_108_000 as u64)
+		Weight::from_ref_time(53_723_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 	fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
-		Weight::from_ref_time(53_917_000 as u64)
+		Weight::from_ref_time(54_617_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 	fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
-		Weight::from_ref_time(57_335_000 as u64)
-			.saturating_add(T::DbWeight::get().reads(5 as u64))
-			.saturating_add(T::DbWeight::get().writes(3 as u64))
+		Weight::from_ref_time(53_582_000 as u64)
+			.saturating_add(T::DbWeight::get().reads(4 as u64))
+			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
 }
 
 // For backwards compatibility and tests
 impl WeightInfo for () {
 	fn receive_single_message_proof() -> Weight {
-		Weight::from_ref_time(50_596_000 as u64)
+		Weight::from_ref_time(60_148_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 	fn receive_two_messages_proof() -> Weight {
-		Weight::from_ref_time(77_041_000 as u64)
+		Weight::from_ref_time(71_836_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 	fn receive_single_message_proof_with_outbound_lane_state() -> Weight {
-		Weight::from_ref_time(58_331_000 as u64)
+		Weight::from_ref_time(66_845_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 	fn receive_single_message_proof_1_kb() -> Weight {
-		Weight::from_ref_time(48_061_000 as u64)
+		Weight::from_ref_time(69_696_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(3 as u64))
 			.saturating_add(RocksDbWeight::get().writes(1 as u64))
 	}
 	fn receive_single_message_proof_16_kb() -> Weight {
-		Weight::from_ref_time(101_601_000 as u64)
+		Weight::from_ref_time(123_646_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(3 as u64))
 			.saturating_add(RocksDbWeight::get().writes(1 as u64))
 	}
 	fn receive_delivery_proof_for_single_message() -> Weight {
-		Weight::from_ref_time(55_108_000 as u64)
+		Weight::from_ref_time(53_723_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 	fn receive_delivery_proof_for_two_messages_by_single_relayer() -> Weight {
-		Weight::from_ref_time(53_917_000 as u64)
+		Weight::from_ref_time(54_617_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 	fn receive_delivery_proof_for_two_messages_by_two_relayers() -> Weight {
-		Weight::from_ref_time(57_335_000 as u64)
-			.saturating_add(RocksDbWeight::get().reads(5 as u64))
-			.saturating_add(RocksDbWeight::get().writes(3 as u64))
+		Weight::from_ref_time(53_582_000 as u64)
+			.saturating_add(RocksDbWeight::get().reads(4 as u64))
+			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
 }
diff --git a/bridges/modules/parachains/src/benchmarking.rs b/bridges/modules/parachains/src/benchmarking.rs
index 29e48132890..b156b724afe 100644
--- a/bridges/modules/parachains/src/benchmarking.rs
+++ b/bridges/modules/parachains/src/benchmarking.rs
@@ -59,7 +59,12 @@ benchmarks_instance_pallet! {
 
 		let sender = account("sender", 0, 0);
 		let mut parachains = T::parachains();
-		let _ = parachains.split_off(p as usize - 1);
+		let _ = if p <= parachains.len() as u32 {
+			parachains.split_off(p as usize)
+		} else {
+			Default::default()
+		};
+		log::trace!(target: crate::LOG_TARGET, "=== {:?}", parachains.len());
 		let (relay_block_number, relay_block_hash, parachain_heads_proof, parachains_heads) = T::prepare_parachain_heads_proof(
 			&parachains,
 			DEFAULT_PARACHAIN_HEAD_SIZE,
diff --git a/bridges/modules/parachains/src/weights.rs b/bridges/modules/parachains/src/weights.rs
index 5c9206d0ca0..54f468b7636 100644
--- a/bridges/modules/parachains/src/weights.rs
+++ b/bridges/modules/parachains/src/weights.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_bridge_parachains`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-11-17, STEPS: 50, REPEAT: 20
+//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20
 //! LOW RANGE: [], HIGH RANGE: []
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled
 //! CHAIN: Some("dev"), DB CACHE: 1024
@@ -60,20 +60,18 @@ pub trait WeightInfo {
 /// Those weights are test only and must never be used in production.
 pub struct BridgeWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
-	fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight {
-		Weight::from_ref_time(51_173_000 as u64)
-			.saturating_add(Weight::from_ref_time(24_495_968 as u64).saturating_mul(p as u64))
-			.saturating_add(T::DbWeight::get().reads(2 as u64))
-			.saturating_add(T::DbWeight::get().reads((2 as u64).saturating_mul(p as u64)))
-			.saturating_add(T::DbWeight::get().writes((3 as u64).saturating_mul(p as u64)))
+	fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight {
+		Weight::from_ref_time(52_445_014 as u64)
+			.saturating_add(T::DbWeight::get().reads(4 as u64))
+			.saturating_add(T::DbWeight::get().writes(3 as u64))
 	}
 	fn submit_parachain_heads_with_1kb_proof() -> Weight {
-		Weight::from_ref_time(58_175_000 as u64)
+		Weight::from_ref_time(55_253_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(3 as u64))
 	}
 	fn submit_parachain_heads_with_16kb_proof() -> Weight {
-		Weight::from_ref_time(101_796_000 as u64)
+		Weight::from_ref_time(98_772_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(4 as u64))
 			.saturating_add(T::DbWeight::get().writes(3 as u64))
 	}
@@ -81,20 +79,18 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 
 // For backwards compatibility and tests
 impl WeightInfo for () {
-	fn submit_parachain_heads_with_n_parachains(p: u32) -> Weight {
-		Weight::from_ref_time(51_173_000 as u64)
-			.saturating_add(Weight::from_ref_time(24_495_968 as u64).saturating_mul(p as u64))
-			.saturating_add(RocksDbWeight::get().reads(2 as u64))
-			.saturating_add(RocksDbWeight::get().reads((2 as u64).saturating_mul(p as u64)))
-			.saturating_add(RocksDbWeight::get().writes((3 as u64).saturating_mul(p as u64)))
+	fn submit_parachain_heads_with_n_parachains(_p: u32) -> Weight {
+		Weight::from_ref_time(52_445_014 as u64)
+			.saturating_add(RocksDbWeight::get().reads(4 as u64))
+			.saturating_add(RocksDbWeight::get().writes(3 as u64))
 	}
 	fn submit_parachain_heads_with_1kb_proof() -> Weight {
-		Weight::from_ref_time(58_175_000 as u64)
+		Weight::from_ref_time(55_253_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(3 as u64))
 	}
 	fn submit_parachain_heads_with_16kb_proof() -> Weight {
-		Weight::from_ref_time(101_796_000 as u64)
+		Weight::from_ref_time(98_772_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(4 as u64))
 			.saturating_add(RocksDbWeight::get().writes(3 as u64))
 	}
diff --git a/bridges/modules/relayers/src/weights.rs b/bridges/modules/relayers/src/weights.rs
index 26a1cfab1e4..9bbaa343e12 100644
--- a/bridges/modules/relayers/src/weights.rs
+++ b/bridges/modules/relayers/src/weights.rs
@@ -17,7 +17,7 @@
 //! Autogenerated weights for `pallet_bridge_relayers`
 //!
 //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev
-//! DATE: 2022-12-05, STEPS: 50, REPEAT: 20
+//! DATE: 2022-12-21, STEPS: 50, REPEAT: 20
 //! LOW RANGE: [], HIGH RANGE: []
 //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled
 //! CHAIN: Some("dev"), DB CACHE: 1024
@@ -59,7 +59,7 @@ pub trait WeightInfo {
 pub struct BridgeWeight<T>(PhantomData<T>);
 impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 	fn claim_rewards() -> Weight {
-		Weight::from_ref_time(64_065_000 as u64)
+		Weight::from_ref_time(64_832_000 as u64)
 			.saturating_add(T::DbWeight::get().reads(2 as u64))
 			.saturating_add(T::DbWeight::get().writes(2 as u64))
 	}
@@ -68,7 +68,7 @@ impl<T: frame_system::Config> WeightInfo for BridgeWeight<T> {
 // For backwards compatibility and tests
 impl WeightInfo for () {
 	fn claim_rewards() -> Weight {
-		Weight::from_ref_time(64_065_000 as u64)
+		Weight::from_ref_time(64_832_000 as u64)
 			.saturating_add(RocksDbWeight::get().reads(2 as u64))
 			.saturating_add(RocksDbWeight::get().writes(2 as u64))
 	}
-- 
GitLab