Fatemeh Taj wrote:

> Thanks for your idea. If I use master-slave, how would be the
> scalibility ? They run a hosting service and will have more and more
> email subscribers[maybe 1 million at the end of second year] .Also I
> don't want to have service interruption for a part of users if a
> server fails. I will have quad 64 bit servers in backend. I assume
> that 50 % of users are active users and 12% concurrency for them.
> Does it makes sense for a hosting service provider? If yes, how can I
> estimate the hardware?


It kind of depends on your storage capabilities.

Lets assume you have fast storage, lots of diskspace and lots of memory
on your mysql-heads.

60k concurrent users (.12*.5) is a lot. 12% concurrency is most likely
way too high an estimate.

Please remember that from dbmail's perspective concurrency is the number
of clients issuing actual commands at any given moment. People reading
their mail or composing new messages do not count. People checking their
email, searching for or retrieving messages do. Reading back, this is
not quite the case at this moment. Anyone logged into a imap server is
claiming a connection to the database. But implementing a shared
connection pool to the database is high on our list of todos. Let's
however for the sake of argument assume this is a done deal, in which
case connections only count when a client is actually doing something:

Lets say that active users check their email every minute (which is
quite often) and are heavy users with 100 mailboxes. This will generate
something like 400 queries (just a guess: one to establish the mailbox
idnr, one to examine the mailbox, one to retrieve headers and envelopes
for unread messages, plus one I'm not aware off right now :-) ).

Your hardware (quad-64) can probably handle something like 10k+ queries
per second (or more), and if you have a lot of memory (16GB+), 1000+
concurrent client connects on your mysql server is most likely not a
problem. This will give each connected client more than enough room for
issuing queries.

In the worst case this would mean 40seconds to check all mailboxes in
our simplistic model, but more factors come into play that will
complicate matters (read: make things faster or slower).

My guess is you will be able to serve 100k-200k users per island. All
this depends on the speed of your hardware, and the usage pattern of the
real-users.

You will of course need to establish your own metrics based upon the
actual performance of your hardware.

An island in dbmail-speak is a heartbeat enabled, dual-master mysql
cluster. The external IP address to which the front-ends connect is
managed by heartbeat with auto-failback disabled. Both mysql servers
serve as master and as slave at the same time, but clients *always*
connect to the acting master. This way you have automatic failover in
case of failure on the master, and hot backup capability in the acting
slave.

Such an island is just the backend for whatever number of acting
front-ends you prefer or need (lmtpd, timsieved, imapd, pop3d). If you
are willing to spread users over more than one island, scalability is
unlimited. But if you absolutely need a single namespace (#Public,
#Users) for all users (so you can share folders between all users etc)
you are restricted to a single island. Dbmail is not (yet) capable of
defering requests for mailboxes on other islands.

hope this helps a bit.

regards,








> 
> Thanks in advanced Fatemeh Taj
> 
> 
> ----- Original Message ---- From: Paul J Stevens <[EMAIL PROTECTED]> To:
> DBMail mailinglist <[email protected]> Sent: Thursday, October 5,
> 2006 7:35:55 PM Subject: Re: [Dbmail] DBmail in large scale
> 
> 
> Fatemeh Taj wrote:
>> Dear All
> 
>> I would like to know if dbmail could be used for large scale email 
>> environment. I know it is scalable as it uses mysql cluster. I am 
>> going to install it on redhat linux AS4. As I know mysql cluster 
>> loads the database engine in memory, now with 100,000 users which 
>> will have a maximum size of mailbox store , how mysql cluster can 
>> handle the load? What do you suggest for such scale?
> 
> Why are you using nbd-cluster instead of a simple master-slave setup?
> 
> 
> Use a master-slave setup on fast iron hardware. With 100.000 users
> the main metric is the query load generated by the active users, and
> the total size of the email store.
> 
> 
>> My second question is that if it is possible to use Oracle as the
>> backend database.
> 
> Someone did a oracle driver for dbmail-1, but that tree hasn't been 
> updated since 2.0.0 afaik.
> 
> Writing a new driver (or updating the existing one) is not that much 
> work. I'd be happy to do so ($$$), as would Aaron I guess.
> 
> 

-- 
  ________________________________________________________________
  Paul Stevens                                      paul at nfg.nl
  NET FACILITIES GROUP                     GPG/PGP: 1024D/11F8CD31
  The Netherlands________________________________http://www.nfg.nl

Reply via email to