dragonflyoss / Dragonfly

This repository has be archived and moved to the new repository https://github.com/dragonflyoss/Dragonfly2.
https://d7y.io
Apache License 2.0
6k stars 774 forks source link

Proposal: Dynamical rate limiting based on bandwidth of p2p-network #1344

Open lowzj opened 4 years ago

lowzj commented 4 years ago

Why you need it?

related issue: #1341

Dragonfly has a good feature to provide rate limiting not only for individual downloading task, also for entire host. The value of rate limiting in Dragonfly is manually configured based on users' experience. It works well in most scenarios. But this static configuration way may cause 2 problems:

  1. The network bandwidth in the host cannot be fully utilized to speed up downloading when the bandwidth is idle.
  2. The downloading task will increase the pressure on the host network and affect the business application deployed on the host when its network is busy.

So this idea is to proposed to dynamically adjust the rate limiting of downloading and uploading data.

How it could be?

Other related information

zaunist commented 4 years ago

I am a junior student majoring in network engineering, and I intend to participate in this summer activity. I would like to know what technical requirements are required to participate in this project, can the mentor give some pointers?

lowzj commented 4 years ago

@beyondexp Welcome to this summer of code, I think that you should:

zaunist commented 4 years ago

@beyondexp Welcome to this summer of code, I think that you should:

  • good at GoLang, basic data structure and algorithm
  • have a continuous passion for the open source community and willing to share

I don’t know if I can meet your requirements, but I will do my best

qhb1001 commented 4 years ago

Hello guys! Thanks for this great project.

I would like to list the ideas I got for this proposal, to make sure that I'm on the right track. If you find something wrong or inapproprite to you, please comment! Also, I would really appreciate it if you can provide me with additional recourses for me to dive into for the better implementation regarding the proposal. Okay, here we goes.

The goal of this proposal is to optimize the bandwidth usage in DragonFly, which could be seperated into two parts:

Thanks advance for your time on this comment!