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

Reply via email to