On Fri, Nov 21, 2003 at 05:28:43PM +0800, Bill Hacker wrote: > Christian G. Warden wrote: [...] > >I think dbmail should focus on being a high-performance, reliable, > >scalable message store. > > > >xn > > Fortunately, these goals are by no means mutually exclusive... > > But the "high performance, reliable, scalable" (whatever) "store" is > called a file system. <G> In any of its flavors a fs *is* a database in > its own right, and the DB engines we use have to impose a different > style of DB on top of it. In order to recover that translation > 'overhead' we need to get advantages out of the DB engine that we cannot > easily get directly from the fs.
A database solves the main performance issues associated with common fs-based message stores, large files files containing many messages and directories containing a large number of messages in separate files. > Better security and easier configuration can probably be taken as > "stipulated" in favor of the DB engine. High performance is another matter. > > A 'Database Management System' can only compete on performance with the > raw fs when there are *complex and/or difficult to predict* tasks or > manipulations to be performed on whatever is being stored. Ordinary > indexed storage, i.e. store/retrieve w/o alteration, w/o sub-selects, > w/o ordering, w/o complex WHERE clauses, etc. is not really its best > suit of clothes, 'coz the right fs does those things pretty well as is. > The better ones are even transactionally aware. A database can perform well at easier tasks too. In my experience, dbmail is already faster at updating a large folder than uw-imapd with mbox. Ilja's recent changes make copying messages very fast. If we index some of the headers, we can also get improved performance on server-side searching. xn