mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-05-06 04:28:01 +00:00
Storage benchmarking (#10897)
* WIP Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * WIP: DB benchmarking Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * WIP Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * WIP Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Simplify code Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove old files Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove old files Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Minimize changes Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Add license Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove dependencies Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Extend template Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Linter Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Linter Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Beauty fixes Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove default Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Add feature Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Remove seed Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * CI wakeup Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fmt Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Review fixes Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Adding doc Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Adding doc Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Improve template Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Do not expose columns Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix ColumnId Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Nicer template prints Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Cleanup Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Fix json path Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Simplify `bench_write` logic Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io> * Invert tx before the second commit Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io>
This commit is contained in:
committed by
GitHub
parent
d551fe6613
commit
4c984500a7
@@ -194,7 +194,7 @@ impl Into<sc_service::config::RpcMethods> for RpcMethods {
|
||||
}
|
||||
|
||||
/// Database backend
|
||||
#[derive(Debug, Clone, Copy)]
|
||||
#[derive(Debug, Clone, PartialEq, Copy)]
|
||||
pub enum Database {
|
||||
/// Facebooks RocksDB
|
||||
RocksDb,
|
||||
|
||||
@@ -21,7 +21,7 @@ use clap::Args;
|
||||
use sc_service::TransactionStorageMode;
|
||||
|
||||
/// Parameters for block import.
|
||||
#[derive(Debug, Clone, Args)]
|
||||
#[derive(Debug, Clone, PartialEq, Args)]
|
||||
pub struct DatabaseParams {
|
||||
/// Select database backend to use.
|
||||
#[clap(
|
||||
|
||||
@@ -21,7 +21,7 @@ use clap::Args;
|
||||
use sc_service::{KeepBlocks, PruningMode, Role};
|
||||
|
||||
/// Parameters to define the pruning mode
|
||||
#[derive(Debug, Clone, Args)]
|
||||
#[derive(Debug, Clone, PartialEq, Args)]
|
||||
pub struct PruningParams {
|
||||
/// Specify the state pruning mode, a number of blocks to keep or 'archive'.
|
||||
///
|
||||
|
||||
@@ -22,7 +22,7 @@ use sc_service::config::BasePath;
|
||||
use std::path::PathBuf;
|
||||
|
||||
/// Shared parameters used by all `CoreParams`.
|
||||
#[derive(Debug, Clone, Args)]
|
||||
#[derive(Debug, Clone, PartialEq, Args)]
|
||||
pub struct SharedParams {
|
||||
/// Specify the chain specification.
|
||||
///
|
||||
|
||||
@@ -45,5 +45,6 @@ tempfile = "3"
|
||||
[features]
|
||||
default = []
|
||||
test-helpers = []
|
||||
runtime-benchmarks = []
|
||||
with-kvdb-rocksdb = ["kvdb-rocksdb"]
|
||||
with-parity-db = ["parity-db"]
|
||||
|
||||
@@ -106,7 +106,8 @@ const DEFAULT_CHILD_RATIO: (usize, usize) = (1, 10);
|
||||
pub type DbState<B> =
|
||||
sp_state_machine::TrieBackend<Arc<dyn sp_state_machine::Storage<HashFor<B>>>, HashFor<B>>;
|
||||
|
||||
const DB_HASH_LEN: usize = 32;
|
||||
/// Length of a [`DbHash`].
|
||||
pub const DB_HASH_LEN: usize = 32;
|
||||
/// Hash type that this backend uses for the database.
|
||||
pub type DbHash = sp_core::H256;
|
||||
|
||||
@@ -1050,6 +1051,23 @@ impl<Block: BlockT> Backend<Block> {
|
||||
Self::new(db_setting, canonicalization_delay).expect("failed to create test-db")
|
||||
}
|
||||
|
||||
/// Expose the Database that is used by this backend.
|
||||
/// The second argument is the Column that stores the State.
|
||||
///
|
||||
/// Should only be needed for benchmarking.
|
||||
#[cfg(any(feature = "runtime-benchmarks"))]
|
||||
pub fn expose_db(&self) -> (Arc<dyn sp_database::Database<DbHash>>, sp_database::ColumnId) {
|
||||
(self.storage.db.clone(), columns::STATE)
|
||||
}
|
||||
|
||||
/// Expose the Storage that is used by this backend.
|
||||
///
|
||||
/// Should only be needed for benchmarking.
|
||||
#[cfg(any(feature = "runtime-benchmarks"))]
|
||||
pub fn expose_storage(&self) -> Arc<dyn sp_state_machine::Storage<HashFor<Block>>> {
|
||||
self.storage.clone()
|
||||
}
|
||||
|
||||
fn from_database(
|
||||
db: Arc<dyn Database<DbHash>>,
|
||||
canonicalization_delay: u64,
|
||||
|
||||
Reference in New Issue
Block a user