diff --git a/src/cpp/ripple/AcceptedLedger.h b/src/cpp/ripple/AcceptedLedger.h index f8de68739..25adc64f8 100644 --- a/src/cpp/ripple/AcceptedLedger.h +++ b/src/cpp/ripple/AcceptedLedger.h @@ -70,6 +70,8 @@ public: int getLedgerSeq() const { return mLedger->getLedgerSeq(); } int getTxnCount() const { return mMap.size(); } + static float getCacheHitRate() { return ALCache.getHitRate(); } + ALTransaction::pointer getTxn(int) const; }; diff --git a/src/cpp/ripple/HashedObject.h b/src/cpp/ripple/HashedObject.h index cfc712f13..7c2ac27f1 100644 --- a/src/cpp/ripple/HashedObject.h +++ b/src/cpp/ripple/HashedObject.h @@ -65,7 +65,9 @@ public: HashedObjectStore(int cacheSize, int cacheAge); - bool isLevelDB() { return mLevelDB; } + bool isLevelDB() { return mLevelDB; } + + float getCacheHitRate() { return mCache.getHitRate(); } bool store(HashedObjectType type, uint32 index, const std::vector& data, const uint256& hash) diff --git a/src/cpp/ripple/LedgerHistory.h b/src/cpp/ripple/LedgerHistory.h index 9ee0ed9e8..cfb9239c4 100644 --- a/src/cpp/ripple/LedgerHistory.h +++ b/src/cpp/ripple/LedgerHistory.h @@ -15,6 +15,7 @@ public: void addLedger(Ledger::pointer ledger); void addAcceptedLedger(Ledger::pointer ledger, bool fromConsensus); + float getCacheHitRate() { return mLedgersByHash.getHitRate(); } uint256 getLedgerHash(uint32 index); Ledger::pointer getLedgerBySeq(uint32 index); Ledger::pointer getLedgerByHash(const uint256& hash); diff --git a/src/cpp/ripple/LedgerMaster.h b/src/cpp/ripple/LedgerMaster.h index dddffaa42..33b634493 100644 --- a/src/cpp/ripple/LedgerMaster.h +++ b/src/cpp/ripple/LedgerMaster.h @@ -157,8 +157,9 @@ public: void resumeAcquiring(); - void tune(int size, int age) { mLedgerHistory.tune(size, age); } - void sweep(void) { mLedgerHistory.sweep(); } + void tune(int size, int age) { mLedgerHistory.tune(size, age); } + void sweep() { mLedgerHistory.sweep(); } + float getCacheHitRate() { return mLedgerHistory.getCacheHitRate(); } void addValidateCallback(callback& c) { mOnValidate.push_back(c); } diff --git a/src/cpp/ripple/RPCHandler.cpp b/src/cpp/ripple/RPCHandler.cpp index a790dd4fa..cf94b0099 100644 --- a/src/cpp/ripple/RPCHandler.cpp +++ b/src/cpp/ripple/RPCHandler.cpp @@ -2304,6 +2304,11 @@ Json::Value RPCHandler::doGetCounts(Json::Value jvRequest, int& cost, ScopedLock ret["write_load"] = theApp->getHashedObjectStore().getWriteLoad(); + ret["SLE_hit_rate"] = theApp->getSLECache().getHitRate(); + ret["node_hit_rate"] = theApp->getHashedObjectStore().getCacheHitRate(); + ret["ledger_hit_rate"] = theApp->getLedgerMaster().getCacheHitRate(); + ret["AL_hit_rate"] = AcceptedLedger::getCacheHitRate(); + std::string uptime; int s = upTime(); textTime(uptime, s, "year", 365*24*60*60);