Thanks for your explanation, it is useful to me

Aleksey Gutikov <> 于2019年12月3日周二 下午9:14写道:

> According to my understanding, osd's heartbeat partners only come from
> those osds who assume the same pg

That was my initial assumption too.
But according to my experience set of heartbeat peers include pg peers
and some other osds.

Actually it contains:
- pg peers
- next and previous osd by id, e.g. osd.1 is peer for osd.0 and osd.2
- optionally - random heartbeat peers (according to
osd_heartbeat_min_peers config option)

And, btw, heartbeat peers are not symmetric - for example osd.0 can send
heartbeat requests to osd.2, but osd.2 do not send requests to osd.0.

You can check it in OSD::maybe_update_heartbeat_peers()


Best regards!
Aleksei Gutikov