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
