Prevent spamming etcd with last_clean_pgs update requests
Test / buildenv (push) Successful in 16s Details
Test / build (push) Successful in 2m34s Details
Test / test_cas (push) Successful in 9s Details
Test / make_test (push) Successful in 34s Details
Test / test_change_pg_size (push) Successful in 7s Details
Test / test_create_nomaxid (push) Successful in 7s Details
Test / test_change_pg_count (push) Successful in 45s Details
Test / test_change_pg_count_ec (push) Successful in 41s Details
Test / test_etcd_fail (push) Successful in 1m23s Details
Test / test_interrupted_rebalance_imm (push) Successful in 1m22s Details
Test / test_add_osd (push) Successful in 3m0s Details
Test / test_failure_domain (push) Successful in 18s Details
Test / test_interrupted_rebalance (push) Successful in 2m35s Details
Test / test_interrupted_rebalance_ec_imm (push) Successful in 1m20s Details
Test / test_snapshot (push) Successful in 24s Details
Test / test_minsize_1 (push) Successful in 13s Details
Test / test_snapshot_ec (push) Successful in 34s Details
Test / test_interrupted_rebalance_ec (push) Successful in 1m49s Details
Test / test_move_reappear (push) Successful in 19s Details
Test / test_rm (push) Successful in 14s Details
Test / test_snapshot_down (push) Successful in 30s Details
Test / test_snapshot_down_ec (push) Successful in 31s Details
Test / test_splitbrain (push) Successful in 24s Details
Test / test_snapshot_chain (push) Successful in 2m23s Details
Test / test_snapshot_chain_ec (push) Successful in 3m4s Details
Test / test_rebalance_verify_imm (push) Successful in 2m54s Details
Test / test_rebalance_verify (push) Successful in 3m48s Details
Test / test_write (push) Successful in 35s Details
Test / test_write_no_same (push) Successful in 14s Details
Test / test_write_xor (push) Successful in 55s Details
Test / test_rebalance_verify_ec_imm (push) Successful in 4m15s Details
Test / test_rebalance_verify_ec (push) Successful in 5m3s Details
Test / test_heal_pg_size_2 (push) Successful in 3m59s Details
Test / test_heal_ec (push) Successful in 4m56s Details
Test / test_heal_csum_32k_dmj (push) Successful in 5m48s Details
Test / test_heal_csum_32k_dj (push) Successful in 5m44s Details
Test / test_heal_csum_32k (push) Successful in 6m35s Details
Test / test_scrub (push) Successful in 1m14s Details
Test / test_heal_csum_4k_dmj (push) Successful in 6m54s Details
Test / test_scrub_zero_osd_2 (push) Successful in 1m2s Details
Test / test_scrub_xor (push) Successful in 49s Details
Test / test_scrub_pg_size_6_pg_minsize_4_osd_count_6_ec (push) Successful in 1m9s Details
Test / test_scrub_pg_size_3 (push) Successful in 1m54s Details
Test / test_heal_csum_4k_dj (push) Successful in 6m17s Details
Test / test_heal_csum_4k (push) Successful in 6m18s Details
Test / test_scrub_ec (push) Successful in 37s Details

rdma-simple-nodp
Vitaliy Filippov 2023-11-05 00:12:00 +03:00
parent 408c21d8f0
commit 0e888e6c60
1 changed files with 20 additions and 0 deletions

View File

@ -693,8 +693,27 @@ class Mon
});
}
// Schedule save_last_clean() to to run after a small timeout (1s) (to not spam etcd)
schedule_save_last_clean()
{
if (!this.save_last_clean_timer)
{
this.save_last_clean_timer = setTimeout(() =>
{
this.save_last_clean_timer = null;
this.save_last_clean().catch(this.die);
}, this.config.mon_change_timeout || 1000);
}
}
async save_last_clean()
{
if (this.save_last_clean_running)
{
this.schedule_save_last_clean();
return;
}
this.save_last_clean_running = true;
// last_clean_pgs is used to avoid extra data move when observing a series of changes in the cluster
const new_clean_pgs = { items: {} };
next_pool:
@ -731,6 +750,7 @@ class Mon
value: b64(JSON.stringify(this.state.history.last_clean_pgs))
} } ],
}, this.etcd_start_timeout, 0);
this.save_last_clean_running = false;
}
get_mon_state()