From c7e6803956b0df1e9bdc1179c9e7c644663baaf6 Mon Sep 17 00:00:00 2001 From: Nik Bougalis Date: Fri, 4 Feb 2022 18:39:41 -0800 Subject: [PATCH] Simplify LedgerMaster: - Eliminate `tune` member function and allow `LedgerHistory` to fully initialize itself. --- src/ripple/app/ledger/LedgerHistory.cpp | 19 ++----------------- src/ripple/app/ledger/LedgerHistory.h | 7 ------- src/ripple/app/ledger/LedgerMaster.h | 2 -- src/ripple/app/ledger/impl/LedgerMaster.cpp | 11 +++-------- src/ripple/app/main/Application.cpp | 7 ------- src/ripple/core/impl/Config.cpp | 4 ++-- src/ripple/rpc/handlers/LedgerAccept.cpp | 3 +-- src/test/rpc/LedgerRequestRPC_test.cpp | 6 ++++-- 8 files changed, 12 insertions(+), 47 deletions(-) diff --git a/src/ripple/app/ledger/LedgerHistory.cpp b/src/ripple/app/ledger/LedgerHistory.cpp index f407b2064ea..53c723e1469 100644 --- a/src/ripple/app/ledger/LedgerHistory.cpp +++ b/src/ripple/app/ledger/LedgerHistory.cpp @@ -26,14 +26,6 @@ namespace ripple { -// VFALCO TODO replace macros - -#ifndef CACHED_LEDGER_NUM -#define CACHED_LEDGER_NUM 96 -#endif - -std::chrono::seconds constexpr CachedLedgerAge = std::chrono::minutes{2}; - // FIXME: Need to clean up ledgers by index at some point LedgerHistory::LedgerHistory( @@ -44,8 +36,8 @@ LedgerHistory::LedgerHistory( , mismatch_counter_(collector->make_counter("ledger.history", "mismatch")) , m_ledgers_by_hash( "LedgerCache", - CACHED_LEDGER_NUM, - CachedLedgerAge, + app_.config().getValueFor(SizedItem::ledgerSize), + std::chrono::seconds{app_.config().getValueFor(SizedItem::ledgerAge)}, stopwatch(), app_.journal("TaggedCache")) , m_consensus_validated( @@ -523,13 +515,6 @@ LedgerHistory::fixIndex(LedgerIndex ledgerIndex, LedgerHash const& ledgerHash) return true; } -void -LedgerHistory::tune(int size, std::chrono::seconds age) -{ - m_ledgers_by_hash.setTargetSize(size); - m_ledgers_by_hash.setTargetAge(age); -} - void LedgerHistory::clearLedgerCachePrior(LedgerIndex seq) { diff --git a/src/ripple/app/ledger/LedgerHistory.h b/src/ripple/app/ledger/LedgerHistory.h index f8d4318dbea..be5c559beed 100644 --- a/src/ripple/app/ledger/LedgerHistory.h +++ b/src/ripple/app/ledger/LedgerHistory.h @@ -70,13 +70,6 @@ class LedgerHistory LedgerHash getLedgerHash(LedgerIndex ledgerIndex); - /** Set the history cache's parameters - @param size The target size of the cache - @param age The target age of the cache, in seconds - */ - void - tune(int size, std::chrono::seconds age); - /** Remove stale cache entries */ void diff --git a/src/ripple/app/ledger/LedgerMaster.h b/src/ripple/app/ledger/LedgerMaster.h index dbb01f54a4c..802df8eb5cb 100644 --- a/src/ripple/app/ledger/LedgerMaster.h +++ b/src/ripple/app/ledger/LedgerMaster.h @@ -219,8 +219,6 @@ class LedgerMaster : public AbstractFetchPackContainer bool getFullValidatedRange(std::uint32_t& minVal, std::uint32_t& maxVal); - void - tune(int size, std::chrono::seconds age); void sweep(); float diff --git a/src/ripple/app/ledger/impl/LedgerMaster.cpp b/src/ripple/app/ledger/impl/LedgerMaster.cpp index cea77c62147..3bae67f655d 100644 --- a/src/ripple/app/ledger/impl/LedgerMaster.cpp +++ b/src/ripple/app/ledger/impl/LedgerMaster.cpp @@ -1624,7 +1624,8 @@ LedgerMaster::newPFWork( const char* name, std::unique_lock&) { - if (mPathFindThread < 2 && app_.getPathRequests().requestsPending()) + if (!app_.isStopping() && mPathFindThread < 2 && + app_.getPathRequests().requestsPending()) { JLOG(m_journal.debug()) << "newPFWork: Creating job. path find threads: " @@ -1868,12 +1869,6 @@ LedgerMaster::setLedgerRangePresent(std::uint32_t minV, std::uint32_t maxV) mCompleteLedgers.insert(range(minV, maxV)); } -void -LedgerMaster::tune(int size, std::chrono::seconds age) -{ - mLedgerHistory.tune(size, age); -} - void LedgerMaster::sweep() { @@ -2114,7 +2109,7 @@ LedgerMaster::doAdvance(std::unique_lock& sl) { JLOG(m_journal.trace()) << "tryAdvance found " << pubLedgers.size() << " ledgers to publish"; - for (auto ledger : pubLedgers) + for (auto const& ledger : pubLedgers) { { ScopedUnlock sul{sl}; diff --git a/src/ripple/app/main/Application.cpp b/src/ripple/app/main/Application.cpp index be64a35cd85..2256ee31ba9 100644 --- a/src/ripple/app/main/Application.cpp +++ b/src/ripple/app/main/Application.cpp @@ -962,13 +962,6 @@ class ApplicationImp : public Application, public BasicApp << "' took " << elapsed.count() << " seconds."; } - // tune caches - using namespace std::chrono; - - m_ledgerMaster->tune( - config_->getValueFor(SizedItem::ledgerSize), - seconds{config_->getValueFor(SizedItem::ledgerAge)}); - return true; } diff --git a/src/ripple/core/impl/Config.cpp b/src/ripple/core/impl/Config.cpp index 1595f8831c4..e53d9688392 100644 --- a/src/ripple/core/impl/Config.cpp +++ b/src/ripple/core/impl/Config.cpp @@ -119,8 +119,8 @@ sizedItems {SizedItem::sweepInterval, {{ 10, 30, 60, 90, 120 }}}, {SizedItem::treeCacheSize, {{ 262144, 524288, 2097152, 4194304, 8388608 }}}, {SizedItem::treeCacheAge, {{ 30, 60, 90, 120, 900 }}}, - {SizedItem::ledgerSize, {{ 32, 128, 256, 384, 768 }}}, - {SizedItem::ledgerAge, {{ 30, 90, 180, 240, 900 }}}, + {SizedItem::ledgerSize, {{ 32, 32, 64, 256, 384 }}}, + {SizedItem::ledgerAge, {{ 30, 60, 180, 300, 600 }}}, {SizedItem::ledgerFetch, {{ 2, 3, 4, 5, 8 }}}, {SizedItem::hashNodeDBCache, {{ 4, 12, 24, 64, 128 }}}, {SizedItem::txnDBCache, {{ 4, 12, 24, 64, 128 }}}, diff --git a/src/ripple/rpc/handlers/LedgerAccept.cpp b/src/ripple/rpc/handlers/LedgerAccept.cpp index 77a3c22286d..3a01a3950e1 100644 --- a/src/ripple/rpc/handlers/LedgerAccept.cpp +++ b/src/ripple/rpc/handlers/LedgerAccept.cpp @@ -34,7 +34,6 @@ namespace ripple { Json::Value doLedgerAccept(RPC::JsonContext& context) { - std::unique_lock lock{context.app.getMasterMutex()}; Json::Value jvResult; if (!context.app.config().standalone() || context.app.config().reporting()) @@ -43,8 +42,8 @@ doLedgerAccept(RPC::JsonContext& context) } else { + std::unique_lock lock{context.app.getMasterMutex()}; context.netOps.acceptLedger(); - jvResult[jss::ledger_current_index] = context.ledgerMaster.getCurrentLedgerIndex(); } diff --git a/src/test/rpc/LedgerRequestRPC_test.cpp b/src/test/rpc/LedgerRequestRPC_test.cpp index 0896dadd514..de2ddeff8e4 100644 --- a/src/test/rpc/LedgerRequestRPC_test.cpp +++ b/src/test/rpc/LedgerRequestRPC_test.cpp @@ -318,9 +318,11 @@ class LedgerRequestRPC_test : public beast::unit_test::suite { using namespace test::jtx; using namespace std::chrono_literals; - Env env{*this}; + Env env{*this, envconfig([](std::unique_ptr cfg) { + cfg->NODE_SIZE = 0; + return cfg; + })}; Account const gw{"gateway"}; - env.app().getLedgerMaster().tune(0, 1h); auto const USD = gw["USD"]; env.fund(XRP(100000), gw);