SQL in the base system

Ivan Voras ivoras at fer.hr
Fri May 11 16:13:06 UTC 2007


Mike Meyer wrote:
>> Perhaps this is a good time I should mention that I think sqlite would
>> also be good for the password and login databases? :)
> 
> Someone has already pointed out the horror that is the Windows
> registry. IIUC, even MS has figured out this is a bad idea, and gotten
> away from it with Vista. But it's been tried on Unix systems before as

This is the first time I hear about Vista - AFAIK it relies even more on 
registry, to the point that the boot process also uses it.

Registry was pretty bad in Win9x, but AFAIK most of those issues were 
because FAT32 is a bad file system. I never had a registry problem (on 
many machines) running Win2k and WinXP.

> Using a binary format brings it's own problems. How hard is it to fix
> a corrupt database? How hard is it to figure out that the database is
> so corrupt you aren't going to get anything out of it, so you might as
> well give up? How robust is it - can a corrupt block fry the entire
> database? How about portability - can I move the file to a completely
> different architecture and still get the data from it? If any of these
> are noticably worse than they are for text files, changing is probably
> not a good idea.

Most of those issues are valid, but don't strongly advocate against 
databases, because the same issues (corruption, rebuilding, manual 
inspection) are present for directories of text files. Endian issues are 
solved in sqlite.

I don't think databases are so scary (but possibly that's lack of 
experience on my part). If you would get a corrupt block in the middle 
of a complex text file, it would wedge your system just as bad as if you 
got a bad block in a table in the database (anecdotally, sqlite database 
can be read even in those circumstances, if you avoid the corrupt 
table). (And a corrupt block in an important metadata section is the 
same as a corrupt block in the directory record on the file system). The 
objective downside is that there are more blocks in a database.

> Someone else mentioned XML. Well, it's easy to parse - assuming you
> read that as "someone else wrote the parser for us". That's true for
> lots of things. I also question the sanity of using it. But I wind up
> doing a lot of it, because my clients like the buzzword compliance. I
> regularly beat on them to take advantage of what XML can do that other
> formats can't. Meaning I make them install validation software, and
> pay me to write schemas for them, and get them to add hooks to the
> repository so you can't check in xml files that don't validate. But if
> you're not going to do that kind of thing, the major feature XML
> brings is the buzzword compliance.

Bofore I get misunderstood, I'd like to say that I'm not actually such a 
big fan of XML, but I think it's currently the lesser of evils. The 
alternative is either to create a one-off file format for each and every 
purpose (aka "the unix way"), or use some XML-replacement (JSON & 
others) which has most of the evils of XML and introduce lack of support 
from existing tools.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20070511/62b51d2f/signature.pgp


More information about the freebsd-hackers mailing list