mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Parallel ledger loader & I/O performance improvements:
- Only duplicate records from archive to writable during online_delete. - Log duration of nodestore reads. - Include nodestore counters in perf_log output. - Remove gratuitous nodestore activity counting. - Report initial sync duration in server_info and perfLog. - Report state_accounting in perfLog. - Make state_accounting durations more accurate. - Parallel ledger loader. - Config parameter to load ledgers on start.
This commit is contained in:
committed by
Nik Bougalis
parent
5a4654a0da
commit
7c12f01358
@@ -279,6 +279,7 @@ public:
|
||||
perf::setup_PerfLog(
|
||||
config_->section("perf"),
|
||||
config_->CONFIG_DIR),
|
||||
*this,
|
||||
logs_->journal("PerfLog"),
|
||||
[this] { signalStop(); }))
|
||||
|
||||
@@ -1312,6 +1313,7 @@ ApplicationImp::setup()
|
||||
Pathfinder::initPathTable();
|
||||
|
||||
auto const startUp = config_->START_UP;
|
||||
JLOG(m_journal.debug()) << "startUp: " << startUp;
|
||||
if (!config_->reporting())
|
||||
{
|
||||
if (startUp == Config::FRESH)
|
||||
@@ -1333,7 +1335,18 @@ ApplicationImp::setup()
|
||||
{
|
||||
JLOG(m_journal.error())
|
||||
<< "The specified ledger could not be loaded.";
|
||||
return false;
|
||||
if (config_->FAST_LOAD)
|
||||
{
|
||||
// Fall back to syncing from the network, such as
|
||||
// when there's no existing data.
|
||||
if (startUp == Config::NETWORK && !config_->standalone())
|
||||
m_networkOPs->setNeedNetworkLedger();
|
||||
startGenesisLedger();
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (startUp == Config::NETWORK)
|
||||
@@ -2007,7 +2020,7 @@ ApplicationImp::loadOldLedger(
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!loadLedger->walkLedger(journal("Ledger")))
|
||||
if (!loadLedger->walkLedger(journal("Ledger"), true))
|
||||
{
|
||||
JLOG(m_journal.fatal()) << "Ledger is missing nodes.";
|
||||
assert(false);
|
||||
|
||||
Reference in New Issue
Block a user