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

IPFS multi-sources pull issue / scaling issue #3802

Open
jad-darrous opened this issue Mar 20, 2017 · 3 comments
Open

IPFS multi-sources pull issue / scaling issue #3802

jad-darrous opened this issue Mar 20, 2017 · 3 comments
Labels
need/analysis Needs further analysis before proceeding status/in-progress In progress topic/perf Performance

Comments

@jad-darrous
Copy link

Version information:

go-ipfs version: 0.4.6-
Repo version: 5
System version: amd64/linux
Golang version: go1.8

Type:

Probably Bug

Priority:

P2

Description:

I was playing with IPFS and I feel that I discovered a strange behavior! I have multiple machines, let's says 4, on the first one, I generated a random binary file and I added it to IPFS. On the second node, I pulled this file by its multihash. When the data is completely transferred to the second node, I repeated the same steps again on the third node, fourth node...

What I was excepting is that the time needed to pull the image for each node to be less than the time need by the previous ones, because the last started node has more sources that can supply the data and the node can pull the data in parallel. But what I experienced was different. Each new node takes more time than the previous ones! The reason is caused by the increasing amount of data sent over the network. It seems that the file is being pulled from all the other nodes. I verified that by observing the data size passing through the network interface.

To replicate the experiment or to see the results, please refer to this repository https://github.com/jad-darrous/IPFS-multi-sources-pull-issue

@whyrusleeping
Copy link
Member

I've observed this in scenarios where the bandwidth between machines is high, and the latency above 50ms, the wantlist updates end up not being able to propogate before blocks get sent around.

This is a flaw in the current implementation of bitswap, and should be greatly improved by: #3786

@Kubuxu Kubuxu added status/in-progress In progress need/analysis Needs further analysis before proceeding topic/perf Performance labels Apr 17, 2017
@rddaz2013
Copy link

"It seems that the file is being pulled from all the other nodes. I verified that by observing the data size passing through the network interface."

i hope it is a bug not a design issue. Have the dev's on https://github.com/ipfs/ipfs-cluster seen this behavior?

@whyrusleeping
Copy link
Member

definitely a bug, see the issue i linked. It is step one towards resolving the problem

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need/analysis Needs further analysis before proceeding status/in-progress In progress topic/perf Performance
Projects
None yet
Development

No branches or pull requests

4 participants