Implement graceful stopping of PGs

This commit is contained in:
Vitaliy Filippov
2020-04-03 13:03:42 +03:00
parent afe2e76c87
commit dfb6e15eaa
6 changed files with 86 additions and 18 deletions
+3
View File
@@ -200,6 +200,7 @@ class osd_t
std::map<uint64_t, int> osd_peer_fds;
std::map<pg_num_t, pg_t> pgs;
std::set<pg_num_t> dirty_pgs;
uint64_t misplaced_objects = 0, degraded_objects = 0, incomplete_objects = 0;
int peering_state = 0;
unsigned pg_count = 0;
@@ -265,6 +266,8 @@ class osd_t
void handle_peers();
void repeer_pgs(osd_num_t osd_num, bool is_connected);
void start_pg_peering(pg_num_t pg_num);
bool stop_pg(pg_num_t pg_num);
void finish_stop_pg(pg_t & pg);
// flushing, recovery and backfill
void submit_pg_flush_ops(pg_num_t pg_num);