SOTN: share only the need.
hideOS: hide overshare.
ICS: intelligent chunk selection.
Let's begin!
given that a client should use (imo) the ICS feature to download a chunk, how these feature works with ICS? (obviously i can write false statements if the code is different compared to the gathered informations)
In few words, if i understand correctly, ICS should pick the rarest available chunk of a file for download. Thanks to kad in first minutes and source exchange after, a client can reach almost all sources (except ones that didn't publish the file because them share a lot of files, so kad publishing needs time) in the network and can reach also almost all clients that are downloading the file. let's call clients that download the chunk as "downloaders", while the sources as "releaser".
A downloader have, after some time, the best picture of the network regard to chunk availability.
For the same reason, sooner or later (except for small files) a releaser if it publish the file on kad, will have all the downloaders in queue.
Now, a releaser can know with a good approximation the global distribution of file chunks? yes! In fact others releasers should be not counted, because them have, obviously, all parts of the file and moreover a releaser normally don't know other releasers of the file directly.
Then the chunk distribution can change only if a downloader gets a new chunk, but the releaser know all downloaders so it knows all changes.
That said, let's analyze the features.
With hideOS a releaser can nonetheless hide the rarest chunk, if it was recently sent to a downloader, and this is bad and works against ICS design.
For example: a file with 3 chunks A, B, C.
A is the rarest.
Then there is B and after C.
The releaser sent A and B, after it will show only C, even if A is still the rarest chunk.
With SOTN, if SOTN works with the information gathered from clients in queue (only clients in queue is enough) for the file, a scenario such as the previous one can never happen. In fact sotn recognize the rarest chunk thanks to information gathered from the downloaders, that is a good snapshot of chunks availability on the network, and will hide the others, thus allowing to spread faster the rarest chunk without harm to ICS.
Conclusion: SOTN should be enabled (in an hardcoded fashion) for all files.
This post has been edited by pier4r: 09 June 2011 - 03:37 PM