落盘机制修改
This commit is contained in:
@@ -56,6 +56,7 @@ static void set_default_config(AppConfig *cfg)
|
||||
cfg->mode = MODE_MASTER;
|
||||
cfg->master_port = 8888;
|
||||
cfg->persistence = PERSIST_NONE;
|
||||
cfg->oplog_sync_mode = OPLOG_SYNC_NONE;
|
||||
cfg->allocator = ALLOC_JEMALLOC;
|
||||
cfg->leak_mode = MEMLEAK_DETECT_OFF;
|
||||
cfg->replica_mode = REPLICA_DISABLE;
|
||||
@@ -87,6 +88,16 @@ static void parse_persistence(const char *s, PersistenceType *out)
|
||||
else if (!strcasecmp(s, "none")) *out = PERSIST_NONE;
|
||||
}
|
||||
|
||||
static void parse_oplog_sync_mode(const char *s, OplogSyncMode *out)
|
||||
{
|
||||
if (!s || !out) return;
|
||||
if (!strcasecmp(s, "every_sec") || !strcasecmp(s, "everysec")) {
|
||||
*out = OPLOG_SYNC_EVERY_SEC;
|
||||
} else if (!strcasecmp(s, "none")) {
|
||||
*out = OPLOG_SYNC_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
static void parse_allocator(const char *s, AllocatorType *out)
|
||||
{
|
||||
if (!s || !out) return;
|
||||
@@ -188,6 +199,15 @@ const char *persistence_to_string(PersistenceType p)
|
||||
}
|
||||
}
|
||||
|
||||
const char *oplog_sync_mode_to_string(OplogSyncMode m)
|
||||
{
|
||||
switch (m) {
|
||||
case OPLOG_SYNC_NONE: return "none";
|
||||
case OPLOG_SYNC_EVERY_SEC: return "every_sec";
|
||||
default: return "unknown";
|
||||
}
|
||||
}
|
||||
|
||||
const char *allocator_to_string(AllocatorType a)
|
||||
{
|
||||
switch (a) {
|
||||
@@ -337,6 +357,15 @@ void persist_load(xmlNodePtr *root, AppConfig *out_cfg){
|
||||
}
|
||||
}
|
||||
|
||||
xmlNodePtr oplog_sync_node = find_child(pers, "oplog_sync");
|
||||
if (oplog_sync_node) {
|
||||
xmlChar *txt = xmlNodeGetContent(oplog_sync_node);
|
||||
if (txt) {
|
||||
parse_oplog_sync_mode((char *)txt, &out_cfg->oplog_sync_mode);
|
||||
xmlFree(txt);
|
||||
}
|
||||
}
|
||||
|
||||
xmlNodePtr array_node = find_child(pers, "array");
|
||||
if (array_node) {
|
||||
xmlChar *txt = xmlNodeGetContent(array_node);
|
||||
|
||||
Reference in New Issue
Block a user