james-server-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joachim Draeger ...@joachim-draeger.de>
Subject Re: IMAP Draft: Cluster
Date Sun, 09 Jul 2006 11:18:32 GMT
Am Samstag, den 08.07.2006, 12:56 +0200 schrieb Bernd Fondermann:

> > For accessing a DB cluster you don't need any specialization. Any
> > application that uses JDBC should be able to do it quite out of the box.
> 
> Keeping the whole of James in mind, I think it is more worthwhile to 
> think about clustering James instead of clustering IMAP servers using 
> RDBMSs.

Well, I was talking about an cluster-able Message Repository and what
has to be considered when using it with IMAP.
Of course a cluster-able Message Repository includes that it has to
accessed by complete James. 
For example: I you would implement a MailRepository that relies on RDBMS
locking instead of doing it locally. Central UserRepository should be no
problem. Than you could have multiple instances of James without having
to touch any further existing code. As a first step you could measure
the queue length and cpu utilization to do load balancing. 
The only blocking thing is the local HashMap locking in
JDBCMailRepository. (Of course there could be other things because I
have limited experience with James)

The weak point would be that there are running local queues on the
individual servers. Nobody could foresee how work-intensive a single
queue entry would be.
The solution would be a shared queue for all James instances. This would
require a locking-algorithm to determine which server should pick up
which entry. But that should be possible using RDBMS.
James instances could be added and removed on the fly.

I don't see a reason why James has to be cluster agnostic apart from
that. Using RDBMS together with the dbfile strategy should be most
effective. 

Fail-safe, clustered file-systems and RDBMSs are there, open source
solutions exist, we could rely on that without reinventing the wheel.

Joachim 
	

> 
>    Bernd
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Mime
View raw message