Skip to content

Make end-to-end reliability configurable #457

Description

@JEnoch

Zenoh offers 2 flavors of reliability:

  • hop-to-hop reliability, ensuring the reliability of communication between each Nodes, and between a Node and the connected Zenoh Router.
  • end-to-end reliability, ensuring the reliability of communication between Nodes across a chain of Zenoh Routers with connectivities that may be intermittent (e.g. for robot to robot communication)

With rmw_zenoh, the hop-to-hop reliability is ensured using reliable transports (TCP, QUIC...) and congestion_control=Z_CONGESTION_CONTROL_BLOCK if QoS are set to RELIABLE + History=KEEP_ALL

Ensuring the end-to-end reliability would require to:

  • Use the Zenoh Advanced Pub/Sub for all RELIABLE Publishers/Subscribers.
    They have been introduced by feat: introduce the advanced publisher and subscriber #368, but are only serving for TRANSIENT_LOCAL support with the current options.
  • Configure those with sample_miss_detection.is_enable=true and recovery.is_enabled=true options.
    Those options are adding some heartbeats or polling messages, and thus increase the traffic.

As end-to-end reliability is not required for all use cases, and is adding extra burden (more Advanced Pub/Subs and more traffic), I suggest to make it configurable and disabled by default.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions