mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-25 21:45:52 +00:00
Separate ledger publish logic so we can tell if clients are overloading us.
This commit is contained in:
@@ -23,8 +23,9 @@ const char* Job::toString(JobType t)
|
||||
case jtCLIENT: return "clientCommand";
|
||||
case jtPEER: return "peerCommand";
|
||||
case jtDISK: return "diskAccess";
|
||||
case jtLEDGER: return "acceptLedger";
|
||||
case jtRPC: return "rpc";
|
||||
case jtACCEPTLEDGER: return "acceptLedger";
|
||||
case jtPUBLEDGER: return "pubLedger";
|
||||
default: assert(false); return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,11 @@ enum JobType
|
||||
jtCLIENT = 10,
|
||||
jtPEER = 11,
|
||||
jtDISK = 12,
|
||||
jtLEDGER = 13,
|
||||
jtRPC = 14,
|
||||
jtRPC = 13,
|
||||
jtACCEPTLEDGER = 14,
|
||||
jtPUBLEDGER = 15,
|
||||
};
|
||||
#define NUM_JOB_TYPES 16
|
||||
#define NUM_JOB_TYPES 24
|
||||
|
||||
class Job
|
||||
{
|
||||
|
||||
@@ -439,6 +439,7 @@ void Ledger::saveAcceptedLedger(bool fromConsensus)
|
||||
}
|
||||
|
||||
theApp->getMasterLedger().setFullLedger(shared_from_this());
|
||||
event = LoadEvent::pointer();
|
||||
|
||||
theApp->getOPs().pubLedger(shared_from_this());
|
||||
|
||||
|
||||
@@ -1027,7 +1027,7 @@ void LedgerConsensus::beginAccept(bool synchronous)
|
||||
else
|
||||
{
|
||||
theApp->getIOService().post(boost::bind(&LedgerConsensus::accept, shared_from_this(), consensusSet,
|
||||
theApp->getJobQueue().getLoadEvent(jtLEDGER)));
|
||||
theApp->getJobQueue().getLoadEvent(jtACCEPTLEDGER)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1002,6 +1002,8 @@ void NetworkOPs::pubLedger(Ledger::ref lpAccepted)
|
||||
if (NetworkOPs::omDISCONNECTED == getOperatingMode())
|
||||
return;
|
||||
|
||||
LoadEvent::pointer event = theApp->getJobQueue().getLoadEvent(jtPUBLEDGER);
|
||||
|
||||
{
|
||||
boost::interprocess::sharable_lock<boost::interprocess::interprocess_upgradable_mutex> sl(mMonitorLock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user