Paul J Stevens wrote:
> Some kind of replication of the dbmail_users table across database
> servers would still be required, like we do now between ldap and sql.
> That would allow *any* of the database backends to function as the
> primary backend - in fact, any of the active daemons/tools would be able
> to use any of the backends for it's initial database connection,
> switching to another if the authenticated user so requires.
>
>   
My thought on separating the tables like I had stated is that you could 
have a circular replication cluster or ndb cluster on the front end that 
all the daemons could use, that would include the acl and mailboxes 
tables. Changes to these tables few and far between, making the 
replication of data in this front-end cluster much faster than that of 
message insertion and cleanup. The rule set on which backend database to 
put mailboxes could be per mailbox or per user or mixed. If the rule was 
per user, the first 10 mailboxes would be created on the server set on 
the users row setting. If that setting changed, then new mailboxes would 
go to a different backed. The backend servers could be a simple 
master-slave or master-master replication setup with only 1 server in 
that cluster talking to dbmail. I think this approach with a fully 
replicating front-end cluster and multiple backend clusters could be 
used to have a huge user base around the world, with users being homed 
to a backend near their actual location, and using a front-end 
connection at that same site.

I could have data center locations in Los Angels, New York, London, and 
India. I have users all around, but primarily closer to one of those 
areas. The user would use the pop3 or imap that is running at their 
closest data center. The rule is set such that their backend is one of 
the backends at that same data center. But I have developers in India 
and Los Angeles that need to be able to access a public mailbox on a New 
York backend. The front-ends are replicating over a vpn or private 
links. The dbmail daemons would also be able to connect to any backend 
over this private meshed network. I'm in Los Angeles and open the Public 
mailbox - that mailbox data is pulled from New York to Los Angels to the 
daemon I'm connected to, then the results are sent on to me the client. 
Same as if I had done the same connecting to the India site. This should 
not break any functionality as each mailbox is fully stored on the same 
backend. I do like the approach of having it per mailbox, as some users 
have a lot of email in a lot of mailboxes.

Of course all of this advanced separation of message storage could be 
essentially disabled by just putting all the tables on the same database 
server as in backend #0 - the default.

-Jon

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.

_______________________________________________
Dbmail-dev mailing list
Dbmail-dev@dbmail.org
http://mailman.fastxs.nl/cgi-bin/mailman/listinfo/dbmail-dev

Reply via email to