-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Alexey Pechnikov wrote: > May be on FS layer?
I specifically said VFS which is SQLite functionality - see http://www.sqlite.org/c3ref/vfs.html and http://www.sqlite.org/c3ref/io_methods.html > Which FS can help me for this? I'm using ext3 FS now on my > debian box. Filesystems don't help since they don't store redundant copies of data. At the block layer things like RAID do. > May be rsync or like software can restore corruption blocks from > full or incremental backups? How? The backup would have to correspond exactly to the current file otherwise you could be restoring stale blocks. RAID is a far better approach. > Yes, I'm using SQLite on servers. Just because you call it a server doesn't make it "server" hardware :-) When you pay the big bucks you get memory that can detect and correct errors, cpus run in lockstep with failure detection, multiple paths to storage devices, raid and similar technologies on the storage subsystem etc. Standard PCs have none of this. > Database servers such as Oracle or PostgreSQL have transactions log and > restore log. Those logs are effectively duplicates of the data or ways of reconstructing the data. SQLite has a transaction log for the last transaction only and only while it is progress. > How can I provide restore mechanisms for SQLite database? You need to sit down and work out how much your data is worth, what you want to protect against, how often bad things happen and how much you are prepared to pay. Food for thought: http://www.acmqueue.org/modules.php?name=Content&pa=showpage&pid=504 http://lwn.net/Articles/290141/ http://www.newscientist.com/blog/technology/2008/03/do-we-need-cosmic-ray-alerts-for.html http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Error-free_data_transfer > May be > any fuse VFS module can do incremental delta of changes? May be I can do > incremental copy of SQLIte database after every writing transaction "on the > fly" (without database blocking) by rsync/... ? You can write a SQLite VFS module (*not a fuse one*) that does data duplication. You only need to worry about the duplicated data when xSync is called. > P.S. Database servers not good for me because I need for free, fast and > reliable embedded database in my multi-thread application server. You can't have 100% reliability as well as free (hardware and software). You can aim for 99 point some number of nines, but the more nines you have the more expensive it gets exponentially. In the real world, you will find that SQLite is suitably reliable for a large number of people and projects, taking http://www.sqlite.org/lockingv3.html#how_to_corrupt into account. If you are more paranoid than that then write a SQLite VFS module that effectively does custom file level 'raid'. Duplicate data as many times as you want (don't forget to send it over the network as well for other machines to check). You'll also want to check multiple copies on reads in case one is corrupt. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFIiYvnmOOfHg372QQRAvvzAKCWC33+kPicfrqltkHKTrB64LwV1gCghmKk z0uTsHRi39IvLEd0mE/qWIU= =ESiE -----END PGP SIGNATURE----- _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users