add validator flag no-accounts-db-index-hashing (bp #15350) (#15413)

* add validator flag no-accounts-db-index-hashing (#15350)

* add validator flag no_accounts_db_index_hashing

* add validator flag no_accounts_db_index_hashing

(cherry picked from commit ba02452d75)

# Conflicts:
#	runtime/src/accounts_background_service.rs

* fix merge error

Co-authored-by: Jeff Washington (jwash) <75863576+jeffwashington@users.noreply.github.com>
Co-authored-by: Jeff Washington (jwash) <wash678@gmail.com>
This commit is contained in:
mergify[bot]
2021-02-19 21:18:59 +00:00
committed by GitHub
parent 2bfe545438
commit 767c89526a
5 changed files with 29 additions and 8 deletions

View File

@@ -81,6 +81,7 @@ impl SnapshotRequestHandler {
&self,
accounts_db_caching_enabled: bool,
test_hash_calculation: bool,
use_index_hash_calculation: bool,
) -> Option<u64> {
self.snapshot_request_receiver
.try_iter()
@@ -122,9 +123,10 @@ impl SnapshotRequestHandler {
let mut hash_time = Measure::start("hash_time");
let mut hash_for_testing = None;
const USE_INDEX: bool = true;
snapshot_root_bank
.update_accounts_hash_with_index_option(!USE_INDEX, test_hash_calculation);
snapshot_root_bank.update_accounts_hash_with_index_option(
!use_index_hash_calculation,
test_hash_calculation,
);
if test_hash_calculation {
hash_for_testing = Some(snapshot_root_bank.get_accounts_hash());
}
@@ -231,12 +233,16 @@ impl ABSRequestHandler {
&self,
accounts_db_caching_enabled: bool,
test_hash_calculation: bool,
use_index_hash_calculation: bool,
) -> Option<u64> {
self.snapshot_request_handler
.as_ref()
.and_then(|snapshot_request_handler| {
snapshot_request_handler
.handle_snapshot_requests(accounts_db_caching_enabled, test_hash_calculation)
snapshot_request_handler.handle_snapshot_requests(
accounts_db_caching_enabled,
test_hash_calculation,
use_index_hash_calculation,
)
})
}
@@ -262,6 +268,7 @@ impl AccountsBackgroundService {
request_handler: ABSRequestHandler,
accounts_db_caching_enabled: bool,
test_hash_calculation: bool,
use_index_hash_calculation: bool,
) -> Self {
info!("AccountsBackgroundService active");
let exit = exit.clone();
@@ -304,8 +311,11 @@ impl AccountsBackgroundService {
// request for `N` to the snapshot request channel before setting a root `R > N`, and
// snapshot_request_handler.handle_requests() will always look for the latest
// available snapshot in the channel.
let snapshot_block_height = request_handler
.handle_snapshot_requests(accounts_db_caching_enabled, test_hash_calculation);
let snapshot_block_height = request_handler.handle_snapshot_requests(
accounts_db_caching_enabled,
test_hash_calculation,
use_index_hash_calculation,
);
if accounts_db_caching_enabled {
// Note that the flush will do an internal clean of the
// cache up to bank.slot(), so should be safe as long