Subject: Re: Mail::Box::DBI (was Re: Mail::Box v2.043)

From: Yuval Kojman <[email-masked]>
Date: Thu, 10 Jul 2003 19:53:26 +0300 (IDT)

> It would help if I receive two or three existing implementations (I will
> not publish that code) to see what people are doing.  Maybe, I can create
> a base class DBI implementation which can be extended to personal needs...
> Anyone?

i have a few ideas:

the DBI layer and a Mail::Box::DBI should be seperate in my views, in
terms of database specifics. I think there should be another type of
object, which is created from a default set but can be filled in by some
externally constructed one, which allows the definition of the table
structure, columns, et cetera. I think it'll also be wise to plan it so
that you can have it work the the other way round, providing a DBI
interface to Mail::Box objects for backups or whatever.

If the Mail::Box::DBI (or whatever it'll be) mailbox driver uses this
mediator object to create SQL queries for it, this will also allow for
greater flexibility and optimisations between database servers, and
provide a means to allow emphasis on specific details - will message
reading be optimised for skimming - like in a quarenteen database, will
it be low volume personal mail, etc.

Since i tend to babble, if nobody understood what the hell i wanted i'd
be glad to draw a little doodle explaining everything... =)

> > I hope it would also
> > assist in provding POP/IMAP access to quarantined mail in the future.
> > Over all would this be the better solution?
>
> You are talking about POP and IMAP servers here... that will be a lot
> of work.
>

I'm up to it, and i have some plans, and dillemas I was going to bring
up on the list this week, when i'll have more time.

the main problem is the current memory performance of the perl thread
model, and it's 'experimental' status, which is a bit of a taboo
regarding production environments, versus real forking, which has it's
obvious disadvantages aswell.

it'd also be cool to hack SGI::FAM into the mess for local mailboxes,
and create an similarly functioning interface with IMAP's IDLE command
when the Mail::Box::IMAP4 module is ready... i think a new method call
("monitor"?) which blocks, and another which registers with a
global (Mail::Box::Manager global, that is) which allows monitoring
of multiple mailboxes would be useful both for a server, and
for real MUAs, not just the scripts we all write to munge our mail...

bah. i better stop.

ciao ciao!

- -- 
Yuval Kogman  ( [email-masked] | [email-masked] )
kung foo master: /me sushi-spin-kicks : neeyah!!!!!!!!!!!!!!!!!!!!!
et perl hacker. !@# http://nothingmuch.woobling.org/ gpg:0xEBD27418
http://wecanstopspam.org/                    http://www.habeas.com/