NJB> Eugene,
NJB> Re-reading your note, it sounds like you are seeing something other than
NJB> what I initially thought. You are describing delivery time for a single
NJB> message to the list?
Yes, one letter.
NJB> In that case, membership list handling wouldn't be the
NJB> problem, since it only occurs once for the message. In a very busy mailing
NJB> list server, it would be more of an issue because of the large numbers of
NJB> objects, which would create work for the garbage collector.
NJB> Instead, you appear to be seeing performance in LocalDelivery related to
NJB> saving the message for each user. Although there isn't anything that we can
NJB> do in James v2 to avoid saving a copy of the message for each user, there is
NJB> a change in the v2.2.0a1 test builld that would definitely impact
NJB> performance in that area.
NJB> It would help to know precisely where James is spending its time during your
NJB> test(s).
OK. I downloaded this version and retested for McKoi1.0 and MySQL 3.23.32
The results are attached
The legend of results is
*5000 users* - number of users in mail list
*Peak memory usage 283 460 Kb* - memory is occurred by JVM
*{07:56:52} 0 / - empty*
*{07:57:02} 0 / root*
*{08:04:24} 2731 / transport*
There
{07:56:52} - time. The 10 sec period for checking is used.
0, 2731 - number of rows in inbox table. Result of SQL - "SELECT
count(message_name) FROM inbox";
the database was being cleared before each test. it's number of
delivered letters in this time.
root - the state of spooled letter - "SELECT message_state FROM spool"
empty - no spooled message.
The McKoi1.0 with James 2.2.0a1 has in whole the same result.
The MySQL is faster than McKoi.
BUT
With MySQL It is impossible to check for list more 2500 users. The James
throws a exception "javax.mail.internet.ParseException: Out of data at position
5" for mail list with 3500, 5000, and more users.
javax.mail.internet.ParseException: Out of data at position 5
at org.apache.mailet.MailAddress.<init>(MailAddress.java:177)
at
org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailRepository.java:
709)
at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:351)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:89)
at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:125)
java.lang.RuntimeException: Exception while retrieving mail: Out of data at position 5
at
org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailRepository.java:
732)
at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:351)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:89)
at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:125)
NJB> There are some people using James for large mailing lists. Hopefully one of
NJB> them will provide some input on how they are doing that right now.
NJB> --- Noel
NJB> ---------------------------------------------------------------------
NJB> To unsubscribe, e-mail: [EMAIL PROTECTED]
NJB> For additional commands, e-mail: [EMAIL PROTECTED]
Best regards, Eugene mailto:[EMAIL PROTECTED]________________________________________________________
1000 users
peak memory usage - 217 332 Kb
{06:12:27} 0 / - empty
{06:12:37} 0 / transport
{06:12:48} 64 / transport
{06:12:58} 440 / transport
{06:13:08} 875 / transport
{06:13:18} 1000 / - empty
{06:13:28} 1000 / - empty
{06:13:38} 1000 / - empty
________________________________________________________
2500 users
peak memory usage - 282548 Kb
{06:30:21} 0 / - empty
{06:30:31} 0 / transport
{06:30:41} 0 / transport
{06:30:51} 0 / transport
{06:31:01} 10 / transport
{06:31:11} 187 / transport
{06:31:21} 369 / transport
{06:31:31} 555 / transport
{06:31:41} 742 / transport
{06:31:51} 934 / transport
{06:32:01} 1127 / transport
{06:32:11} 1320 / transport
{06:32:21} 1494 / transport
{06:32:31} 1685 / transport
{06:32:41} 1877 / transport
{06:32:51} 2072 / transport
{06:33:01} 2267 / transport
{06:33:11} 2466 / transport
{06:33:21} 2500 / - empty
________________________________________________________
5000 users
peak memory usage - 34 464 Kb
{06:58:33} 0 / - empty
{06:58:43} 0 / - empty
{06:58:53} 0 / root
{06:59:03} 0 / root
{06:59:13} 0 / root
{06:59:23} 0 / root
{06:59:33} 0 / root
{06:59:43} 0 / root
{06:59:53} 0 / root
{07:00:03} 0 / root
{07:00:13} 0 / root
{07:00:23} 0 / root
{07:00:33} 0 / root
{07:00:43} 0 / root
{07:00:53} 0 / root
{07:01:03} 0 / root
{07:01:13} 0 / root
{07:01:23} 0 / root
{07:01:33} 0 / root
{07:01:43} 0 / root
{07:01:53} 0 / root
{07:02:03} 0 / root
{07:02:13} 0 / root
{07:02:23} 0 / root
{07:02:33} 0 / root
{07:02:43} 0 / root
{07:02:53} 0 / root
{07:03:03} 0 / root
{07:03:13} 0 / root
The exception that James throws:
javax.mail.internet.ParseException: Out of data at position 5
at org.apache.mailet.MailAddress.<init>(MailAddress.java:177)
at
org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailRepository.java:
709)
at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:351)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:89)
at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:125)
java.lang.RuntimeException: Exception while retrieving mail: Out of data at position 5
at
org.apache.james.mailrepository.JDBCMailRepository.retrieve(JDBCMailRepository.java:
732)
at org.apache.james.transport.JamesSpoolManager.run(JamesSpoolManager.java:351)
at
org.apache.james.util.thread.ExecutableRunnable.execute(ExecutableRunnable.java:89)
at org.apache.james.util.thread.WorkerThread.run(WorkerThread.java:125)
500 users
Peak memory usage 131 588 Kb
{07:41:45} 0 / - empty
{07:41:55} 0 / transport
{07:42:05} 251 / transport
{07:42:15} 500 / - empty
_______________________________________________________________
1000 users
Peak memory usage 217 248 Kb
{07:45:17} 0 / - empty
{07:45:27} 0 / transport
{07:45:37} 6 / transport
{07:45:47} 120 / transport
{07:45:57} 246 / transport
{07:46:08} 376 / transport
{07:46:18} 506 / transport
{07:46:28} 639 / transport
{07:46:38} 767 / transport
{07:46:48} 899 / transport
{07:46:58} 1000 / - empty
_______________________________________________________________
2500 users
Peak memory usage 282 408 Kb
{07:50:21} 0 / - empty
{07:50:31} 0 / transport
{07:50:41} 0 / transport
{07:50:51} 0 / transport
{07:51:01} 0 / transport
{07:51:11} 74 / transport
{07:51:21} 182 / transport
{07:51:31} 294 / transport
{07:51:41} 403 / transport
{07:51:51} 515 / transport
{07:52:01} 629 / transport
{07:52:11} 743 / transport
{07:52:21} 857 / transport
{07:52:31} 970 / transport
{07:52:41} 1078 / transport
{07:52:51} 1192 / transport
{07:53:01} 1301 / transport
{07:53:11} 1401 / transport
{07:53:21} 1511 / transport
{07:53:32} 1621 / transport
{07:53:42} 1731 / transport
{07:53:52} 1840 / transport
{07:54:02} 1950 / transport
{07:54:12} 2066 / transport
{07:54:22} 2176 / transport
{07:54:32} 2284 / transport
{07:54:42} 2389 / transport
{07:54:52} 2486 / transport
{07:55:02} 2500 / - empty
_______________________________________________________________
5000 users
Peak memory usage 283 460 Kb
{07:56:52} 0 / - empty
{07:57:02} 0 / root
{07:57:12} 0 / transport
{07:57:22} 0 / transport
{07:57:32} 0 / transport
{07:57:42} 0 / transport
{07:57:53} 0 / transport
{07:58:03} 0 / transport
{07:58:13} 0 / transport
{07:58:23} 0 / transport
{07:58:33} 0 / transport
{07:58:43} 0 / transport
{07:58:53} 0 / transport
{07:59:03} 0 / transport
{07:59:13} 0 / transport
{07:59:23} 2 / transport
{07:59:33} 85 / transport
{07:59:43} 171 / transport
{07:59:53} 263 / transport
{08:00:03} 355 / transport
{08:00:13} 447 / transport
{08:00:23} 539 / transport
{08:00:33} 632 / transport
{08:00:43} 723 / transport
{08:00:53} 815 / transport
{08:01:03} 908 / transport
{08:01:13} 1000 / transport
{08:01:23} 1092 / transport
{08:01:33} 1182 / transport
{08:01:43} 1272 / transport
{08:01:54} 1354 / transport
{08:02:04} 1447 / transport
{08:02:14} 1540 / transport
{08:02:24} 1633 / transport
{08:02:34} 1726 / transport
{08:02:44} 1815 / transport
{08:02:54} 1907 / transport
{08:03:04} 2001 / transport
{08:03:14} 2094 / transport
{08:03:24} 2187 / transport
{08:03:34} 2281 / transport
{08:03:44} 2370 / transport
{08:03:54} 2465 / transport
{08:04:04} 2545 / transport
{08:04:14} 2639 / transport
{08:04:24} 2731 / transport
{08:04:34} 2825 / transport
{08:04:44} 2914 / transport
{08:04:55} 3007 / transport
{08:05:05} 3099 / transport
{08:05:15} 3190 / transport
{08:05:25} 3283 / transport
{08:05:35} 3376 / transport
{08:05:45} 3464 / transport
{08:05:55} 3543 / transport
{08:06:05} 3635 / transport
{08:06:15} 3727 / transport
{08:06:25} 3820 / transport
{08:06:35} 3908 / transport
{08:06:45} 3995 / transport
{08:06:55} 4083 / transport
{08:07:05} 4175 / transport
{08:07:15} 4266 / transport
{08:07:25} 4357 / transport
{08:07:35} 4449 / transport
{08:07:46} 4534 / transport
{08:07:56} 4610 / transport
{08:08:06} 4699 / transport
{08:08:16} 4787 / transport
{08:08:26} 4876 / transport
{08:08:36} 4965 / transport
{08:08:46} 5000 / - empty
_______________________________________________________________
7500 users
Peak memory usage 282 404 Kb
{08:11:13} 0 / - empty
{08:11:23} 0 / root
{08:11:33} 0 / transport
{08:11:44} 0 / transport
{08:11:54} 0 / transport
{08:12:04} 0 / transport
{08:12:14} 0 / transport
{08:12:24} 0 / transport
{08:12:34} 0 / transport
{08:12:44} 0 / transport
{08:12:54} 0 / transport
{08:13:04} 0 / transport
{08:13:14} 0 / transport
{08:13:24} 0 / transport
{08:13:34} 0 / transport
{08:13:44} 0 / transport
{08:13:54} 0 / transport
{08:14:04} 0 / transport
{08:14:14} 0 / transport
{08:14:25} 0 / transport
{08:14:35} 0 / transport
{08:14:45} 0 / transport
{08:14:55} 0 / transport
{08:15:05} 0 / transport
{08:15:15} 0 / transport
{08:15:25} 0 / transport
{08:15:35} 0 / transport
{08:15:45} 0 / transport
{08:15:55} 0 / transport
{08:16:05} 0 / transport
{08:16:15} 0 / transport
{08:16:25} 34 / transport
{08:16:35} 104 / transport
{08:16:45} 170 / transport
{08:16:55} 237 / transport
{08:17:05} 301 / transport
{08:17:15} 370 / transport
{08:17:25} 440 / transport
{08:17:35} 509 / transport
{08:17:45} 584 / transport
{08:17:55} 656 / transport
{08:18:05} 730 / transport
{08:18:16} 804 / transport
{08:18:26} 878 / transport
{08:18:36} 952 / transport
{08:18:46} 1027 / transport
{08:18:56} 1098 / transport
{08:19:06} 1171 / transport
{08:19:16} 1243 / transport
{08:19:26} 1308 / transport
{08:19:36} 1382 / transport
{08:19:46} 1456 / transport
{08:19:56} 1528 / transport
{08:20:06} 1601 / transport
{08:20:16} 1676 / transport
{08:20:26} 1749 / transport
{08:20:36} 1823 / transport
{08:20:46} 1895 / transport
{08:20:56} 1967 / transport
{08:21:06} 2041 / transport
{08:21:16} 2114 / transport
{08:21:26} 2188 / transport
{08:21:36} 2262 / transport
{08:21:46} 2336 / transport
{08:21:56} 2406 / transport
{08:22:06} 2480 / transport
{08:22:16} 2544 / transport
{08:22:26} 2618 / transport
{08:22:36} 2692 / transport
{08:22:46} 2766 / transport
{08:22:56} 2838 / transport
{08:23:07} 2912 / transport
{08:23:17} 2986 / transport
{08:23:27} 3060 / transport
{08:23:37} 3134 / transport
{08:23:47} 3201 / transport
{08:23:57} 3264 / transport
{08:24:07} 3333 / transport
{08:24:17} 3406 / transport
{08:24:27} 3480 / transport
{08:24:37} 3549 / transport
{08:24:47} 3618 / transport
{08:24:57} 3689 / transport
{08:25:07} 3763 / transport
{08:25:17} 3836 / transport
{08:25:27} 3909 / transport
{08:25:37} 3983 / transport
{08:25:47} 4056 / transport
{08:25:57} 4126 / transport
{08:26:07} 4200 / transport
{08:26:17} 4270 / transport
{08:26:28} 4343 / transport
{08:26:38} 4416 / transport
{08:26:48} 4487 / transport
{08:26:58} 4557 / transport
{08:27:08} 4618 / transport
{08:27:18} 4688 / transport
{08:27:28} 4761 / transport
{08:27:38} 4834 / transport
{08:27:48} 4906 / transport
{08:27:58} 4975 / transport
{08:28:09} 5046 / transport
{08:28:19} 5118 / transport
{08:28:29} 5189 / transport
{08:28:39} 5262 / transport
{08:28:49} 5334 / transport
{08:28:59} 5401 / transport
{08:29:09} 5472 / transport
{08:29:19} 5544 / transport
{08:29:29} 5606 / transport
{08:29:39} 5676 / transport
{08:29:49} 5746 / transport
{08:29:59} 5815 / transport
{08:30:10} 5886 / transport
{08:30:20} 5957 / transport
{08:30:30} 6029 / transport
{08:30:40} 6100 / transport
{08:30:50} 6171 / transport
{08:31:00} 6239 / transport
{08:31:11} 6310 / transport
{08:31:21} 6382 / transport
{08:31:31} 6453 / transport
{08:31:41} 6525 / transport
{08:31:51} 6585 / transport
{08:32:01} 6653 / transport
{08:32:11} 6723 / transport
{08:32:21} 6794 / transport
{08:32:31} 6865 / transport
{08:32:41} 6935 / transport
{08:32:51} 7005 / transport
{08:33:01} 7074 / transport
{08:33:12} 7145 / transport
{08:33:22} 7216 / transport
{08:33:32} 7288 / transport
{08:33:42} 7358 / transport
{08:33:52} 7416 / transport
{08:34:02} 7483 / transport
{08:34:13} 7500 / - empty
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]