$Header: /CVSROOT/dbm/RANTS,v 1.2 2007-01-18 18:10:50 tino Exp $ Please note that GNU-DBM is not very stable when it comes to irregular situations, like hard kill of proceses, power-outages while the database is not synced or parts of the database became corrupt data. What I would need is a databases as simple as GNU-DBM which is able to detect which part of the data became corrupt and let you read the unharmed data while it rejects the wrong data in case something really weird has happened. To make it clear what I mean, it shall be able to extract all still unharmed data from a database db.bad which has been prepared from a good database "db.ok" as follows: ( n=$RANDOM m=$RANDOM o=$RANDOM p=`expr $n + $m + $o` dd bs=256 if=/dev/random count=$n dd bs=256 if=db.ok count=$m skip=$n dd bs=256 if=/dev/random count=$o dd bs=256 if=db.ok skip=$p dd bs=$RANDOM if=/dev/zero count=123 ) > db.bad What I really would like to see is following: [ plug in USB harddrive as sda. The data will be killed! ] # mount /dev/sda1 /mnt # enter-valuable-data-in-database /mnt/db.hooray & # sleep 20; sync; sleep 100; sync; sleep 200 # dd if=/dev/random of=/dev/sda count=10000 # [ NOW UNPLUG THE USB DRIVE *WHILE* IT'S WRITTEN TO !!!! ] /mnt/db.hooray: write error kernel panic: cannot access sda, data lost # umount /mnt [ plug in USB harddrive again ] # mount /dev/sda1 /mnt mount: invalid partition table [ WELL DONE!!! ] # db-recover /dev/sda db.hooray [list of all data which is recoverable] Why do I want this? Well, you should know, there is nothing in this universe which is perfectly working. Errors are normal. And you know murphy: If there is something which still works even if something fails the worst, then a new type of error shows up. I am bored with all the plain old common types of errors showing up now and then, I would like to see some new types of errors. YKWIM. -Tino, webmaster@scylla-charybdis.com $Log: RANTS,v $ Revision 1.2 2007-01-18 18:10:50 tino Spelling errors corrected Revision 1.1 2004/08/22 05:52:30 Administrator Intermediate version for search functionality