You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-user@james.apache.org by hrishi Deshpande <hr...@rediffmail.com> on 2001/09/03 07:32:03 UTC

Scalability

Hi,

We are considering using JAMES to provide web mail boxes for clients. Can someone please help me out as in how scalable and stable is JAMES ? How many users can JAMES support ? What is the H/W required for implementing this ?

Can JAMES be successfully used for @4000 users ?
Has anyone already implemented JAMES anywhere ?

Please help me out here..


Thanx in advance
Hrishikesh Deshpande


 




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


Re: Scalability

Posted by Oki DZ <ok...@pindad.com>.
On Thu, 6 Sep 2001, Serge Knystautas wrote:

> I'm pretty sure the connection isn't used (or held open) until the
> writeMessageTo() is called.  You're implying that if you have 20 messages in
> your (JDBC managed) inbox, you have 20 open db connections.  I'm almost
> positive this isn't the case, and if it is, it clearly needs to be fixed.

I see, there's no problem in JDBCMailRepository regarding the db
connections, because the messages are always copied to local filesystem. 
In JDBCMailRepository.retrieve():
 MimeMessageJDBCSource source = new MimeMessageJDBCSource(this, key, sr);
 MimeMessageWrapper message = new MimeMessageWrapper(source);
 mc.setMessage(message);
 rsMessage.close();
 retrieveMessage.close();
 conn.close();
 return mc;

My problem arises from the use of db connection pooling and without local
copy; I couldn't return the connection promptly right the mc.setMessage(),
because the writeMessageTo() would be done long after the repository's
retrieve() method has returned. And yet, I couldn't rely on the gc to
return the db connection to the pool because it would be too long (ie: we
don't know when). But I think it is okay now, in the
MemeMessageJDBCSource, I return the db connection to the pool in its
finalize() method, and somewhere in other classes, I would just set mc
(any MailImpl) to null and do System.runFinalization(). (This is why I
like Java.)

Oki




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


Re: Scalability

Posted by Serge Knystautas <se...@lokitech.com>.
I'm pretty sure the connection isn't used (or held open) until the
writeMessageTo() is called.  You're implying that if you have 20 messages in
your (JDBC managed) inbox, you have 20 open db connections.  I'm almost
positive this isn't the case, and if it is, it clearly needs to be fixed.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/
----- Original Message -----
From: "Oki DZ" <ok...@pindad.com>
To: <ja...@jakarta.apache.org>
Sent: Thursday, September 06, 2001 2:49 AM
Subject: Re: Scalability


> On Wed, 5 Sep 2001, Serge Knystautas wrote:
>
> > I think I've heard a few hundred, but not thousands.  I would definitely
> > wait for the code in CVS to be released, because the current 1.2.1
release
> > is parsing messages during pop retrieval, which will dramatically slow
> > retrieval.
>
> It needs some improvement, I think; ie: regarding how the list of the
> messages is maintained by POP3Handler. Currently, the list, ie:
> userMailbox, holds MailImpl objects. Would not be a problem in
> repositories other than JDBC. But if the mail repository is in a database,
> you'd have a list of retrieved messages. The actual contents wouldn't
> really be retrieved until MailImpl.writeMessageTo(), but still, there
> would be many database connections open (by MimeMessageJDBCSource). If you
> use db connection pooling, that would eat up resources quite a lot; as
> long as the message list (userMailbox) has some elements in it, then that
> numbers of connections would be open also.
>
> Oki



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


Re: Scalability

Posted by Oki DZ <ok...@pindad.com>.
On Wed, 5 Sep 2001, Serge Knystautas wrote:

> I think I've heard a few hundred, but not thousands.  I would definitely
> wait for the code in CVS to be released, because the current 1.2.1 release
> is parsing messages during pop retrieval, which will dramatically slow
> retrieval.  

It needs some improvement, I think; ie: regarding how the list of the
messages is maintained by POP3Handler. Currently, the list, ie:
userMailbox, holds MailImpl objects. Would not be a problem in 
repositories other than JDBC. But if the mail repository is in a database,
you'd have a list of retrieved messages. The actual contents wouldn't
really be retrieved until MailImpl.writeMessageTo(), but still, there
would be many database connections open (by MimeMessageJDBCSource). If you
use db connection pooling, that would eat up resources quite a lot; as
long as the message list (userMailbox) has some elements in it, then that
numbers of connections would be open also. 

Oki



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


Re: Scalability

Posted by Serge Knystautas <se...@lokitech.com>.
I think I've heard a few hundred, but not thousands.  I would definitely
wait for the code in CVS to be released, because the current 1.2.1 release
is parsing messages during pop retrieval, which will dramatically slow
retrieval.  The code is CVS will just stream the message if there's no
reason to parse (such as during pop retrieval), so your memory and CPU usage
will be significantly lower.

Serge Knystautas
Loki Technologies
http://www.lokitech.com/
----- Original Message -----
From: "hrishi Deshpande" <hr...@rediffmail.com>
To: <ja...@jakarta.apache.org>
Sent: Monday, September 03, 2001 1:32 AM
Subject: Scalability


Hi,

We are considering using JAMES to provide web mail boxes for clients. Can
someone please help me out as in how scalable and stable is JAMES ? How many
users can JAMES support ? What is the H/W required for implementing this ?

Can JAMES be successfully used for @4000 users ?
Has anyone already implemented JAMES anywhere ?

Please help me out here..


Thanx in advance
Hrishikesh Deshpande







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




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