Difference between revisions of "ICH"
m (corrupt links ;P) |
|||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
− | When a [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is downloaded and results | + | When a [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is downloaded and results [[corrupt]]ed, [[aMule]] would normally redownload the whole [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] (9.18MB) in order to get the file correctly. ICH (Intelligent [[Corrupt]] Handling) is a workout to avoid redownloading the whole chunk when possible. |
== How does it work? == | == How does it work? == | ||
− | Once a [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is knon to be corrupt, it beig to redownload it. Instead of dropping the whole already-downloaded | + | Once a [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is knon to be [[corrupt]], it beig to redownload it. Instead of dropping the whole already-downloaded |
[[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]], it keeps it and deletes the first 180KB. It then downloads the first 180KB of that [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] again. | [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]], it keeps it and deletes the first 180KB. It then downloads the first 180KB of that [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] again. | ||
Line 12: | Line 12: | ||
== What are it's results? == | == What are it's results? == | ||
− | The best that can happen with ICH is that the first 180KB in the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] are the | + | The best that can happen with ICH is that the first 180KB in the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] are the [[corrupt]]ed ones. If so, only 180KB have to be redownloaded out of the 9.18MB the whole [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is in size. |
− | The worst case sould be when the last 180KB of the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] are the | + | The worst case sould be when the last 180KB of the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] are the [[corrupt]]ed bytes. In this case, the whole [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] has to be redownloaded. Anyway, since redownloading the whole [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] would have to be done anyway if ICH had been disabled, this is not a loss at all (except for some little CPU resources). |
== Is it usefull? == | == Is it usefull? == | ||
− | It is said that it saves up to 50% of the corrupt downloaded [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]]s on average, which means that out of every 100MB of | + | It is said that it saves up to 50% of the [[corrupt]] downloaded [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]]s on average, which means that out of every 100MB of [[corrupt]]ed data, only 50MB are redownloaded. Which is quite good! |
== Is it CPU expensive? == | == Is it CPU expensive? == | ||
Line 24: | Line 24: | ||
Not at all. On any modern CPU, hashing the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]]s takes less resources that you would imagine. Since it saves 50% corrputed data in average (and can even save up to 99%) and the hashing process is only done from time to time when necessary, the resources it makes use of are practically null. | Not at all. On any modern CPU, hashing the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]]s takes less resources that you would imagine. Since it saves 50% corrputed data in average (and can even save up to 99%) and the hashing process is only done from time to time when necessary, the resources it makes use of are practically null. | ||
− | Even on old CPUs you should still take into consideration not disabling ICH, since the amount of CPU it takes, compared to the amount of | + | Even on old CPUs you should still take into consideration not disabling ICH, since the amount of CPU it takes, compared to the amount of [[corrupt]]ed data it might save, is far enough to keep it active. |
To disable it, go to Preferences -> Files -> ICH -> ICH active (disable) | To disable it, go to Preferences -> Files -> ICH -> ICH active (disable) | ||
Aditional notes: Take a look at [[AICH|the AICH documentation]] since [[AICH]] is the evolution of ICH. | Aditional notes: Take a look at [[AICH|the AICH documentation]] since [[AICH]] is the evolution of ICH. |
Revision as of 02:23, 20 October 2004
Contents
Description
When a chunk is downloaded and results corrupted, aMule would normally redownload the whole chunk (9.18MB) in order to get the file correctly. ICH (Intelligent Corrupt Handling) is a workout to avoid redownloading the whole chunk when possible.
How does it work?
Once a chunk is knon to be corrupt, it beig to redownload it. Instead of dropping the whole already-downloaded chunk, it keeps it and deletes the first 180KB. It then downloads the first 180KB of that chunk again.
Once it has downloaded it, it will add it to the rest of the already downloaded chunk and hash it, to see if the resulting hash is the same as the hash it should have. If it is, the chunk has been successfully completed. If it is not, then it will download the next 180KB of the chunk and so on.
What are it's results?
The best that can happen with ICH is that the first 180KB in the chunk are the corrupted ones. If so, only 180KB have to be redownloaded out of the 9.18MB the whole chunk is in size.
The worst case sould be when the last 180KB of the chunk are the corrupted bytes. In this case, the whole chunk has to be redownloaded. Anyway, since redownloading the whole chunk would have to be done anyway if ICH had been disabled, this is not a loss at all (except for some little CPU resources).
Is it usefull?
It is said that it saves up to 50% of the corrupt downloaded chunks on average, which means that out of every 100MB of corrupted data, only 50MB are redownloaded. Which is quite good!
Is it CPU expensive?
Not at all. On any modern CPU, hashing the chunks takes less resources that you would imagine. Since it saves 50% corrputed data in average (and can even save up to 99%) and the hashing process is only done from time to time when necessary, the resources it makes use of are practically null.
Even on old CPUs you should still take into consideration not disabling ICH, since the amount of CPU it takes, compared to the amount of corrupted data it might save, is far enough to keep it active.
To disable it, go to Preferences -> Files -> ICH -> ICH active (disable)
Aditional notes: Take a look at the AICH documentation since AICH is the evolution of ICH.