Difference between revisions of "ICH"
(→What are its results?) |
|||
(7 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
+ | <center> | ||
+ | '''English''' | [[ICH-de|Deutsch]] | ||
+ | </center> | ||
+ | |||
== 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.28MB) 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 | + | Once a [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is known to be [[corrupt]], it begins 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. | ||
Once it has downloaded it, it will add it to the rest of the already downloaded [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] and hash it, to see if the resulting hash is the same as the hash it should have. If it is, the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] has been successfully completed. If it is not, then it will download the next 180KB of the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] and so on. | Once it has downloaded it, it will add it to the rest of the already downloaded [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] and hash it, to see if the resulting hash is the same as the hash it should have. If it is, the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] has been successfully completed. If it is not, then it will download the next 180KB of the [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] and so on. | ||
− | == What are | + | == What are its 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.28MB the whole [[FAQ_eD2k-Kademlia#What_is_a_chunk?|chunk]] is in size. |
− | The worst case | + | The worst case should 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 | + | == Is it useful? == |
− | 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? == | ||
− | 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% | + | 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% corrupted 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. |
Latest revision as of 10:29, 10 May 2008
English | Deutsch
Contents
Description
When a chunk is downloaded and results corrupted, aMule would normally redownload the whole chunk (9.28MB) 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 known to be corrupt, it begins 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 its 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.28MB the whole chunk is in size.
The worst case should 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 useful?
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% corrupted 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.