Frame remove_all with size limit. (#9106)

* remove prefixed content with limit.

* test match

* factor comment and factor ext limit removal.

* fix benchmark

Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com>
This commit is contained in:
cheme
2021-06-15 15:23:58 +02:00
committed by GitHub
parent 5f0257f3b3
commit 693b39f43b
36 changed files with 312 additions and 239 deletions
+3 -3
View File
@@ -33,7 +33,7 @@ use sp_runtime::{
use sp_core::crypto::UncheckedFrom;
use frame_support::{
dispatch::{DispatchError, DispatchResult},
storage::child::{self, KillChildStorageResult, ChildInfo},
storage::child::{self, KillStorageResult, ChildInfo},
traits::Get,
weights::Weight,
};
@@ -331,14 +331,14 @@ where
let removed = queue.swap_remove(0);
match outcome {
// This should not happen as our budget was large enough to remove all keys.
KillChildStorageResult::SomeRemaining(_) => {
KillStorageResult::SomeRemaining(_) => {
log::error!(
target: "runtime::contracts",
"After deletion keys are remaining in this child trie: {:?}",
removed.trie_id,
);
},
KillChildStorageResult::AllRemoved(_) => (),
KillStorageResult::AllRemoved(_) => (),
}
}
remaining_key_budget = remaining_key_budget