IssueRaiser

Implement bandwidth limiting

We need to place limits on the bandwidth ipfs uses. We can do this a few different ways (or a combination thereof): - per peer limiting on each actual connection object - pros: - low coordination cost (no shared objects between connections) - should have lower impact on performance than blindly rate limiting the whole process - cons: - no flow control between protocols, dht could drown out bitswap traffic - per subnet limiting - pros: - avoids rate-limiting LAN/localhost connections. - cons: - it's not always possible to tell what's "local" (e.g., with IPv6). - per protocol limiting on each stream - pros: - should have the lowest impact on system performance of the three options - each protocol gets its own slice of the pie and doesnt impact others - cons: - increased coordination required, need to reference the same limits across multiple streams - still makes it difficult to precisely limit the overall bandwidth usage. - global limiting using a single rate limiter over all connections - pros: - will successfully limit the amount of bandwidth ipfs uses. - cons: - ipfs will be quite slow when rate limited in this way Related Issues: - https://github.com/ipfs/go-ipfs/issues/2489 - https://github.com/ipfs/go-ipfs/issues/2828 - https://github.com/ipfs/go-ipfs/issues/2917 - https://github.com/ipfs/go-ipfs/issues/2923

Posted by whyrusleeping on Aug 9, 2016, 4:33 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.5,000 issues0 comments

pricing (Software)

Implement bandwidth limiting

whyrusleepingAug 9, 2016, 4:33 PM

We need to place limits on the bandwidth ipfs uses. We can do this a few different ways (or a combination thereof): - per peer limiting on each actual connection object - pros: - low coordination cost (no shared objects between connections) - should have lower impact on performance than blindly rate limiting the whole process - cons: - no flow control between protocols, dht could drown out bitswap traffic - per subnet limiting - pros: - avoids rate-limiting LAN/localhost connections. - cons: - it's not always possible to tell what's "local" (e.g., with IPv6). - per protocol limiting on each stream - pros: - should have the lowest impact on system performance of the three options - each protocol gets its own slice of the pie and doesnt impact others - cons: - increased coordination required, need to reference the same limits across multiple streams - still makes it difficult to precisely limit the overall bandwidth usage. - global limiting using a single rate limiter over all connections - pros: - will successfully limit the amount of bandwidth ipfs uses. - cons: - ipfs will be quite slow when rate limited in this way Related Issues: - https://github.com/ipfs/go-ipfs/issues/2489 - https://github.com/ipfs/go-ipfs/issues/2828 - https://github.com/ipfs/go-ipfs/issues/2917 - https://github.com/ipfs/go-ipfs/issues/2923

Comments (0)

No comments yet. Start the discussion.

Comment on this issue