]> arthur.barton.de Git - netatalk.git/blobdiff - doc/README.ids
megatron, fix errors introduced in Sun Feb 6 10:16:00 2005 commit, 'replace a wrong...
[netatalk.git] / doc / README.ids
index 414146f150ea3f2ffbaaa75750da065efa82d4b5..a8539c3856f78fe942f0379fa27cf198e349d99d 100644 (file)
@@ -62,7 +62,9 @@ their embeded documents.  These can break in the same way as aliases.
 
 So how does netatalk approach the problem?
 
-Netatalk has 4 different methods of allocating IDs: last, hash, mtab or cnid.
+!!! The following is outdated, please refer to the Manual instead !!!
+
+Netatalk has two different methods of allocating IDs: last and cnid.
 
 DID = last.
 
@@ -73,25 +75,28 @@ lost.  This is the most simple method, but it is unreliable.  If you stick to
 the mac features which don't rely heavily on IDs it works fine.  If you try
 to use IDs much, things break.  
 
-DID = hash. 
-
-This uses inodes to identify files.  An inode is a unique number which
-is the equivalent to ID on ext2 (and 3) file systems.  However, an inode is
-significanlty bigger than an ID, so the number needs to be hashed to make it
-smaller.  Unfortunately this means it is nolonger unique, so you can get 2
-files with the same ID.  
-
-DID = mtab.
-
-This is similar to hash, but better.  This is not available on all operating 
-systems. See README.mtab for more details.
-
 DID = cnid. 
 
-This uses a Berkeley 3 database to store and maintain a directory of IDs
-similar to that of a catalogue file on a mac.  Consequently it is the most
-reliable method.  Unfortunately there seem to be heavy multi user problems 
-that lead to database corruption.  These are being worked on, but cnid remains
-the safest and most reliable DID scheme.  See README.cnid for more details.
-
-
+The CNID scheme in Netatalk attempts to assign unique IDs to each file and
+directory, then keep those IDs persistent across mounts of the volume.  This
+way, cross-volume aliases will work, and users are less likely to encounter
+duplicate CNID errors.  Prior to Netatalk 1.6.0, the CNID calculation
+scheme was not persistent, and IDs were assigned based on the UNIX device and
+inode number of a given file or directory (see DID = last above).  This was 
+fine for the most part, but due to limitations, not all available CNIDs could 
+be used.  As well, these IDs could change independently from Netatalk, and 
+thus were not persistent.  As of Netatalk 1.6.0, the CNID scheme is now the 
+default. On top of that, Netatalk uses the Concurrent Datastore method to 
+avoid the need for database locking and transactions.
+
+As stated above, CNID requires Berkeley DB.  Currently, Netatalk supports
+BDB 4.1.25 and 4.2.52  The recommended version is 4.2.52 as that is the version
+on which most testing has been done.  
+
+CNID has seen many contributors over the years.  It was conceived by
+Adrian Sun <asun@zoology.washington.edu>.  His developer notes can be found
+libatalk/cnid/README file.  It was later picked up and modernized by Uwe Hees
+<uwe.hees@rz-online.de>.  Then, Joe Marcus Clarke <marcus@marcuscom.com>
+started fixing bugs and adding additional features.  The Concurrent
+Datastore support was subsequently added by Dan Wilga <dwilga@mtholyoke.edu>.
+The CNID code is currently maintained by Joe Marcus Clarke.