support alignment size for trunk space allocation
parent
13ba0963a3
commit
f55d8fafc8
1
HISTORY
1
HISTORY
|
|
@ -9,6 +9,7 @@ Version 6.05 2019-12-20
|
||||||
* trunk binlog compression support transaction
|
* trunk binlog compression support transaction
|
||||||
* support backup binlog file when truncate trunk binlog,
|
* support backup binlog file when truncate trunk binlog,
|
||||||
the config item in tracker.conf: trunk_binlog_max_backups
|
the config item in tracker.conf: trunk_binlog_max_backups
|
||||||
|
* support alignment size for trunk space allocation
|
||||||
|
|
||||||
Version 6.04 2019-12-05
|
Version 6.04 2019-12-05
|
||||||
* storage_report_ip_changed ignore result EEXIST
|
* storage_report_ip_changed ignore result EEXIST
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,14 @@ slot_min_size = 256
|
||||||
# store the upload file to trunk file when it's size <= this value
|
# store the upload file to trunk file when it's size <= this value
|
||||||
# default value is 16MB
|
# default value is 16MB
|
||||||
# since V3.00
|
# since V3.00
|
||||||
slot_max_size = 4MB
|
slot_max_size = 1MB
|
||||||
|
|
||||||
|
# the alignment size to allocate the trunk space
|
||||||
|
# default value is 0 (never align)
|
||||||
|
# since V6.05
|
||||||
|
# NOTE: the larger the alignment size, the less likely of disk
|
||||||
|
# fragmentation, but the more space is wasted.
|
||||||
|
trunk_alloc_alignment_size = 512
|
||||||
|
|
||||||
# the trunk file size, should >= 4MB
|
# the trunk file size, should >= 4MB
|
||||||
# default value is 64MB
|
# default value is 64MB
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,13 @@ int storage_get_params_from_tracker()
|
||||||
g_trunk_file_size = iniGetIntValue(NULL, "trunk_file_size",
|
g_trunk_file_size = iniGetIntValue(NULL, "trunk_file_size",
|
||||||
&iniContext, 64 * 1024 * 1024);
|
&iniContext, 64 * 1024 * 1024);
|
||||||
g_slot_max_size = iniGetIntValue(NULL, "slot_max_size",
|
g_slot_max_size = iniGetIntValue(NULL, "slot_max_size",
|
||||||
&iniContext, g_trunk_file_size / 2);
|
&iniContext, g_trunk_file_size / 4);
|
||||||
|
g_trunk_alloc_alignment_size = iniGetIntValue(NULL,
|
||||||
|
"trunk_alloc_alignment_size", &iniContext, 0);
|
||||||
|
if (g_slot_min_size < g_trunk_alloc_alignment_size)
|
||||||
|
{
|
||||||
|
g_slot_min_size = g_trunk_alloc_alignment_size;
|
||||||
|
}
|
||||||
|
|
||||||
g_trunk_create_file_advance = iniGetBoolValue(NULL,
|
g_trunk_create_file_advance = iniGetBoolValue(NULL,
|
||||||
"trunk_create_file_advance", &iniContext, false);
|
"trunk_create_file_advance", &iniContext, false);
|
||||||
|
|
@ -188,7 +194,8 @@ int storage_get_params_from_tracker()
|
||||||
"reserved_storage_space=%s, "
|
"reserved_storage_space=%s, "
|
||||||
"use_trunk_file=%d, "
|
"use_trunk_file=%d, "
|
||||||
"slot_min_size=%d, "
|
"slot_min_size=%d, "
|
||||||
"slot_max_size=%d MB, "
|
"slot_max_size=%d KB, "
|
||||||
|
"trunk_alloc_alignment_size=%d, "
|
||||||
"trunk_file_size=%d MB, "
|
"trunk_file_size=%d MB, "
|
||||||
"trunk_create_file_advance=%d, "
|
"trunk_create_file_advance=%d, "
|
||||||
"trunk_create_file_time_base=%02d:%02d, "
|
"trunk_create_file_time_base=%02d:%02d, "
|
||||||
|
|
@ -207,7 +214,8 @@ int storage_get_params_from_tracker()
|
||||||
g_store_path_mode, fdfs_storage_reserved_space_to_string(
|
g_store_path_mode, fdfs_storage_reserved_space_to_string(
|
||||||
&g_storage_reserved_space, reserved_space_str),
|
&g_storage_reserved_space, reserved_space_str),
|
||||||
g_if_use_trunk_file, g_slot_min_size,
|
g_if_use_trunk_file, g_slot_min_size,
|
||||||
g_slot_max_size / FDFS_ONE_MB,
|
g_slot_max_size / 1024,
|
||||||
|
g_trunk_alloc_alignment_size,
|
||||||
g_trunk_file_size / FDFS_ONE_MB,
|
g_trunk_file_size / FDFS_ONE_MB,
|
||||||
g_trunk_create_file_advance,
|
g_trunk_create_file_advance,
|
||||||
g_trunk_create_file_time_base.hour,
|
g_trunk_create_file_time_base.hour,
|
||||||
|
|
|
||||||
|
|
@ -42,9 +42,10 @@
|
||||||
#define STORAGE_TRUNK_INIT_FLAG_DESTROYING 1
|
#define STORAGE_TRUNK_INIT_FLAG_DESTROYING 1
|
||||||
#define STORAGE_TRUNK_INIT_FLAG_DONE 2
|
#define STORAGE_TRUNK_INIT_FLAG_DONE 2
|
||||||
|
|
||||||
int g_slot_min_size;
|
int g_slot_min_size = 0;
|
||||||
int g_trunk_file_size;
|
int g_slot_max_size = 0;
|
||||||
int g_slot_max_size;
|
int g_trunk_alloc_alignment_size = 0;
|
||||||
|
int g_trunk_file_size = 0;
|
||||||
int g_store_path_mode = FDFS_STORE_PATH_ROUND_ROBIN;
|
int g_store_path_mode = FDFS_STORE_PATH_ROUND_ROBIN;
|
||||||
FDFSStorageReservedSpace g_storage_reserved_space = {
|
FDFSStorageReservedSpace g_storage_reserved_space = {
|
||||||
TRACKER_STORAGE_RESERVED_SPACE_FLAG_MB};
|
TRACKER_STORAGE_RESERVED_SPACE_FLAG_MB};
|
||||||
|
|
@ -1748,10 +1749,33 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
FDFSTrunkNode *pPreviousNode;
|
FDFSTrunkNode *pPreviousNode;
|
||||||
FDFSTrunkNode *pTrunkNode;
|
FDFSTrunkNode *pTrunkNode;
|
||||||
int result;
|
int result;
|
||||||
|
int aligned_size;
|
||||||
|
int remain;
|
||||||
|
|
||||||
STORAGE_TRUNK_CHECK_STATUS();
|
STORAGE_TRUNK_CHECK_STATUS();
|
||||||
|
|
||||||
target_slot.size = (size > g_slot_min_size) ? size : g_slot_min_size;
|
if (size <= g_slot_min_size)
|
||||||
|
{
|
||||||
|
aligned_size = g_slot_min_size;
|
||||||
|
}
|
||||||
|
else if (g_trunk_alloc_alignment_size == 0)
|
||||||
|
{
|
||||||
|
aligned_size = size;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
remain = size % g_trunk_alloc_alignment_size;
|
||||||
|
if (remain == 0)
|
||||||
|
{
|
||||||
|
aligned_size = size;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
aligned_size = size + (g_trunk_alloc_alignment_size - remain);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
target_slot.size = aligned_size;
|
||||||
target_slot.head = NULL;
|
target_slot.head = NULL;
|
||||||
|
|
||||||
pPreviousNode = NULL;
|
pPreviousNode = NULL;
|
||||||
|
|
@ -1759,7 +1783,7 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
pthread_mutex_lock(&trunk_mem_lock);
|
pthread_mutex_lock(&trunk_mem_lock);
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
pSlot = (FDFSTrunkSlot *)avl_tree_find_ge(tree_info_by_sizes \
|
pSlot = (FDFSTrunkSlot *)avl_tree_find_ge(tree_info_by_sizes
|
||||||
+ pResult->path.store_path_index, &target_slot);
|
+ pResult->path.store_path_index, &target_slot);
|
||||||
if (pSlot == NULL)
|
if (pSlot == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -1768,7 +1792,7 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
|
|
||||||
pPreviousNode = NULL;
|
pPreviousNode = NULL;
|
||||||
pTrunkNode = pSlot->head;
|
pTrunkNode = pSlot->head;
|
||||||
while (pTrunkNode != NULL && \
|
while (pTrunkNode != NULL &&
|
||||||
pTrunkNode->trunk.status == FDFS_TRUNK_STATUS_HOLD)
|
pTrunkNode->trunk.status == FDFS_TRUNK_STATUS_HOLD)
|
||||||
{
|
{
|
||||||
pPreviousNode = pTrunkNode;
|
pPreviousNode = pTrunkNode;
|
||||||
|
|
@ -1790,7 +1814,7 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
pSlot->head = pTrunkNode->next;
|
pSlot->head = pTrunkNode->next;
|
||||||
if (pSlot->head == NULL)
|
if (pSlot->head == NULL)
|
||||||
{
|
{
|
||||||
trunk_delete_size_tree_entry(pResult->path. \
|
trunk_delete_size_tree_entry(pResult->path.
|
||||||
store_path_index, pSlot);
|
store_path_index, pSlot);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1803,7 +1827,7 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
pTrunkNode = trunk_create_trunk_file(pResult->path. \
|
pTrunkNode = trunk_create_trunk_file(pResult->path.
|
||||||
store_path_index, &result);
|
store_path_index, &result);
|
||||||
if (pTrunkNode == NULL)
|
if (pTrunkNode == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -1813,7 +1837,7 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
}
|
}
|
||||||
pthread_mutex_unlock(&trunk_mem_lock);
|
pthread_mutex_unlock(&trunk_mem_lock);
|
||||||
|
|
||||||
result = trunk_split(pTrunkNode, size);
|
result = trunk_split(pTrunkNode, aligned_size);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -1823,10 +1847,13 @@ int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult)
|
||||||
result = trunk_add_free_block(pTrunkNode, true);
|
result = trunk_add_free_block(pTrunkNode, true);
|
||||||
if (result == 0)
|
if (result == 0)
|
||||||
{
|
{
|
||||||
memcpy(pResult, &(pTrunkNode->trunk), \
|
memcpy(pResult, &(pTrunkNode->trunk),
|
||||||
sizeof(FDFSTrunkFullInfo));
|
sizeof(FDFSTrunkFullInfo));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
logInfo("alloc size: %d, aligned_size: %d, alloced trunk size: %d",
|
||||||
|
size, aligned_size, pResult->file.size);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@ extern "C" {
|
||||||
|
|
||||||
extern int g_slot_min_size; //slot min size, such as 256 bytes
|
extern int g_slot_min_size; //slot min size, such as 256 bytes
|
||||||
extern int g_slot_max_size; //slot max size
|
extern int g_slot_max_size; //slot max size
|
||||||
|
extern int g_trunk_alloc_alignment_size; //the alignment size for trunk alloc
|
||||||
extern int g_trunk_file_size; //the trunk file size, such as 64MB
|
extern int g_trunk_file_size; //the trunk file size, such as 64MB
|
||||||
extern int g_store_path_mode; //store which path mode, fetch from tracker
|
extern int g_store_path_mode; //store which path mode, fetch from tracker
|
||||||
extern FDFSStorageReservedSpace g_storage_reserved_space; //fetch from tracker
|
extern FDFSStorageReservedSpace g_storage_reserved_space; //fetch from tracker
|
||||||
|
|
|
||||||
|
|
@ -504,19 +504,19 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
g_trunk_file_size = (int)trunk_file_size;
|
g_trunk_file_size = (int)trunk_file_size;
|
||||||
if (g_trunk_file_size < 4 * 1024 * 1024)
|
if (g_trunk_file_size < 4 * 1024 * 1024)
|
||||||
{
|
{
|
||||||
logWarning("file: "__FILE__", line: %d, " \
|
logWarning("file: "__FILE__", line: %d, "
|
||||||
"item \"trunk_file_size\" %d is too small, " \
|
"item \"trunk_file_size\" %d is too small, "
|
||||||
"change to 4MB", __LINE__, g_trunk_file_size);
|
"change to 4MB", __LINE__, g_trunk_file_size);
|
||||||
g_trunk_file_size = 4 * 1024 * 1024;
|
g_trunk_file_size = 4 * 1024 * 1024;
|
||||||
}
|
}
|
||||||
|
|
||||||
pSlotMaxSize = iniGetStrValue(NULL, \
|
pSlotMaxSize = iniGetStrValue(NULL,
|
||||||
"slot_max_size", &iniContext);
|
"slot_max_size", &iniContext);
|
||||||
if (pSlotMaxSize == NULL)
|
if (pSlotMaxSize == NULL)
|
||||||
{
|
{
|
||||||
slot_max_size = g_trunk_file_size / 2;
|
slot_max_size = g_trunk_file_size / 8;
|
||||||
}
|
}
|
||||||
else if ((result=parse_bytes(pSlotMaxSize, 1, \
|
else if ((result=parse_bytes(pSlotMaxSize, 1,
|
||||||
&slot_max_size)) != 0)
|
&slot_max_size)) != 0)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -524,26 +524,26 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
g_slot_max_size = (int)slot_max_size;
|
g_slot_max_size = (int)slot_max_size;
|
||||||
if (g_slot_max_size <= g_slot_min_size)
|
if (g_slot_max_size <= g_slot_min_size)
|
||||||
{
|
{
|
||||||
logError("file: "__FILE__", line: %d, " \
|
logError("file: "__FILE__", line: %d, "
|
||||||
"item \"slot_max_size\" %d is invalid, " \
|
"item \"slot_max_size\" %d is invalid, "
|
||||||
"which <= slot_min_size: %d", \
|
"which <= slot_min_size: %d",
|
||||||
__LINE__, g_slot_max_size, g_slot_min_size);
|
__LINE__, g_slot_max_size, g_slot_min_size);
|
||||||
result = EINVAL;
|
result = EINVAL;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (g_slot_max_size > g_trunk_file_size / 2)
|
if (g_slot_max_size > g_trunk_file_size / 2)
|
||||||
{
|
{
|
||||||
logWarning("file: "__FILE__", line: %d, " \
|
logWarning("file: "__FILE__", line: %d, "
|
||||||
"item \"slot_max_size\": %d is too large, " \
|
"item \"slot_max_size\": %d is too large, "
|
||||||
"change to %d", __LINE__, g_slot_max_size, \
|
"change to %d", __LINE__, g_slot_max_size,
|
||||||
g_trunk_file_size / 2);
|
g_trunk_file_size / 2);
|
||||||
g_slot_max_size = g_trunk_file_size / 2;
|
g_slot_max_size = g_trunk_file_size / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_trunk_create_file_advance = iniGetBoolValue(NULL, \
|
g_trunk_create_file_advance = iniGetBoolValue(NULL,
|
||||||
"trunk_create_file_advance", &iniContext, false);
|
"trunk_create_file_advance", &iniContext, false);
|
||||||
if ((result=get_time_item_from_conf(&iniContext, \
|
if ((result=get_time_item_from_conf(&iniContext,
|
||||||
"trunk_create_file_time_base", \
|
"trunk_create_file_time_base",
|
||||||
&g_trunk_create_file_time_base, 2, 0)) != 0)
|
&g_trunk_create_file_time_base, 2, 0)) != 0)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -579,13 +579,25 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
g_trunk_binlog_max_backups = iniGetIntValue(NULL,
|
g_trunk_binlog_max_backups = iniGetIntValue(NULL,
|
||||||
"trunk_binlog_max_backups", &iniContext, 0);
|
"trunk_binlog_max_backups", &iniContext, 0);
|
||||||
|
|
||||||
g_trunk_init_check_occupying = iniGetBoolValue(NULL, \
|
g_trunk_alloc_alignment_size = iniGetIntValue(NULL,
|
||||||
|
"trunk_alloc_alignment_size", &iniContext, 0);
|
||||||
|
if (g_slot_min_size < g_trunk_alloc_alignment_size)
|
||||||
|
{
|
||||||
|
logWarning("file: "__FILE__", line: %d, "
|
||||||
|
"item \"slot_min_size\": %d < "
|
||||||
|
"\"trunk_alloc_alignment_size\": %d, "
|
||||||
|
"change to %d", __LINE__, g_slot_min_size,
|
||||||
|
g_trunk_alloc_alignment_size);
|
||||||
|
g_slot_min_size = g_trunk_alloc_alignment_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_trunk_init_check_occupying = iniGetBoolValue(NULL,
|
||||||
"trunk_init_check_occupying", &iniContext, false);
|
"trunk_init_check_occupying", &iniContext, false);
|
||||||
|
|
||||||
g_trunk_init_reload_from_binlog = iniGetBoolValue(NULL, \
|
g_trunk_init_reload_from_binlog = iniGetBoolValue(NULL,
|
||||||
"trunk_init_reload_from_binlog", &iniContext, false);
|
"trunk_init_reload_from_binlog", &iniContext, false);
|
||||||
|
|
||||||
if ((result=tracker_load_storage_id_info( \
|
if ((result=tracker_load_storage_id_info(
|
||||||
filename, &iniContext)) != 0)
|
filename, &iniContext)) != 0)
|
||||||
{
|
{
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -604,40 +616,40 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
log_set_compress_log_days_before(g_compress_error_log_days_before);
|
log_set_compress_log_days_before(g_compress_error_log_days_before);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result=get_time_item_from_conf(&iniContext, \
|
if ((result=get_time_item_from_conf(&iniContext,
|
||||||
"error_log_rotate_time", &g_error_log_rotate_time, \
|
"error_log_rotate_time", &g_error_log_rotate_time,
|
||||||
0, 0)) != 0)
|
0, 0)) != 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
pRotateErrorLogSize = iniGetStrValue(NULL, \
|
pRotateErrorLogSize = iniGetStrValue(NULL,
|
||||||
"rotate_error_log_size", &iniContext);
|
"rotate_error_log_size", &iniContext);
|
||||||
if (pRotateErrorLogSize == NULL)
|
if (pRotateErrorLogSize == NULL)
|
||||||
{
|
{
|
||||||
rotate_error_log_size = 0;
|
rotate_error_log_size = 0;
|
||||||
}
|
}
|
||||||
else if ((result=parse_bytes(pRotateErrorLogSize, 1, \
|
else if ((result=parse_bytes(pRotateErrorLogSize, 1,
|
||||||
&rotate_error_log_size)) != 0)
|
&rotate_error_log_size)) != 0)
|
||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (rotate_error_log_size > 0 && \
|
if (rotate_error_log_size > 0 &&
|
||||||
rotate_error_log_size < FDFS_ONE_MB)
|
rotate_error_log_size < FDFS_ONE_MB)
|
||||||
{
|
{
|
||||||
logWarning("file: "__FILE__", line: %d, " \
|
logWarning("file: "__FILE__", line: %d, "
|
||||||
"item \"rotate_error_log_size\": " \
|
"item \"rotate_error_log_size\": "
|
||||||
"%"PRId64" is too small, " \
|
"%"PRId64" is too small, "
|
||||||
"change to 1 MB", __LINE__, \
|
"change to 1 MB", __LINE__,
|
||||||
rotate_error_log_size);
|
rotate_error_log_size);
|
||||||
rotate_error_log_size = FDFS_ONE_MB;
|
rotate_error_log_size = FDFS_ONE_MB;
|
||||||
}
|
}
|
||||||
fdfs_set_log_rotate_size(&g_log_context, rotate_error_log_size);
|
fdfs_set_log_rotate_size(&g_log_context, rotate_error_log_size);
|
||||||
|
|
||||||
g_log_file_keep_days = iniGetIntValue(NULL, \
|
g_log_file_keep_days = iniGetIntValue(NULL,
|
||||||
"log_file_keep_days", &iniContext, 0);
|
"log_file_keep_days", &iniContext, 0);
|
||||||
|
|
||||||
g_store_slave_file_use_link = iniGetBoolValue(NULL, \
|
g_store_slave_file_use_link = iniGetBoolValue(NULL,
|
||||||
"store_slave_file_use_link", &iniContext, false);
|
"store_slave_file_use_link", &iniContext, false);
|
||||||
|
|
||||||
if ((result=fdfs_connection_pool_init(filename, &iniContext)) != 0)
|
if ((result=fdfs_connection_pool_init(filename, &iniContext)) != 0)
|
||||||
|
|
@ -753,7 +765,8 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
"storage_sync_file_max_time=%ds, "
|
"storage_sync_file_max_time=%ds, "
|
||||||
"use_trunk_file=%d, "
|
"use_trunk_file=%d, "
|
||||||
"slot_min_size=%d, "
|
"slot_min_size=%d, "
|
||||||
"slot_max_size=%d MB, "
|
"slot_max_size=%d KB, "
|
||||||
|
"trunk_alloc_alignment_size=%d, "
|
||||||
"trunk_file_size=%d MB, "
|
"trunk_file_size=%d MB, "
|
||||||
"trunk_create_file_advance=%d, "
|
"trunk_create_file_advance=%d, "
|
||||||
"trunk_create_file_time_base=%02d:%02d, "
|
"trunk_create_file_time_base=%02d:%02d, "
|
||||||
|
|
@ -794,7 +807,8 @@ int tracker_load_from_conf_file(const char *filename, \
|
||||||
g_storage_sync_file_max_delay,
|
g_storage_sync_file_max_delay,
|
||||||
g_storage_sync_file_max_time,
|
g_storage_sync_file_max_time,
|
||||||
g_if_use_trunk_file, g_slot_min_size,
|
g_if_use_trunk_file, g_slot_min_size,
|
||||||
g_slot_max_size / FDFS_ONE_MB,
|
g_slot_max_size / 1024,
|
||||||
|
g_trunk_alloc_alignment_size,
|
||||||
g_trunk_file_size / FDFS_ONE_MB,
|
g_trunk_file_size / FDFS_ONE_MB,
|
||||||
g_trunk_create_file_advance,
|
g_trunk_create_file_advance,
|
||||||
g_trunk_create_file_time_base.hour,
|
g_trunk_create_file_time_base.hour,
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ int g_trunk_create_file_interval = 86400;
|
||||||
int g_trunk_compress_binlog_interval = 0;
|
int g_trunk_compress_binlog_interval = 0;
|
||||||
int g_trunk_compress_binlog_min_interval = 0;
|
int g_trunk_compress_binlog_min_interval = 0;
|
||||||
int g_trunk_binlog_max_backups = 0;
|
int g_trunk_binlog_max_backups = 0;
|
||||||
|
int g_trunk_alloc_alignment_size = 0;
|
||||||
int64_t g_trunk_create_file_space_threshold = 0;
|
int64_t g_trunk_create_file_space_threshold = 0;
|
||||||
|
|
||||||
time_t g_up_time = 0;
|
time_t g_up_time = 0;
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,7 @@ extern int g_trunk_create_file_interval;
|
||||||
extern int g_trunk_compress_binlog_interval;
|
extern int g_trunk_compress_binlog_interval;
|
||||||
extern int g_trunk_compress_binlog_min_interval;
|
extern int g_trunk_compress_binlog_min_interval;
|
||||||
extern int g_trunk_binlog_max_backups;
|
extern int g_trunk_binlog_max_backups;
|
||||||
|
extern int g_trunk_alloc_alignment_size;
|
||||||
extern int64_t g_trunk_create_file_space_threshold;
|
extern int64_t g_trunk_create_file_space_threshold;
|
||||||
|
|
||||||
extern time_t g_up_time;
|
extern time_t g_up_time;
|
||||||
|
|
|
||||||
|
|
@ -687,6 +687,7 @@ static int tracker_deal_parameter_req(struct fast_task_info *pTask)
|
||||||
"use_trunk_file=%d\n"
|
"use_trunk_file=%d\n"
|
||||||
"slot_min_size=%d\n"
|
"slot_min_size=%d\n"
|
||||||
"slot_max_size=%d\n"
|
"slot_max_size=%d\n"
|
||||||
|
"trunk_alloc_alignment_size=%d\n"
|
||||||
"trunk_file_size=%d\n"
|
"trunk_file_size=%d\n"
|
||||||
"trunk_create_file_advance=%d\n"
|
"trunk_create_file_advance=%d\n"
|
||||||
"trunk_create_file_time_base=%02d:%02d\n"
|
"trunk_create_file_time_base=%02d:%02d\n"
|
||||||
|
|
@ -707,6 +708,7 @@ static int tracker_deal_parameter_req(struct fast_task_info *pTask)
|
||||||
&g_storage_reserved_space, reserved_space_str),
|
&g_storage_reserved_space, reserved_space_str),
|
||||||
g_if_use_trunk_file,
|
g_if_use_trunk_file,
|
||||||
g_slot_min_size, g_slot_max_size,
|
g_slot_min_size, g_slot_max_size,
|
||||||
|
g_trunk_alloc_alignment_size,
|
||||||
g_trunk_file_size, g_trunk_create_file_advance,
|
g_trunk_file_size, g_trunk_create_file_advance,
|
||||||
g_trunk_create_file_time_base.hour,
|
g_trunk_create_file_time_base.hour,
|
||||||
g_trunk_create_file_time_base.minute,
|
g_trunk_create_file_time_base.minute,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue