Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions src/container/srv_container.c
Original file line number Diff line number Diff line change
Expand Up @@ -1814,14 +1814,15 @@ cont_track_eph_leader_alloc(struct cont_svc *cont_svc, uuid_t cont_uuid,
eph_ldr->cte_servers_num = rank_nr;
eph_ldr->cte_current_ec_agg_eph = 0;
eph_ldr->cte_rdb_ec_agg_eph = 0;
eph_ldr->cte_start_ts = daos_gettime_coarse();
for (i = 0; i < rank_nr; i++) {
eph_ldr->cte_server_ephs[i].re_rank = doms[i].do_comp.co_rank;
eph_ldr->cte_server_ephs[i].re_ec_agg_eph = 0;
eph_ldr->cte_server_ephs[i].re_stable_eph = 0;
eph_ldr->cte_server_ephs[i].re_ec_agg_eph_update_ts = daos_gettime_coarse();
eph_ldr->cte_server_ephs[i].re_ec_agg_eph_update_ts = eph_ldr->cte_start_ts;
}
d_list_add(&eph_ldr->cte_list, &cont_svc->cs_cont_ephs_leader_list);
eph_ldr->cte_ec_agg_warn_slug_ts = daos_gettime_coarse();
eph_ldr->cte_ec_agg_warn_slug_ts = eph_ldr->cte_start_ts;
*leader_p = eph_ldr;
out:
if (rc) {
Expand Down Expand Up @@ -2260,7 +2261,8 @@ cont_agg_eph_sync(struct ds_pool *pool, struct cont_svc *svc)
cur_eph = d_hlc2sec(eph_ldr->cte_current_ec_agg_eph);
new_eph = d_hlc2sec(min_ec_agg_eph);
if ((cur_ts > eph_ldr->cte_ec_agg_warn_slug_ts + 600) && cur_eph &&
(new_eph > cur_eph) && (new_eph - cur_eph) >= 600)
(new_eph > cur_eph) && (new_eph - cur_eph) >= 600 &&
(cur_ts - eph_ldr->cte_start_ts) >= (new_eph - cur_eph))
Comment thread
liuxuezhao marked this conversation as resolved.
D_WARN(DF_CONT ": Sluggish EC boundary reporting. "
"cur:" DF_U64 " new:" DF_U64 " gap:" DF_U64 "\n",
DP_CONT(svc->cs_pool_uuid, eph_ldr->cte_cont_uuid), cur_eph, new_eph,
Expand Down
5 changes: 5 additions & 0 deletions src/container/srv_internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,11 @@ struct cont_track_eph_leader {
d_list_t cte_list;
int cte_servers_num;
uint32_t cte_deleted : 1;
/* Time when this leader started tracking the container. A boundary jump larger
* than the tracking age cannot have been observed by this leader, it comes from
* the stale epoch loaded from rdb at leader step-up, so it is not a real stall.
*/
uint64_t cte_start_ts;
/* TS to check for ec_agg_eph sluggish warning */
uint64_t cte_ec_agg_warn_slug_ts;
};
Expand Down
Loading