Re: SQL in the base system



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.

Attachment: signature.asc
Description: OpenPGP digital signature



Relevant Pages

  • Re: SQL in the base system
    ... registry, to the point that the boot process also uses it. ... How hard is it to figure out that the database is ... so corrupt you aren't going to get anything out of it, ... repository so you can't check in xml files that don't validate. ...
    (freebsd-hackers)
  • SQL in the base system (Was: New FreeBSD package system (a.k.a. Daemon Package System (dps)))
    ... Someone has already pointed out the horror that is the Windows ... it's config system as they do about the Windows Registry. ... How hard is it to figure out that the database is ... Someone else mentioned XML. ...
    (freebsd-hackers)
  • Re: Config file to turn on/off features ?
    ... > places you could store configuration are in the registry or a database. ... XML files for configuration are easy for users to edit, ... > the user to corrupt the config file. ...
    (microsoft.public.dotnet.framework)
  • Re: Saving User Application Data
    ... XML, Database and Registry are all possible choices. ... Check out the Configuration Management Application Block, ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Hard disk configuration for fast write (Insert)
    ... What is the best Hard disk configuration (With minimum ... Insert but not that much of read, also this database dos not need to ... Striping, typically 1MB stripes. ... Of course, with a nologging database, the only recourse with a corrupt block is to find out the relevant object and drop/recreate it. ...
    (comp.databases.oracle.server)