1
// Copyright 2024 Moonbeam foundation
2
// This file is part of Moonbeam.
3

            
4
// Moonbeam is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published by
6
// the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8

            
9
// Moonbeam is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
// GNU General Public License for more details.
13

            
14
// You should have received a copy of the GNU General Public License
15
// along with Moonbeam.  If not, see <http://www.gnu.org/licenses/>.
16

            
17
//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 48.0.0
18
//! DATE: 2025-09-22 (Y/M/D)
19
//! HOSTNAME: `ip-10-0-0-176`, CPU: `Intel(R) Xeon(R) Platinum 8375C CPU @ 2.90GHz`
20
//!
21
//! DATABASE: `RocksDb`, RUNTIME: `Moonbeam`
22
//! BLOCK-NUM: `BlockId::Number(12630729)`
23
//! SKIP-WRITE: `false`, SKIP-READ: `false`, WARMUPS: `1`
24
//! STATE-VERSION: `V1`, STATE-CACHE-SIZE: ``
25
//! WEIGHT-PATH: `./benchmarks/storage/20250922-082315/disk-weights-rocksdb-moonbeam.rs`
26
//! METRIC: `Average`, WEIGHT-MUL: `1.1`, WEIGHT-ADD: `0`
27

            
28
// Executed Command:
29
//   ./moonbeam
30
//   benchmark
31
//   storage
32
//   --db=rocksdb
33
//   --state-version=1
34
//   --mul=1.1
35
//   --weight-path
36
//   ./benchmarks/storage/20250922-082315/disk-weights-rocksdb-moonbeam.rs
37
//   --chain
38
//   moonbeam
39
//   --base-path
40
//   /mnt/disk3-6000-256/rocksdb-moonbeam-data
41
//   --keys-limit
42
//   50000000
43
//   --random-seed
44
//   1024
45

            
46
/// Storage DB weights for the `Moonbeam` runtime and `RocksDb`.
47
pub mod constants {
48
	use frame_support::weights::constants;
49
	use sp_core::parameter_types;
50
	use sp_weights::RuntimeDbWeight;
51

            
52
	parameter_types! {
53
		/// By default, Substrate uses `RocksDB`, so this will be the weight used throughout
54
		/// the runtime.
55
		pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight {
56
			// Time to read one storage item.
57
			// Calculated by multiplying the *Average* of all values with `1.1` and adding `0`.
58
			//
59
			// Stats nanoseconds:
60
			//   Min, Max: 1_774, 4_131_758
61
			//   Average:  53_833
62
			//   Median:   47_991
63
			//   Std-Dev:  44586.1
64
			//
65
			// Percentiles nanoseconds:
66
			//   99th: 236_090
67
			//   95th: 67_897
68
			//   75th: 54_501
69
			read: 59_217 * constants::WEIGHT_REF_TIME_PER_NANOS,
70

            
71
			// Time to write one storage item.
72
			// Calculated by multiplying the *Average* of all values with `1.1` and adding `0`.
73
			//
74
			// Stats nanoseconds:
75
			//   Min, Max: 10_807, 13_782_646
76
			//   Average:  87_559
77
			//   Median:   73_293
78
			//   Std-Dev:  191482.81
79
			//
80
			// Percentiles nanoseconds:
81
			//   99th: 212_681
82
			//   95th: 111_877
83
			//   75th: 82_079
84
			write: 96_315 * constants::WEIGHT_REF_TIME_PER_NANOS,
85
		};
86
	}
87

            
88
	#[cfg(test)]
89
	mod test_db_weights {
90
		use super::constants::RocksDbWeight as W;
91
		use sp_weights::constants;
92

            
93
		/// Checks that all weights exist and have sane values.
94
		// NOTE: If this test fails but you are sure that the generated values are fine,
95
		// you can delete it.
96
		#[test]
97
1
		fn bound() {
98
1
			// At least 1 µs.
99
1
			assert!(
100
1
				W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS,
101
				"Read weight should be at least 1 µs."
102
			);
103
1
			assert!(
104
1
				W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS,
105
				"Write weight should be at least 1 µs."
106
			);
107
			// At most 1 ms.
108
1
			assert!(
109
1
				W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS,
110
				"Read weight should be at most 1 ms."
111
			);
112
1
			assert!(
113
1
				W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS,
114
				"Write weight should be at most 1 ms."
115
			);
116
1
		}
117
	}
118
}