storage.conf add parameter check_store_path_mark
parent
5557429899
commit
0551999135
2
HISTORY
2
HISTORY
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
Version 6.03 2019-11-17
|
Version 6.03 2019-11-19
|
||||||
* dual IPs support two different types of inner (intranet) IPs
|
* dual IPs support two different types of inner (intranet) IPs
|
||||||
* storage server request tracker server to change it's status
|
* storage server request tracker server to change it's status
|
||||||
to that of tracker leader when the storage server found
|
to that of tracker leader when the storage server found
|
||||||
|
|
|
||||||
|
|
@ -303,6 +303,14 @@ compress_binlog = false
|
||||||
# since V6.01
|
# since V6.01
|
||||||
compress_binlog_time=01:30
|
compress_binlog_time=01:30
|
||||||
|
|
||||||
|
# if check the mark of store path to prevent confusion
|
||||||
|
# recommend to set this parameter to true
|
||||||
|
# if two storage servers (instances) MUST use a same store path for
|
||||||
|
# some specific purposes, you should set this parameter to false
|
||||||
|
# default value is true
|
||||||
|
# since V6.03
|
||||||
|
check_store_path_mark = true
|
||||||
|
|
||||||
# use the ip address of this storage server if domain_name is empty,
|
# use the ip address of this storage server if domain_name is empty,
|
||||||
# else this domain name will ocur in the url redirected by the tracker server
|
# else this domain name will ocur in the url redirected by the tracker server
|
||||||
http.domain_name=
|
http.domain_name=
|
||||||
|
|
|
||||||
|
|
@ -671,6 +671,8 @@ int storage_write_to_sync_ini_file()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
if (g_check_store_path_mark)
|
||||||
|
{
|
||||||
for (i=0; i<g_fdfs_store_paths.count; i++)
|
for (i=0; i<g_fdfs_store_paths.count; i++)
|
||||||
{
|
{
|
||||||
if (g_fdfs_store_paths.paths[i].mark != NULL)
|
if (g_fdfs_store_paths.paths[i].mark != NULL)
|
||||||
|
|
@ -680,6 +682,7 @@ int storage_write_to_sync_ini_file()
|
||||||
g_fdfs_store_paths.paths[i].mark);
|
g_fdfs_store_paths.paths[i].mark);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ((result=safeWriteToFile(full_filename, buff, len)) != 0)
|
if ((result=safeWriteToFile(full_filename, buff, len)) != 0)
|
||||||
{
|
{
|
||||||
|
|
@ -720,6 +723,11 @@ static int storage_load_store_path_marks(IniContext *pIniContext)
|
||||||
char name[64];
|
char name[64];
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
|
if (!g_check_store_path_mark)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
for (i=0; i<g_fdfs_store_paths.count; i++)
|
for (i=0; i<g_fdfs_store_paths.count; i++)
|
||||||
{
|
{
|
||||||
sprintf(name, "%s%d", INIT_ITEM_STORE_PATH_MARK_PREFIX, i);
|
sprintf(name, "%s%d", INIT_ITEM_STORE_PATH_MARK_PREFIX, i);
|
||||||
|
|
@ -816,6 +824,11 @@ static int storage_check_store_path_mark(const int store_path_index,
|
||||||
char *mark;
|
char *mark;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
|
if (!g_check_store_path_mark)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
snprintf(full_filename, sizeof(full_filename), "%s/data/%s",
|
snprintf(full_filename, sizeof(full_filename), "%s/data/%s",
|
||||||
g_fdfs_store_paths.paths[store_path_index].path,
|
g_fdfs_store_paths.paths[store_path_index].path,
|
||||||
STORE_PATH_MARK_FILENAME);
|
STORE_PATH_MARK_FILENAME);
|
||||||
|
|
@ -928,8 +941,11 @@ static int storage_check_store_path_mark(const int store_path_index,
|
||||||
" create_time: %s }, "
|
" create_time: %s }, "
|
||||||
"if you confirm that it is NOT "
|
"if you confirm that it is NOT "
|
||||||
"used by other storage server, you can delete "
|
"used by other storage server, you can delete "
|
||||||
"the mark file %s then try again", __LINE__,
|
"the mark file %s then try again. if you DON'T "
|
||||||
store_path_index, g_fdfs_store_paths.
|
"really need to check store path mark to prevent "
|
||||||
|
"confusion, you can set the parameter "
|
||||||
|
"check_store_path_mark to false in storage.conf",
|
||||||
|
__LINE__, store_path_index, g_fdfs_store_paths.
|
||||||
paths[store_path_index].path,
|
paths[store_path_index].path,
|
||||||
mark_info.ip_addr, mark_info.port,
|
mark_info.ip_addr, mark_info.port,
|
||||||
mark_info.store_path_index, time_str,
|
mark_info.store_path_index, time_str,
|
||||||
|
|
@ -2064,6 +2080,8 @@ int storage_func_init(const char *filename, \
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_check_store_path_mark = iniGetBoolValue(NULL,
|
||||||
|
"check_store_path_mark", &iniContext, true);
|
||||||
if ((result=fdfs_connection_pool_init(filename, &iniContext)) != 0)
|
if ((result=fdfs_connection_pool_init(filename, &iniContext)) != 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
|
|
@ -2134,7 +2152,8 @@ int storage_func_init(const char *filename, \
|
||||||
"use_connection_pool=%d, " \
|
"use_connection_pool=%d, " \
|
||||||
"g_connection_pool_max_idle_time=%ds, " \
|
"g_connection_pool_max_idle_time=%ds, " \
|
||||||
"compress_binlog=%d, " \
|
"compress_binlog=%d, " \
|
||||||
"compress_binlog_time=%02d:%02d", \
|
"compress_binlog_time=%02d:%02d, " \
|
||||||
|
"check_store_path_mark=%d", \
|
||||||
g_fdfs_version.major, g_fdfs_version.minor, \
|
g_fdfs_version.major, g_fdfs_version.minor, \
|
||||||
g_fdfs_base_path, g_fdfs_store_paths.count, \
|
g_fdfs_base_path, g_fdfs_store_paths.count, \
|
||||||
g_subdir_count_per_path, \
|
g_subdir_count_per_path, \
|
||||||
|
|
@ -2171,7 +2190,7 @@ int storage_func_init(const char *filename, \
|
||||||
g_file_sync_skip_invalid_record, \
|
g_file_sync_skip_invalid_record, \
|
||||||
g_use_connection_pool, g_connection_pool_max_idle_time, \
|
g_use_connection_pool, g_connection_pool_max_idle_time, \
|
||||||
g_compress_binlog, g_compress_binlog_time.hour, \
|
g_compress_binlog, g_compress_binlog_time.hour, \
|
||||||
g_compress_binlog_time.minute);
|
g_compress_binlog_time.minute, g_check_store_path_mark);
|
||||||
|
|
||||||
#ifdef WITH_HTTPD
|
#ifdef WITH_HTTPD
|
||||||
if (!g_http_params.disabled)
|
if (!g_http_params.disabled)
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,7 @@ bool g_storage_ip_changed_auto_adjust = false;
|
||||||
bool g_thread_kill_done = false;
|
bool g_thread_kill_done = false;
|
||||||
bool g_file_sync_skip_invalid_record = false;
|
bool g_file_sync_skip_invalid_record = false;
|
||||||
|
|
||||||
|
bool g_check_store_path_mark = true;
|
||||||
bool g_compress_binlog = false;
|
bool g_compress_binlog = false;
|
||||||
TimeInfo g_compress_binlog_time = {0, 0};
|
TimeInfo g_compress_binlog_time = {0, 0};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,6 +155,7 @@ extern bool g_thread_kill_done;
|
||||||
|
|
||||||
extern bool g_file_sync_skip_invalid_record;
|
extern bool g_file_sync_skip_invalid_record;
|
||||||
|
|
||||||
|
extern bool g_check_store_path_mark;
|
||||||
extern bool g_compress_binlog;
|
extern bool g_compress_binlog;
|
||||||
extern TimeInfo g_compress_binlog_time; //compress binlog time base
|
extern TimeInfo g_compress_binlog_time; //compress binlog time base
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue