Merge branch 'keydbpro' into PRO_RELEASE_6
Former-commit-id: ad5a015388a3180bcbfefebf106a1a56e304e380
This commit is contained in:
commit
56d10420a2
@ -298,39 +298,49 @@ sds g_sdsArgs = nullptr;
|
|||||||
|
|
||||||
bool initializeStorageProvider(const char **err)
|
bool initializeStorageProvider(const char **err)
|
||||||
{
|
{
|
||||||
bool fTest = false;
|
try
|
||||||
if (g_sdsProvider == nullptr)
|
|
||||||
return true;
|
|
||||||
if (!strcasecmp(g_sdsProvider, "flash") && g_sdsArgs != nullptr)
|
|
||||||
{
|
{
|
||||||
// Create The Storage Factory (if necessary)
|
bool fTest = false;
|
||||||
g_pserver->m_pstorageFactory = CreateRocksDBStorageFactory(g_sdsArgs, cserver.dbnum);
|
if (g_sdsProvider == nullptr)
|
||||||
}
|
return true;
|
||||||
else if (!strcasecmp(g_sdsProvider, "test") && g_sdsArgs == nullptr)
|
if (!strcasecmp(g_sdsProvider, "flash") && g_sdsArgs != nullptr)
|
||||||
{
|
|
||||||
g_pserver->m_pstorageFactory = new (MALLOC_LOCAL) TestStorageFactory();
|
|
||||||
fTest = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_pserver->m_pstorageFactory != nullptr && !fTest)
|
|
||||||
{
|
|
||||||
// We need to set max memory to a sane default so keys are actually evicted properly
|
|
||||||
if (g_pserver->maxmemory == 0 && g_pserver->maxmemory_policy == MAXMEMORY_NO_EVICTION)
|
|
||||||
{
|
{
|
||||||
struct sysinfo sys;
|
// Create The Storage Factory (if necessary)
|
||||||
if (sysinfo(&sys) == 0)
|
g_pserver->m_pstorageFactory = CreateRocksDBStorageFactory(g_sdsArgs, cserver.dbnum);
|
||||||
|
}
|
||||||
|
else if (!strcasecmp(g_sdsProvider, "test") && g_sdsArgs == nullptr)
|
||||||
|
{
|
||||||
|
g_pserver->m_pstorageFactory = new (MALLOC_LOCAL) TestStorageFactory();
|
||||||
|
fTest = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (g_pserver->m_pstorageFactory != nullptr && !fTest)
|
||||||
|
{
|
||||||
|
// We need to set max memory to a sane default so keys are actually evicted properly
|
||||||
|
if (g_pserver->maxmemory == 0 && g_pserver->maxmemory_policy == MAXMEMORY_NO_EVICTION)
|
||||||
{
|
{
|
||||||
// By default it's half the memory. This gives sufficient room for background saving
|
struct sysinfo sys;
|
||||||
g_pserver->maxmemory = sys.totalram / 2;
|
if (sysinfo(&sys) == 0)
|
||||||
g_pserver->maxmemory_policy = MAXMEMORY_ALLKEYS_LRU;
|
{
|
||||||
|
// By default it's half the memory. This gives sufficient room for background saving
|
||||||
|
g_pserver->maxmemory = sys.totalram / 2;
|
||||||
|
g_pserver->maxmemory_policy = MAXMEMORY_ALLKEYS_LRU;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*err = "Unknown storage provider";
|
||||||
|
}
|
||||||
|
return g_pserver->m_pstorageFactory != nullptr;
|
||||||
}
|
}
|
||||||
else
|
catch(std::string str)
|
||||||
{
|
{
|
||||||
*err = "Unknown storage provider";
|
serverLog(LL_WARNING, "ERROR: Failed to initialize %s storage provider. Details to follow below.", g_sdsProvider);
|
||||||
|
serverLog(LL_WARNING, "\t%s", str.c_str());
|
||||||
|
serverLog(LL_WARNING, "KeyDB cannot start. Exiting.");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
return g_pserver->m_pstorageFactory != nullptr;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void initConfigValues() {
|
void initConfigValues() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user