fix: 修复当配置4个store_path时,第二个path(store_path1)存储超过阈值时,重复在第一个path(store_path0)写入的问题,即 store_path0 -> store_path2 -> store_path3,而不是一直是store_path0

pull/665/head
niloay6 2023-09-26 09:17:08 +08:00
parent 7c58b147ca
commit e831870c8d
2 changed files with 14 additions and 4 deletions

View File

@ -1665,7 +1665,7 @@ void storage_service_destroy()
int storage_get_storage_path_index(int *store_path_index)
{
int i;
int i, t;
*store_path_index = g_store_path_index;
if (g_store_path_mode == FDFS_STORE_PATH_LOAD_BALANCE)
@ -1687,7 +1687,12 @@ int storage_get_storage_path_index(int *store_path_index)
[*store_path_index].total_mb, g_fdfs_store_paths.paths \
[*store_path_index].free_mb, g_avg_storage_reserved_mb))
{
for (i=0; i<g_fdfs_store_paths.count; i++)
t = g_store_path_index + 1;
if (t >= g_fdfs_store_paths.count)
{
t = 0;
}
for (i=t; i<g_fdfs_store_paths.count; i++)
{
if (storage_check_reserved_space_path( \
g_fdfs_store_paths.paths[i].total_mb, \

View File

@ -2681,8 +2681,13 @@ static int tracker_deal_service_query_storage( \
path_total_mbs[write_path_index], pStorageServer-> \
path_free_mbs[write_path_index], avg_reserved_mb))
{
int i;
for (i=0; i<pStoreGroup->store_path_count; i++)
int i, t;
t = write_path_index + 1;
if (t >= pStoreGroup->store_path_count)
{
t = 0;
}
for (i=t; i<pStoreGroup->store_path_count; i++)
{
if (tracker_check_reserved_space_path( \
pStorageServer->path_total_mbs[i], \