1
0
Fork 0

fix engine selection and feature start/stop

This commit is contained in:
jsteemann 2016-11-17 15:58:42 +01:00
parent acb187851f
commit 58da24b1a6
5 changed files with 14 additions and 5 deletions

View File

@ -183,7 +183,7 @@ static int runServer(int argc, char** argv) {
// storage engines
server.addFeature(new MMFilesEngine(&server));
//server.addFeature(new RocksDBEngine(&server));
server.addFeature(new RocksDBEngine(&server));
try {
server.run(argc, argv);

View File

@ -56,7 +56,7 @@ void EngineSelectorFeature::prepare() {
if (engine == _engine) {
// this is the selected engine
LOG_TOPIC(TRACE, Logger::STARTUP) << "enabling storage engine " << engine;
LOG_TOPIC(TRACE, Logger::STARTUP) << "using storage engine " << engine;
e->enable();
// register storage engine
@ -79,7 +79,6 @@ void EngineSelectorFeature::unprepare() {
// return all available storage engines
std::unordered_set<std::string> EngineSelectorFeature::availableEngines() {
return std::unordered_set<std::string>{
MMFilesEngine::EngineName
// MMFilesEngine::EngineName, RocksDBEngine::EngineName
MMFilesEngine::EngineName, RocksDBEngine::EngineName
};
}

View File

@ -52,7 +52,6 @@ std::string const RocksDBEngine::EngineName("RocksDB");
// create the storage engine
RocksDBEngine::RocksDBEngine(application_features::ApplicationServer* server)
: StorageEngine(server, EngineName) {
TRI_ASSERT(false);
}
RocksDBEngine::~RocksDBEngine() {

View File

@ -73,6 +73,7 @@ void RevisionCacheChunkAllocator::startGcThread() {
}
void RevisionCacheChunkAllocator::stopGcThread() {
_gcThread->beginShutdown();
while (_gcThread->isRunning()) {
usleep(10000);
}

View File

@ -522,6 +522,10 @@ void ApplicationServer::start() {
bool abortStartup = false;
for (auto feature : _orderedFeatures) {
if (!feature->isEnabled()) {
continue;
}
LOG_TOPIC(TRACE, Logger::STARTUP) << feature->name() << "::start";
try {
@ -543,6 +547,9 @@ void ApplicationServer::start() {
for (auto it = _orderedFeatures.rbegin(); it != _orderedFeatures.rend();
++it) {
auto feature = *it;
if (!feature->isEnabled()) {
continue;
}
if (feature->state() == FeatureState::STARTED) {
LOG(TRACE) << "forcefully stopping feature '" << feature->name() << "'";
try {
@ -579,6 +586,9 @@ void ApplicationServer::stop() {
for (auto it = _orderedFeatures.rbegin(); it != _orderedFeatures.rend();
++it) {
auto feature = *it;
if (!feature->isEnabled()) {
continue;
}
LOG_TOPIC(TRACE, Logger::STARTUP) << feature->name() << "::stop";
feature->stop();