Make sure all fee schedule changes are reported to clients.

This commit is contained in:
JoelKatz
2013-02-11 14:50:15 -08:00
parent 4261b1c2d0
commit d0e85ff4b4
4 changed files with 34 additions and 13 deletions

View File

@@ -242,7 +242,7 @@ void LoadFeeTrack::setRemoteFee(uint32 f)
mRemoteTxnLoadFee = f;
}
void LoadFeeTrack::raiseLocalFee()
bool LoadFeeTrack::raiseLocalFee()
{
boost::mutex::scoped_lock sl(mLock);
uint32 origFee = mLocalTxnLoadFee;
@@ -255,11 +255,13 @@ void LoadFeeTrack::raiseLocalFee()
if (mLocalTxnLoadFee > lftFeeMax)
mLocalTxnLoadFee = lftFeeMax;
tLog(origFee != mLocalTxnLoadFee, lsDEBUG) <<
"Local load fee raised from " << origFee << " to " << mLocalTxnLoadFee;
if (origFee == mLocalTxnLoadFee)
return false;
cLog(lsDEBUG) << "Local load fee raised from " << origFee << " to " << mLocalTxnLoadFee;
return true;
}
void LoadFeeTrack::lowerLocalFee()
bool LoadFeeTrack::lowerLocalFee()
{
boost::mutex::scoped_lock sl(mLock);
uint32 origFee = mLocalTxnLoadFee;
@@ -269,8 +271,10 @@ void LoadFeeTrack::lowerLocalFee()
if (mLocalTxnLoadFee < lftNormalFee)
mLocalTxnLoadFee = lftNormalFee;
tLog(origFee != mLocalTxnLoadFee, lsDEBUG) <<
"Local load fee lowered from " << origFee << " to " << mLocalTxnLoadFee;
if (origFee == mLocalTxnLoadFee)
return false;
cLog(lsDEBUG) << "Local load fee lowered from " << origFee << " to " << mLocalTxnLoadFee;
return true;
}
Json::Value LoadFeeTrack::getJson(uint64 baseFee, uint32 referenceFeeUnits)
@@ -312,10 +316,13 @@ void LoadManager::threadEntry()
++mUptime;
}
bool change;
if (theApp->getJobQueue().isOverloaded())
theApp->getFeeTrack().raiseLocalFee();
change = theApp->getFeeTrack().raiseLocalFee();
else
theApp->getFeeTrack().lowerLocalFee();
change = theApp->getFeeTrack().lowerLocalFee();
if (change)
theApp->getOPs().reportFeeChange();
t += boost::posix_time::seconds(1);
boost::posix_time::time_duration when = t - boost::posix_time::microsec_clock::universal_time();