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

IPNS Benchmarking #5

Open
aschmahmann opened this issue May 1, 2019 · 6 comments
Open

IPNS Benchmarking #5

aschmahmann opened this issue May 1, 2019 · 6 comments

Comments

@aschmahmann
Copy link

There is on-going work to make IPNS over PubSub have a faster initial resolution time by adding persistence to PubSub (e.g. libp2p/go-libp2p-pubsub#171). Additionally there is work on the libp2p testlab (https://github.com/libp2p/testlab) to enable benchmarking of libp2p based systems. It would be fantastic if we could utilize the testlab to benchmark the performance of IPNS over DHT vs IPNS over PubSub (current) vs IPNS over PubSub (new) to understand our actual improvements and what aspects of the system are still holding us back. This can also serve as a good exercise case for the testlab.

Audience: IPNS and testlab devlopers

Impact: Enables IPNS and testlab developers to better target areas for improvement. These results spill over into creating more metrics driven testing of libp2p-based components generally and turning our focus to the particular systems that are on our critical paths.

Stakeholders: go-ipfs team, testlab/libp2p team

@jimpick
Copy link
Collaborator

jimpick commented May 4, 2019

Related, js-ipfs has a Q2 OKR get the new benchmark suite to run via continuous integration... (@alanshaw)

https://docs.google.com/spreadsheets/d/1YSeyWqXh3ImanRrTkYQHHkCofiORn68bYqM_KTLBlsA/edit#gid=274358435&range=B15

https://github.com/ipfs/benchmarks

Potentially there's some overlap?

@momack2
Copy link

momack2 commented May 25, 2019

Given that testlab is up and running and many of these pieces have at least working forks / proofs of concept - would be awesome to push this thread forward!

@aschmahmann
Copy link
Author

@momack2 @jimpick that would be great. I even have a go-ipfs fork that supports testing IPNS over DHT and the new IPNS over PubSub at https://github.com/aschmahmann/go-ipfs/releases.

@daviddias
Copy link
Member

It should be simple to add benchmarks to -- https://github.com/ipfs/benchmarks --. You also might want to add IPNS tests to -- https://github.com/ipfs/interop -- and I would love to have a -- https://github.com/ipfs/integration -- for tests that test things on the live network.

@aschmahmann
Copy link
Author

@daviddias I think there are already IPNS interop tests for the DHT (and possibly for the older version of PubSub). We're just now getting the faster IPNS over PubSub off the ground in Go, hopefully we'll be able to tackle JS next quarter and definitely add those to the interop tests.

I'm not familiar with https://github.com/ipfs/benchmarks, but my understanding of one of the testlab's goals is to be able to specify network configurations with which to run our various tests. A longer term goal here is to be able to understand how our implementations fare for large and small networks, partitioned/NATed networks, etc. so that we have more meaningful descriptions of what is meant by "the DHT is slow".

@jimpick I think you've spent a bunch of time looking at the testlab. Does this seem doable in a relatively short time span?

@jimpick
Copy link
Collaborator

jimpick commented Jun 1, 2019

I haven't spent enough "quality time" with Testlab as I intended to this quarter. I do want to get going with it next week however. Past experience building this type of testing infrastructure tells me that initially it will be slow going, but the initial investment will pay off in the end. I'm taking 1 week off before team week, but I'm hoping to at least be up-to-speed enough with Testlab so we can do some hacking on it during team week.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants