Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Question: evaluating message metadata for routing decisions #206

Open
raulk opened this issue Oct 6, 2019 · 3 comments
Open

Question: evaluating message metadata for routing decisions #206

raulk opened this issue Oct 6, 2019 · 3 comments
Labels
kind/support A question or request for support

Comments

@raulk
Copy link
Member

raulk commented Oct 6, 2019

We don't propagate IHAVE metadata immediately. We stash it for piggybacking, or until the next heartbeat arrives (1s). However, we are planning to use this metadata to evaluate routing decisions (some of which will be based on latency observations).

How can such a model be effective, given that the arrival of gossip is non-deterministic, and it doesn't carry any provable timestamps?

Basically, if I receive a message X from peer A (with with I'm reciprocally meshed), and I also receive an IHAVE from peer B (with with I'm gossiping only), how can I determine if B received message X before A was able to deliver it to me?

@aschmahmann
Copy link
Contributor

Sure, it's true that we won't be able to do much in comparing latencies based on IHAVE messages. However, we can calculate the latency of a peer based on how quickly they respond to IWANT messages with the message itself.

Also the questions about the reliability/performance of a peer (latency, throughput, etc.) seem to mirror the discussions going on for improving bitswap sessions in ipfs/go-bitswap#186 and ipfs/go-bitswap#189 (comment). There might be some ideas or code we could share with them.

@vyzo
Copy link
Collaborator

vyzo commented Oct 6, 2019

This is pertinent to episub and it is a very good question; the decision will have to be more nuanced and perhaps include timestamps.

@vyzo
Copy link
Collaborator

vyzo commented Oct 6, 2019

It might also be not such a big deal in that the latency will be tree-optimized based on mesh transmission of messages. The IHAVEs will help correct overlay deficiencies and it might not be as important to select the fastest peer, any peer might do.

@daviddias daviddias added the kind/support A question or request for support label Mar 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/support A question or request for support
Projects
None yet
Development

No branches or pull requests

4 participants