From 6b6befeb435a5ba42c419dee6e41632b335abdc7 Mon Sep 17 00:00:00 2001 From: Sherry Xiao Date: Thu, 11 Aug 2022 13:38:11 -0700 Subject: [PATCH] [storage][pruner] Fix the config to enable ledger pruner (#2814) (#2828) Co-authored-by: zcc <107430656+zcchahaha@users.noreply.github.com> --- storage/aptosdb/src/aptosdb_test.rs | 38 ++++++++++++++++++- .../src/pruner/ledger_pruner_manager.rs | 2 +- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/storage/aptosdb/src/aptosdb_test.rs b/storage/aptosdb/src/aptosdb_test.rs index ac56fbde42e3e..6ef60abed2a85 100644 --- a/storage/aptosdb/src/aptosdb_test.rs +++ b/storage/aptosdb/src/aptosdb_test.rs @@ -12,7 +12,7 @@ use crate::{ }, test_helper, test_helper::{arb_blocks_to_commit, put_as_state_root, put_transaction_info}, - AptosDB, ROCKSDB_PROPERTIES, + AptosDB, PrunerManager, ROCKSDB_PROPERTIES, }; use aptos_config::config::StoragePrunerConfig; use aptos_crypto::{hash::CryptoHash, HashValue}; @@ -81,6 +81,42 @@ fn test_too_many_requested() { assert!(db.get_transaction_outputs(0, 1001 /* limit */, 0).is_err()); } +#[test] +fn test_storage_config() { + let tmp_dir = TempPath::new(); + let aptos_db = AptosDB::new_for_test(&tmp_dir); + let state_pruner = StatePrunerManager::new( + Arc::clone(&aptos_db.state_merkle_db), + StoragePrunerConfig { + enable_state_store_pruner: false, + enable_ledger_pruner: true, + state_store_prune_window: 20, + ledger_prune_window: 100, + ledger_pruning_batch_size: 1, + state_store_pruning_batch_size: 1, + user_pruning_window_offset: 0, + }, + ); + + assert_eq!(state_pruner.is_pruner_enabled(), false); + assert_eq!(state_pruner.get_pruner_window(), 20); + + let ledger_pruner = LedgerPrunerManager::new( + Arc::clone(&aptos_db.ledger_db), + StoragePrunerConfig { + enable_state_store_pruner: true, + enable_ledger_pruner: true, + state_store_prune_window: 20, + ledger_prune_window: 100, + ledger_pruning_batch_size: 1, + state_store_pruning_batch_size: 1, + user_pruning_window_offset: 0, + }, + ); + assert_eq!(ledger_pruner.is_pruner_enabled(), true); + assert_eq!(ledger_pruner.get_pruner_window(), 100); +} + #[test] fn test_error_if_version_is_pruned() { let tmp_dir = TempPath::new(); diff --git a/storage/aptosdb/src/pruner/ledger_pruner_manager.rs b/storage/aptosdb/src/pruner/ledger_pruner_manager.rs index 72128961ad43a..25ae8505e2e47 100644 --- a/storage/aptosdb/src/pruner/ledger_pruner_manager.rs +++ b/storage/aptosdb/src/pruner/ledger_pruner_manager.rs @@ -178,7 +178,7 @@ impl LedgerPrunerManager { let min_readable_version = ledger_pruner.min_readable_version(); Self { - pruner_enabled: storage_pruner_config.enable_state_store_pruner, + pruner_enabled: storage_pruner_config.enable_ledger_pruner, prune_window: storage_pruner_config.ledger_prune_window, pruner: ledger_pruner, worker_thread: ledger_pruner_worker_thread,