Implement the ephemeral cache.

This commit is contained in:
JoelKatz
2013-06-05 10:25:03 -07:00
parent cc0b9ad01c
commit b7920f40b7
6 changed files with 123 additions and 39 deletions

View File

@@ -54,7 +54,7 @@ Application::Application() :
mFeatureTable(2 * 7 * 24 * 60 * 60, 200), // two weeks, 200/256
mRpcDB(NULL), mTxnDB(NULL), mLedgerDB(NULL), mWalletDB(NULL),
mNetNodeDB(NULL), mPathFindDB(NULL), mHashNodeDB(NULL), mHashNodeLDB(NULL),
mNetNodeDB(NULL), mPathFindDB(NULL), mHashNodeDB(NULL), mHashNodeLDB(NULL), mEphemeralLDB(NULL),
mConnectionPool(mIOService), mPeerDoor(NULL), mRPCDoor(NULL), mWSPublicDoor(NULL), mWSPrivateDoor(NULL),
mSweepTimer(mAuxService), mShutdown(false)
{
@@ -82,6 +82,9 @@ void Application::stop()
delete mHashNodeLDB;
mHashNodeLDB = NULL;
delete mEphemeralLDB;
mEphemeralLDB = NULL;
WriteLog (lsINFO, Application) << "Stopped: " << mIOService.stopped();
Instance::shutdown();
}
@@ -176,6 +179,18 @@ void Application::setup()
StopSustain();
exit(3);
}
if (!theConfig.LDB_EPHEMERAL.empty())
{
leveldb::Status status = leveldb::DB::Open(options, theConfig.LDB_EPHEMERAL, &mEphemeralLDB);
if (!status.ok() || !mEphemeralLDB)
{
WriteLog(lsFATAL, Application) << "Unable to open/create epehemeral db: "
<< theConfig.LDB_EPHEMERAL << " " << status.ToString();
StopSustain();
exit(3);
}
}
}
else
{
@@ -404,6 +419,7 @@ Application::~Application()
delete mNetNodeDB;
delete mPathFindDB;
delete mHashNodeLDB;
delete mEphemeralLDB;
}
void Application::startNewLedger()