JumpStart (revision 932)
This new option is specially designed for individual releasers on slow connections, as well as it helps to minimize releaser's upload traffic during distribution.
It works as following:
1. Individual releaser shares a file.
2. Every client who wants to download that file is going to see only two chunks of that file for duration of JumpStart period.
3. Each client sees two different chunks or if too many clients want that file, two least seen chunks.
4. As soon as a chunk has been downloaded no one is going to see that chunk again for duration of JumpStart period (but you might have some clients in the queue for that already downloaded part).
5. As soon as all chunks have been downloaded JumpStart period is over and everyone can see a full file.
So, by the end of JumpStart period all chunks will be uploaded at least once and our tests (more than 30 Jumps) show that in the most cases all chunks are uploaded at least once when total traffic for a released file is around 150-200% of the file size (e.g. all chunks for 600Mb file can be uploaded with 900Mb total traffic for that file).
Things you have to know:
1. Only for new releases! You cannot expect good results from JumpStart if a file is already spread. It might happen that some part is so well spread that no one will download it from you and in this case JumpStart will be waiting forever, you will be a 'No needed parts' source from other client's point of view. It is possible to turn JumpStart off any time you wish.
2. For the same reason as #1 you cannot release from many sources (e.g. release groups).
3. It works only for complete files.
4. JumpStart stores data (e.g. already downloaded chunks) in the database so it's safe to restart eMule Plus.
To activate JumpStart you have to go to Shared Files, JumpStart option is in the Priority context menu. Please note that file priority (e.g. Release) and JumpStart are two different things, JumpStart can be activated with any Priority. You can watch JumpStart messages in the debug log.
The JumpStart FAQ
My download speed sucks! Will this feature help?
This feature is for releasers, to ease their burden of introducing new files to the network. This doesn't help you with your download speed problems.
What is JumpStart?
It is a system that greatly speeds up the initial spreading of file chunks for a new release.
When can I use it?
When you are starting a new release. In other words, when you are the only source and there isn't even a single byte of that file in the network yet.
Well, I started releasing a file without JumpStart, can I turn it on now?
No. It won't help the release at this time. But don't forget to do so on your next release.
The file was already released, but a really long time ago, I'm sure there's nothing of it left on the network, so I'm turning JumpStart on anyway.
Well, we can't really stop you... Just be prepared that JumpStart won't be able to turn itself off at the right time, and will perform worse than not using it. Specifically don't use JumpStart if you're answering a reshare request.
I'm releasing the file simultaneously with my buddy, and you are saying I can't use this system?
Correct. On a positive side, some of our tests have shown that sometimes you can do better with one machine using JumpStart than with two using a normal system.
I'm downloading this file myself, and I want to help spreading it. Can I use this system for that?
No, it does not work for incomplete files.
Ok, I've completed the file, can I use it now?
No, remember the golden rule, not a single byte of that file should be out there already.
Wish I could try it.. But with my slow 12Kb/s upload I can't really release any files...
Hey, we've got news for you! With this system we had people successfully releasing files on a 6Kb/s upload!
If it works that well on those slow connections, then on my thick pipe it must be even better! I'll be able to release a file every 20 minutes!
Umm.. The effect is much more noticeable on slow connections. On your fast one you probably won't see that big improvement, but anyway it will reduce upload traffic required for good file distribution.
Something is wrong! People are complaining that they don't see a full source for a file!
This is exactly how it works, the source (you) is there, but hidden. Explain it to those downloading from you. Even better to warn them when you advertise a file, that you are using a new system and it may *look* like there is no any full source.
But what is the problem with the normal system?
The problem is that you have no control over which parts of a file people are downloading from you, and some parts end up being uploaded many times, while others are not uploaded at all. The net result is that you can upload several times the size of the file and there still won't be a complete set of file parts spread on the net.
So, how does it actually work?
It works by showing only specific file parts to the clients, and by tracking precisely who has downloaded what. As soon as somebody has downloaded a complete chunk and can become a source for it, the system switches its attention to other chunks.
What happens if somebody downloads a chunk and then disappears from the net?
It's unpleasant, but it's not the end of the world. After the JumpStart period ends, the normal upload resumes and people would be able to pick the missing chunk from you.
I'd like to reboot my computer, but I'm afraid. Will your system forget everything it had already done?
No, the JumpStart state is kept between restarts. In fact we hope it is stored rather reliably. We're using a database now for this data-intensive feature.
Where do you store the data? Is there a jumpstart.met file?
No, we are using the Berkeley Database for this. The relevant files are located in the DB\ subdirectory of the main eMule Plus installation directory.