How to use message retransmission #165
Unanswered
VinncentZHZ
asked this question in
Q&A
Replies: 1 comment
-
Before I ask the question, i assumed that the message retransmission mechanism is maintained by zenoh itself. But I've seen implementations where you can actively resume confirm in the consumption listen callback, such as:
But I switch the python API documentation version to the latest, https://zenoh-python.readthedocs.io/en/latest/, is still not see "zenoh.Confirm" the interface description. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
1.Problem found
I deployed zenoh 1.0.0~beta.1-1 on ubuntu 20.04.6. I recently in the study zenoh reliable transport (https://zenoh.io/blog/2021-06-14-zenoh-reliability/).
In this Blog, there is the following description of the message retransmission schedule:
1)Receivers control reliability by selecting a resending strategy. They declare if they need missing messages to be resent or not.
2)Senders control congestion by selecting a message dropping strategy. For each sample they decide what should be done in case of congestion (the reliability queue is full) – drop the sample or block the publication. The congestion control strategy is propagated from the sender to all involved infrastructure components and applied along the entire routing path.
According to the first point, the receiver can set the resend policy, but in zenoh 1.0.0~beta.1-1 python api declare_subscriber does not receive parameters for the resend policy(https://zenoh-python.readthedocs.io/en/1.0.0/#zenoh.Session.declare_subscriber). This does not match the example in the Show me Some Code section of the blog post.
Here's declaration in my pub/sub example,
sub:
with zenoh.open(conf) as session:
session.declare_subscriber("test/thr/high", listener)
pub:
with zenoh.open(conf) as session:
pub1 = session.declare_publisher(
"test/thr/high",
congestion_control=zenoh.CongestionControl.BLOCK,
reliability=zenoh.Reliability.RELIABLE
)
2.Problem reproduce
3.My question
ps: I suspect the features described in the blog post are not available in 1.0.0~beta.1-1, or maybe they need to add special compile parameters to support message retransmission.
ps: I set the message level to trace during validation. Currently, we only see a failure at the receiver, and the sender does not see any record of whether the receiver received the message.
Thanks for your attention.
Beta Was this translation helpful? Give feedback.
All reactions