Safehash

From EMule Wiki
(Difference between revisions)
Jump to: navigation, search
(New page: Safehash is a viarion of the old [[filehashing], so the hashing is done in a different thread instead of blocking the gui. == Official implementation == Safe Hash: * Gaps are clipp...)
 
(wikify)
Line 5: Line 5:
 
Safe Hash:
 
Safe Hash:
  
    * Gaps are clipped to the file size when loaded. If the part file size is smaller than the expected size then the gap in the end is added in the case it's not already there(Can be caused by crash while flushing the buffer, or by outside modifying if the part file). Gaps are also added in a more controlled manner, which completely prevents gap overlapping(fixed, eMule 0.29).
+
* Gaps are clipped to the file size when loaded. If the part file size is smaller than the expected size then the gap in the end is added in the case it's not already there(Can be caused by crash while flushing the buffer, or by outside modifying if the part file). Gaps are also added in a more controlled manner, which completely prevents gap overlapping(fixed, eMule 0.29).
    * Fixed possible bug that only checks the first chunk of each written block for completion, even in the unlikely(but possible) case that two chunks are written to and completed at once(fixed, eMule 0.29).
+
* Fixed possible bug that only checks the first chunk of each written block for completion, even in the unlikely(but possible) case that two chunks are written to and completed at once(fixed, eMule 0.29).
    * Added check when loading the part file to make sure the part file size doesn't exceed the desired size(In case it was enlarged by outside modifying). Prevents bug with both file completing and initial hashing(fixed, eMule 0.29).
+
* Added check when loading the part file to make sure the part file size doesn't exceed the desired size(In case it was enlarged by outside modifying). Prevents bug with both file completing and initial hashing(fixed, eMule 0.29).
    * Loaded hashlists are not assumed to be valid, and are checked against the file hash. Prevents a case of using a corrupt hashlist due to part met file corruption(fixed, eMule 0.30).
+
* Loaded hashlists are not assumed to be valid, and are checked against the file hash. Prevents a case of using a corrupt hashlist due to part met file corruption(fixed, eMule 0.30).
    * Closing eMule while files are still hashing no longer causes any crashes, and all threads exit quickly and safely(fixed, eMule 0.30).
+
* Closing eMule while files are still hashing no longer causes any crashes, and all threads exit quickly and safely(fixed, eMule 0.30).
    * Only one known file is hashed at a time(fixed, eMule 0.30).
+
* Only one known file is hashed at a time(fixed, eMule 0.30).
    * Refreshing the shared files while files are hashing no longer causes these files to be hashed twice(fixed, eMule 0.30).
+
* Refreshing the shared files while files are hashing no longer causes these files to be hashed twice(fixed, eMule 0.30).
    * Fixed handling of files which divide evenly into chunks, meaning the last chunk is 0-sized, to be compatible with eDonkey's protocol(fixed, eMule 0.30).  
+
* Fixed handling of files which divide evenly into chunks, meaning the last chunk is 0-sized, to be compatible with eDonkey's protocol(fixed, eMule 0.30).  
  
  
Line 19: Line 19:
 
SaferHash with JobQueues based on Sluggfiller's SafeHash
 
SaferHash with JobQueues based on Sluggfiller's SafeHash
  
    * JobQueue 1: Using a JobQueue for harddisk-access Threads except for hashing of just downloaded parts and buffer-flushing.
+
* JobQueue 1: Using a JobQueue for harddisk-access Threads except for hashing of just downloaded parts and buffer-flushing.
    * User can decide how many jobs are processed simultaneously (1..10, default: 1)
+
* User can decide how many jobs are processed simultaneously (1..10, default: 1)
    * Added 'Hash Jobs' list to Server-Window to show the waiting jobs
+
* Added 'Hash Jobs' list to Server-Window to show the waiting jobs
    * JobQueue 2: for hashing of just downloaded parts and buffer-flushing another JobQueue which allows 10 simultaneous jobs is used.  
+
* JobQueue 2: for hashing of just downloaded parts and buffer-flushing another JobQueue which allows 10 simultaneous jobs is used.  
  
  
 
== eMule plus ==
 
== eMule plus ==
  
    * Hashing Priority: the hashing process is a resource hog task. You can set different priorities for it, but take in account that a lower priority will give you a more responsive system while the hashing process will last a little longer.  
+
* Hashing Priority: the hashing process is a resource hog task. You can set different priorities for it, but take in account that a lower priority will give you a more responsive system while the hashing process will last a little longer.  
  
  

Revision as of 10:11, 23 March 2007

Safehash is a viarion of the old [[filehashing], so the hashing is done in a different thread instead of blocking the gui.

Contents

Official implementation

Safe Hash:

  • Gaps are clipped to the file size when loaded. If the part file size is smaller than the expected size then the gap in the end is added in the case it's not already there(Can be caused by crash while flushing the buffer, or by outside modifying if the part file). Gaps are also added in a more controlled manner, which completely prevents gap overlapping(fixed, eMule 0.29).
  • Fixed possible bug that only checks the first chunk of each written block for completion, even in the unlikely(but possible) case that two chunks are written to and completed at once(fixed, eMule 0.29).
  • Added check when loading the part file to make sure the part file size doesn't exceed the desired size(In case it was enlarged by outside modifying). Prevents bug with both file completing and initial hashing(fixed, eMule 0.29).
  • Loaded hashlists are not assumed to be valid, and are checked against the file hash. Prevents a case of using a corrupt hashlist due to part met file corruption(fixed, eMule 0.30).
  • Closing eMule while files are still hashing no longer causes any crashes, and all threads exit quickly and safely(fixed, eMule 0.30).
  • Only one known file is hashed at a time(fixed, eMule 0.30).
  • Refreshing the shared files while files are hashing no longer causes these files to be hashed twice(fixed, eMule 0.30).
  • Fixed handling of files which divide evenly into chunks, meaning the last chunk is 0-sized, to be compatible with eDonkey's protocol(fixed, eMule 0.30).


eWombat implementation

SaferHash with JobQueues based on Sluggfiller's SafeHash

  • JobQueue 1: Using a JobQueue for harddisk-access Threads except for hashing of just downloaded parts and buffer-flushing.
  • User can decide how many jobs are processed simultaneously (1..10, default: 1)
  • Added 'Hash Jobs' list to Server-Window to show the waiting jobs
  • JobQueue 2: for hashing of just downloaded parts and buffer-flushing another JobQueue which allows 10 simultaneous jobs is used.


eMule plus

  • Hashing Priority: the hashing process is a resource hog task. You can set different priorities for it, but take in account that a lower priority will give you a more responsive system while the hashing process will last a little longer.


See also

Retrieved from "?title=Safehash&oldid=1560"
Personal tools