mirror of https://gitee.com/bigwinds/arangodb
fix engine selection and feature start/stop
This commit is contained in:
parent
acb187851f
commit
58da24b1a6
|
@ -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);
|
||||||
|
|
|
@ -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
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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();
|
||||||
|
|
Loading…
Reference in New Issue