mirror of
https://github.com/XRPLF/rippled.git
synced 2025-11-26 05:55:51 +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 jtCLIENT: return "clientCommand";
|
||||||
case jtPEER: return "peerCommand";
|
case jtPEER: return "peerCommand";
|
||||||
case jtDISK: return "diskAccess";
|
case jtDISK: return "diskAccess";
|
||||||
case jtLEDGER: return "acceptLedger";
|
|
||||||
case jtRPC: return "rpc";
|
case jtRPC: return "rpc";
|
||||||
|
case jtACCEPTLEDGER: return "acceptLedger";
|
||||||
|
case jtPUBLEDGER: return "pubLedger";
|
||||||
default: assert(false); return "unknown";
|
default: assert(false); return "unknown";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,10 +36,11 @@ enum JobType
|
|||||||
jtCLIENT = 10,
|
jtCLIENT = 10,
|
||||||
jtPEER = 11,
|
jtPEER = 11,
|
||||||
jtDISK = 12,
|
jtDISK = 12,
|
||||||
jtLEDGER = 13,
|
jtRPC = 13,
|
||||||
jtRPC = 14,
|
jtACCEPTLEDGER = 14,
|
||||||
|
jtPUBLEDGER = 15,
|
||||||
};
|
};
|
||||||
#define NUM_JOB_TYPES 16
|
#define NUM_JOB_TYPES 24
|
||||||
|
|
||||||
class Job
|
class Job
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -439,6 +439,7 @@ void Ledger::saveAcceptedLedger(bool fromConsensus)
|
|||||||
}
|
}
|
||||||
|
|
||||||
theApp->getMasterLedger().setFullLedger(shared_from_this());
|
theApp->getMasterLedger().setFullLedger(shared_from_this());
|
||||||
|
event = LoadEvent::pointer();
|
||||||
|
|
||||||
theApp->getOPs().pubLedger(shared_from_this());
|
theApp->getOPs().pubLedger(shared_from_this());
|
||||||
|
|
||||||
|
|||||||
@@ -1027,7 +1027,7 @@ void LedgerConsensus::beginAccept(bool synchronous)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
theApp->getIOService().post(boost::bind(&LedgerConsensus::accept, shared_from_this(), consensusSet,
|
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())
|
if (NetworkOPs::omDISCONNECTED == getOperatingMode())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
LoadEvent::pointer event = theApp->getJobQueue().getLoadEvent(jtPUBLEDGER);
|
||||||
|
|
||||||
{
|
{
|
||||||
boost::interprocess::sharable_lock<boost::interprocess::interprocess_upgradable_mutex> sl(mMonitorLock);
|
boost::interprocess::sharable_lock<boost::interprocess::interprocess_upgradable_mutex> sl(mMonitorLock);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user