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 // storage engines
server.addFeature(new MMFilesEngine(&server)); server.addFeature(new MMFilesEngine(&server));
//server.addFeature(new RocksDBEngine(&server)); server.addFeature(new RocksDBEngine(&server));
try { try {
server.run(argc, argv); server.run(argc, argv);

View File

@ -56,7 +56,7 @@ void EngineSelectorFeature::prepare() {
if (engine == _engine) { if (engine == _engine) {
// this is the selected 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(); e->enable();
// register storage engine // register storage engine
@ -79,7 +79,6 @@ void EngineSelectorFeature::unprepare() {
// return all available storage engines // return all available storage engines
std::unordered_set<std::string> EngineSelectorFeature::availableEngines() { std::unordered_set<std::string> EngineSelectorFeature::availableEngines() {
return std::unordered_set<std::string>{ 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 // create the storage engine
RocksDBEngine::RocksDBEngine(application_features::ApplicationServer* server) RocksDBEngine::RocksDBEngine(application_features::ApplicationServer* server)
: StorageEngine(server, EngineName) { : StorageEngine(server, EngineName) {
TRI_ASSERT(false);
} }
RocksDBEngine::~RocksDBEngine() { RocksDBEngine::~RocksDBEngine() {

View File

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

View File

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