Use pg_data_size instead of pg_minsize for object state calculation
parent
36c935ace6
commit
80e12358a2
|
@ -37,7 +37,7 @@ void osd_t::init_cluster()
|
||||||
.pg_cursize = 0,
|
.pg_cursize = 0,
|
||||||
.pg_size = 3,
|
.pg_size = 3,
|
||||||
.pg_minsize = 2,
|
.pg_minsize = 2,
|
||||||
.parity_chunks = 1,
|
.pg_data_size = 2,
|
||||||
.pool_id = 1,
|
.pool_id = 1,
|
||||||
.pg_num = 1,
|
.pg_num = 1,
|
||||||
.target_set = { 1, 2, 3 },
|
.target_set = { 1, 2, 3 },
|
||||||
|
@ -606,7 +606,8 @@ void osd_t::apply_pg_config()
|
||||||
.pg_cursize = 0,
|
.pg_cursize = 0,
|
||||||
.pg_size = pool_item.second.pg_size,
|
.pg_size = pool_item.second.pg_size,
|
||||||
.pg_minsize = pool_item.second.pg_minsize,
|
.pg_minsize = pool_item.second.pg_minsize,
|
||||||
.parity_chunks = pool_item.second.parity_chunks,
|
.pg_data_size = pg.scheme == POOL_SCHEME_REPLICATED
|
||||||
|
? 1 : pool_item.second.pg_size - pool_item.second.parity_chunks,
|
||||||
.pool_id = pool_id,
|
.pool_id = pool_id,
|
||||||
.pg_num = pg_num,
|
.pg_num = pg_num,
|
||||||
.reported_epoch = pg_cfg.epoch,
|
.reported_epoch = pg_cfg.epoch,
|
||||||
|
@ -616,7 +617,7 @@ void osd_t::apply_pg_config()
|
||||||
};
|
};
|
||||||
if (pg.scheme == POOL_SCHEME_JERASURE)
|
if (pg.scheme == POOL_SCHEME_JERASURE)
|
||||||
{
|
{
|
||||||
use_jerasure(pg.pg_size, pg.pg_size-pg.parity_chunks, true);
|
use_jerasure(pg.pg_size, pg.pg_data_size, true);
|
||||||
}
|
}
|
||||||
this->pg_state_dirty.insert({ .pool_id = pool_id, .pg_num = pg_num });
|
this->pg_state_dirty.insert({ .pool_id = pool_id, .pg_num = pg_num });
|
||||||
pg.print_state();
|
pg.print_state();
|
||||||
|
@ -807,7 +808,7 @@ void osd_t::report_pg_states()
|
||||||
// Remove offline PGs after reporting their state
|
// Remove offline PGs after reporting their state
|
||||||
if (pg_it->second.scheme == POOL_SCHEME_JERASURE)
|
if (pg_it->second.scheme == POOL_SCHEME_JERASURE)
|
||||||
{
|
{
|
||||||
use_jerasure(pg_it->second.pg_size, pg_it->second.pg_size-pg_it->second.parity_chunks, false);
|
use_jerasure(pg_it->second.pg_size, pg_it->second.pg_data_size, false);
|
||||||
}
|
}
|
||||||
this->pgs.erase(pg_it);
|
this->pgs.erase(pg_it);
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,7 +108,7 @@ void pg_obj_state_check_t::start_object()
|
||||||
|
|
||||||
void pg_obj_state_check_t::handle_version()
|
void pg_obj_state_check_t::handle_version()
|
||||||
{
|
{
|
||||||
if (!target_ver && last_ver != list[list_pos].version && (n_stable > 0 || n_roles >= pg->pg_minsize))
|
if (!target_ver && last_ver != list[list_pos].version && (n_stable > 0 || n_roles >= pg->pg_data_size))
|
||||||
{
|
{
|
||||||
// Version is either stable or recoverable
|
// Version is either stable or recoverable
|
||||||
target_ver = last_ver;
|
target_ver = last_ver;
|
||||||
|
@ -171,7 +171,7 @@ void pg_obj_state_check_t::handle_version()
|
||||||
|
|
||||||
void pg_obj_state_check_t::finish_object()
|
void pg_obj_state_check_t::finish_object()
|
||||||
{
|
{
|
||||||
if (!target_ver && (n_stable > 0 || n_roles >= pg->pg_minsize))
|
if (!target_ver && (n_stable > 0 || n_roles >= pg->pg_data_size))
|
||||||
{
|
{
|
||||||
// Version is either stable or recoverable
|
// Version is either stable or recoverable
|
||||||
target_ver = last_ver;
|
target_ver = last_ver;
|
||||||
|
@ -233,7 +233,7 @@ void pg_obj_state_check_t::finish_object()
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!replicated && n_roles < pg->pg_minsize)
|
if (!replicated && n_roles < pg->pg_data_size)
|
||||||
{
|
{
|
||||||
if (log_level > 1)
|
if (log_level > 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -75,7 +75,7 @@ struct pg_t
|
||||||
{
|
{
|
||||||
int state = 0;
|
int state = 0;
|
||||||
uint64_t scheme = 0;
|
uint64_t scheme = 0;
|
||||||
uint64_t pg_cursize = 0, pg_size = 0, pg_minsize = 0, parity_chunks = 0;
|
uint64_t pg_cursize = 0, pg_size = 0, pg_minsize = 0, pg_data_size = 0;
|
||||||
pool_id_t pool_id = 0;
|
pool_id_t pool_id = 0;
|
||||||
pg_num_t pg_num = 0;
|
pg_num_t pg_num = 0;
|
||||||
uint64_t clean_count = 0, total_count = 0;
|
uint64_t clean_count = 0, total_count = 0;
|
||||||
|
|
Loading…
Reference in New Issue